




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 数据加密标准( 称为数据加密算法( ( 是近 20 年来使用的加密算法。后来,人们发现 强大攻击下太脆弱,因此使 应用有所下降。但是,任何一本安全书籍都不得不提到 为它曾经是加密算法的标志。介绍 一,介绍 二,更重要的是分析和理解实际加密算法。利用 这个方法,我们还要从概念上介绍其他加密算法,但不准备深入介绍,因为通过 绍已经可以了解计算机加密算法的工作原理。 常使用 生可以追溯到 1972 年,美国的国家标准局( 现在的国家标准与技术学会, 动了一个项目,旨在保护计算机和计算机通信中的数据。它们想开发一个加密算法。两年之后, 现 司的 当理想,没有必要从开头开发一个新的加密算法。经过几次讨论, 1975 年发布了这个加密算法的细节。到 1976 年底,美国联邦政 府决定采用这个算法,并将其更名为数据加密标准。不久,其他组织也认可和采用 为加密算法。 法为密码体制中的对称密码体制,又被成为美国 数据加密标准 ,是1972 年美国 司研制的对称密码体制加密算法。其密钥长度为 56 位 , 明文按 64 位进行分组 , 将分组后的明文组和 56 位的密钥按位替代或交换的方法形成密文组的加密方法。 法,于 1977 年得到美国政府的正式许可,是一种用 56 位密钥来加密 64 位数据的方法。虽然 56 位密钥的 法已经风光不在,而且常有用 密的明文被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的 , 而且目前 法得到了广泛的应用 , 在某些场合 , 仍然发挥着余热 。 2 1983 年 由 公司 的 主要设计者和 第一合伙人。在 1984 至 1985 年 计出了第一个名为 仿真器, 1986 年他对 发展又作出了另一个巨大的贡献,即提出了用于快速门级仿真 法。 随着 法的成功, 到了迅速发展。 1989 年, 购了 司, 言成为 司的私有财产。1990 年, 言,于是 成立了 织来负责促进 于 优越性, 1995 年制定了 准, 2005 年 准的公布,更使得 真验证和模块的重用等性能方面都有大幅度提高。 为了制作数字电路而用来描述 设计之用。 设计者想要以 C 编程语言为基础设计一种语言,可以使工程师比较容易学习。 该语言允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证时序分析逻辑综合。它目前是应用最广泛的硬件语言。 行设计最大的优点是其工艺无关性 。 这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同约束条件,即可设计出实际电路 。 3 2 设计的技术基础 术是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。随着计算机、集成电路、电子系统设计的发展, 术先后经历了计算机辅助设计计算机辅助工程设计 电子系统设计自动化 个发展阶段。 键技术之一就是采用硬件描述语言 对硬件电路进行描述,且具有系统级仿真和综合能力。目前应用比较广泛的硬件描述语言就是 最早是由美国国防部提出来的。 利用 术进行电子系统的设计,具有以下几个特点: 用软件的方式设计硬件; 用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的; 设计过程中可用有关软件进行各种仿真; 系统可现场编程,在线升级; 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高 。 因此, 术是现代电子设计的发展趋势 ,是现代电子信息工程领域的一门新技术。 术涉及面广,内容丰 富,主要应掌握如下四个方面的内容: 大规模可编程逻辑器件; 硬件描述语言; 软件开发工具; 实验开发系统。 其中,大规模可编程逻辑器件是利用 术进行电子系统设计的载体,硬件描述语言是利用 术进行电子系统设计的主要表达手段,软件开发工具是利用 术进行电子系统设计的智能化的自动化设计工具,实验开发系统则是利用 术进行电子系统设计的下载工具及硬件验证工具。 4 初是美国国防部为其超高速集成电路研究计划提出的硬件描述语言,目的 是为了把电子电路的设计意义以文字或文件的方式保存下来,以便其他人能轻易地了解电路的设计意义。现在它已成为 工业标准硬件描述语言之一。 一种全方 位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级 等几种 不同层次的设计,支持结构、数据流、行为三种描述形式的混合描述,覆盖面强,因此在实际应用中越来越广泛。为硬件描述语言的第一个国际标准具有很强的可移植性;具有丰富的模拟仿真语句和库函数,使得在任何大系统的设计早期就能查验 设计系统功能的可行性,随时可对设计进行仿真模拟,将设计中逻辑上的错误消灭在组装之前。 因此 ,在设计早期系统功能 时 就具有可行性;设计层次较高,可用于较复杂的计算来解决现存的问题,从而缩短设计周期; 设计不依赖于特定的器件的转换;支持大规模设计的分解和已有设计的逻辑综合和优化;并且 设计可转变成门级网表; 路控制 设计,灵活性强,同时也便于设计结果的保存和重用。 随着计算机和大规模集成电路制造技术的迅速发展,采用普通中小规 模数字逻辑集成电路,如 74 系列的 经不能满足现代数字系统设计的要求,迫切需要提高设计效率。 门语言正越来越广泛的被应用,越来越多的学校已经把 配有大量的实践教学使学生掌握它。 示。 a) 具有极强的描述能力,能支持系统行为级、寄存器传输级和门级三个不同层次的设计。 b) 具有丰富 的模拟仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统功能的可行性,随时可对设计进行仿真模拟,将设计中逻辑上的错误消灭在组装之前。 c) 支持大规模设计的分解和已有设计再利用。 5 d) 可读性好,既可以被计算机接受,也容易被人所理解。 e) 本身生命期长。 图 2 E 简介 业界最优秀的 译 软件,它能提供友好的仿真环境,是业界唯一的单内核支持 合仿真的仿真器。它采用直接优化的编译技术、 k 技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护 ,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是 计的首选仿真软件。 主要特点: 地编译结构,编译仿真速度快,跨平台跨版本仿真; 单内核 源代码模版和助手,项目管理; 集成了性能分析、波形比较、代码覆盖、数据流 拟对象 口、 口、源码窗口显示信号值、信号条件断点等众多调试功能; C 和 k 接口, 对 直接支持,和 设 计 实 体 库、程序包使用说明 实体 (结构体 配置( 结构体功能描述 结构体说明 6 支持 对系统级描述语言的最全面支持, 几种不同的版本: 中 最高级的版本,而集成在 及 商设计工具中的均是其 本。 和 在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以 司提供的 E 为例,对于代码少于 40000 行的设计, E 比E 要快 10 倍;对 于代码超过 40000 行的设计, E 要比 E 快近 40 倍。 E 支持 合平台;提供全面完善以及高性能的验证功能;全面支持业界广泛的标准;司提供业界最好的技术支持与服务。 7 3 基本原理 个块加密法,按 64 位块长加密数据,即把 64 位明文作为 输入,产生 64 位密文输出。加密与解密使用相同的算法和密钥,只是稍作改变。密钥长度为 56 位。基本原理图如 3 图 3前面曾经介绍过, 用 56 位密钥。实际上,最初的密钥位 64 位,但在程开始之前放弃密钥的每个 第八位,从而得到 56 位密钥,即放弃第 8, 16,24, 32, 40, 48, 56 和 64 位,如表 3示,阴影部分表示放弃的位。 这样, 64 位密钥丢弃每个第 8 位即得到 56 位密钥,如图 3示。 简单地说, 用加密的两个基本属性:替换(也称混淆)和变换(也称扩散)。 16 步,每一步称为一轮,每一步进行替换与变换步骤。 64 位明文 56 位密钥 56位密钥 64 位密文 56 位密钥 64 位明文 4 位密文 64 位密文 4 位明文 块 1 块 2 块 n 8 表 3弃密钥中的每个第 8位 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 图 3钥丢弃过程 下面介绍 主要步骤。 1) 将 64 位明文块送入初始置换( 数。 2) 对明文进行初始置换。 3) 初始置换产生转换块的两半,假设为左明文 (右明文( 4) 每个左明文与右明文经过 16 轮加密过程,各有自己的密钥。 5) 将左明文和右明文重接起来,对组成的块进行最终置换( 6) 这个过程的结果得到 64 位密文。 图 3示了这个过程。 最初的 64 位密钥 密钥丢弃过程 得到 56 位密钥 9 图 3初始置换 初始置换只发生一次,是在第一轮之前进行的,指定初始置换中的变换如何进行,如表 3示。例如,它指出初始置换将原明文块的第一位换成原明文块的第 58 位,第 2 位换成原明文块的第 50 位,等等,这只是把原明文块进行移位。 表 3始置换 明文块中各位位置 换成该位置的内容 1 2 3 64 58 50 42 7 表 3示了 用的完整变换表。这个表要从左向右、从上到下读。例如,密钥 步骤 1 步骤 2 步骤 3 步骤 4 明文( 64 位) 初始置换( 6 轮 16 轮 密钥 步骤 6 步骤 5 最终转换( 密文( 64 位 ) 10 我们发现第一个位置的 58 表示原明文块中第 58 位的内容在初始置换时改写第一位的内容,同样, 1 放在表中第 40 位,表示第一位改写原明文块中第 40 位,所有其他位一样。 成后,得到的 64 位置换文本块分成两半,各 32 位,左块成左明文( 右块成右明文( 然后对两块进行 16 轮操作。 表 3用的完整变换表 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 一轮 一轮包括图 3示步骤 。 图 3第一步:密钥变换 最初 64 位密钥通过放弃每个第 8位而得到 56 位密钥。这样,每一轮有个 56位密钥。每一轮从这个 56 位密钥产生不同的 48 位子密钥,称为密钥变换。为此,56 位密钥分成两半,各为 28 位,循环左移一位或两位。例如,如果轮号为 1、 2、9、 16,则只移一位,否则移两位。表 3示了每一轮移动的密钥位数。 扩展置换 密钥变换 异或交换 11 相应移动后,选择 56 位中的 48 位。选择 56 位中的 48 位时使用表 3示,如果仔细看看表格则可发现其中只有 48 位。位号 18 放弃(表中没有),另外 7位也是,从而将 56 位减到 48 位。由于密钥变换要进行置换和选择 56 位中的 48位,因此称为压缩置换 ( 表 3一轮移动的密钥位数 轮号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 位数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 表 3缩置换 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 第 2 步 扩展置换 经过初始置换后我们得到两个 32 位明文区,分别称为左明文和右明文。扩展置换将右明文从 32 位扩展到 48 位,除了从 32 位扩展到 48 位之外,这些位也进行置换,因此称为扩展置换( 过程如下: 1) 将 32 位右明文分成 8 块,每块各有 4 位,如图 3示。 2) 将上一步的每个 4 位块扩展为 6 位块,即每个 4 位块增加 2位。这两位实际上是重复 4 位块的第 1 位和第 4 位。第 2 位和第 4 位口令输入一样写出。注意第一个输入位在第二个输出位重复,并在第 48 位重复。同样,第 32 个输入位在第 47 个输出位和第 1个输出位。 显然,这个过程在生成输出时扩展和置换输入位。 12 图 3展置换 右明文扩展置换过程如图 3示。 图 3明文扩展置换过程 由扩展置换过程图可以知:第一个输入位出现在第二个输出位和第 48 位,第二个输入位到 第三个输出位,等等。因此,扩展置换实际上使用表 3示。 原始 32 位右明文 块 1( 4位) 块 2( 4位) 块 8( 4位) 1 2 3 4 5 6 输出块 1 输出块 2 输出块 8 2 1 3 4 5 6 7 8 输入块 1 输入块 2 输入块 8 13 表 3明文扩展置换表 32 1 2 3 4 5 6 7 8 9 8 9 10 11 12 13 14 15 16 17 16 17 18 19 20 21 22 23 24 25 24 25 26 27 28 29 30 31 32 1 由表 3知密钥变换将 56 位密钥压缩成 48 位,而扩展置换将 32 位右明文扩展为 48 位。现在, 48 位密钥与 48 位右明文进行异或运算,将结果传递到下一步,即 S 盒替换如图 3示。 图 3第 3 步: S 盒替换 替换使用 8 个替换盒( (也称为 S 盒 ),每个 S 盒有 6位输入和 4 位输出。 48 位输入块分成 8 个子块(各有 6 位),每个子块指定一个 S 盒。S 盒将 6 位输入变成 4 位输出。 第 4 步: 所有 S 盒的输出组成 32 位块,对该 32 位要进行 P 盒置换( P 盒置换机制只是进行简单置换(即按 P 表指定把一位换成另一位,而不进行扩展的压缩)。表 3示了 P 盒。例如, 第一块的 16 表示原输入的第16 位移到输出的第 1位,第 16 块的 10 表示原输入的第 10 位移到输出的第 16 位。 密钥变换(将密钥从 56 位压缩为 48 位) 扩展置换(将右明文 从 32 位扩展为 48 位) 48 位密钥 48 位右明 文 14 表 316 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 第 5 步:异或与交换 注意上述所有操作只是处理了 64 位明文的右边 32 位,还没有处理左边部分。这时,最初 64 位明文的大部分与 P 盒置换的结果进行异或运算,结果成为新的右明文,并通过交换将旧的右明文变成为新的左明文 。 最终置换 16 轮结束后,进行最终置换(只一次),即按表 3行变换。例如,第 40位输入代替第 1 位输出等等。 最终置换的输出就是 64 位加密块。 表 3终置换 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 15 4 据加密标准),是由 司研制的一种加密算法, 1977 年,美国国家标准局宣布把它作为非机要部门使用的的数据加密标准,随着“三金”工程尤其是金卡工程的启动, 法在 卡及智能卡( )、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密。如信用卡持卡人的 加密 传输、 与 的双向认证、金融交易数据包的 验等,均用到 法。 法的入口参数有三个: 中 8 字节共 64位,是 法的工作密钥; 字节共 64 位,是要被加密或被解密的数据; 工作方式,包括加密和解密两种,如图 4 法框图。 如 用 成 64位)作为 输出结果。如 解密,则用 密码形式的数据 原为 64 位),作为 输出结果。 通过定期在通信网络的源端和目的地端同时改用新的 能更进一步提高数据的保密性,这正是现在金融交易网络流行的做法。 法把 64 位的明文输入块变为 64 位的密文输出块,它所使用的密钥也是 64 位的,其功能是把输入的 64 位数据块按位重新组合,并把输出分为 0 两部分,每部分各长 32 位,其置换规则见表 4 表 458 50 12 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 53 55 47 39 31 23 15 7 即将输入的第 58 位换到第 1 位,第 50 位换到第 2 位,依此类推,最后一位是原来的第 7 位 是换位输出后的两部分, 输出的左 32 位, 右 32 位,例:设置换前的输入值为 经过初始置换后的结果为: 16 50, 57 明 文L O R f+K 1L 1 = R 0R 1 = L 0 异 或f ( R 0 , K 1 )1 6 轮 相 同 计 算R 1 6 = L 1 5 异 或f ( R 1 5 , K 1 6 )L 1 5 = R 1 6I 密 文图 4经过 16 次迭代运算后,得到 此作为输入,进行逆置换,即得到密文输出。逆置换正好是初始置换的逆运算,例如,第 1位经过初始置换后,处于第 40 位,而通过逆置换,又将第 40 位换回到第 1 位,其逆置换规则、放大换位、单纯换位分别见表 4 4 4 17 表 440 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 表 432 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 表 416 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 在 f( R, K)算法描述图中, , 选择函数,其功能是把 6据。 别见表 4 4 表 4法描述图中选择函数 4 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 表 4法描述图中选择函数 3 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 在此,以 例说明其功能。我们可以看到:在 ,共有 4 行数据,命名为 0、 1、 2、 3行;每行有 16 列,命名为 0、 1、 2、 3 14、 15 列。 现设输入为: D=18 令:列 = =后在 中查得对应的数,以 4 位二进制表示,此即为选择函数 输出。下面给出子密钥( 48生成算法。从子密钥的生成算法描述图中我们可以看到:初始 4 位,但 法规定,其中第 8、 16、 64 位是奇偶校验位,不参与 算。故 6 位。即经过缩小选择换位后, 4 位变成 56 位,此 56 位分为 部分,各 28 位,然后分别进行第 1 次循环左移,得到 28 位)、 28 位)合并得到 56 位。即经过缩小换位,从而得到了密钥( 48 位)。以此类推其他密钥。 法的解密过程是一样的,区别仅仅在于第一次迭代时用子密钥 二次用 ,最后一次用 法本身并没有任何变化。 体构架 密模块总体构架如图 4示。 图 4本实例在对 法进行建模时,将整个算法分为密钥产生 模块 部件代换模块( 一轮变换模块 其中密钥产生模块被 块调用。 密模块顶层的外部接口示意图如图 4示,部分端口功能说明如表 4示。 2 4 6 8 19 表 4类型 端口 描述 3 0 3 0 3 0 密钥产生模块 法中 16 轮非线性变换所用到的 16 个内部子密钥,都是 内部变换子密钥产生器产生的, 外部输入密钥 K 由 64成,即 K=( , 64外部密钥 K 包含了 8 个字节,每个字节有 8中每个字节的最末一位用奇偶校验,也就是只有 56正包含了密钥信息。排 后分别存到 28寄 64外部密钥 K 输入以后,首先通过奇偶校 验,剔除奇偶校验位,得到 56密钥 M, M 又经过换位重存器 。 换位重排规律如表 4示。 3 0 3 0 3 0 4 20 表 457 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 在内部子密钥产生器中, 除寄存器( ,还有 16 对寄存器,即( 1) ,(2) (16)。加密时的内容是将 C 和 D 中的内容分别向左移动 1 至 2位得到的,而且这种移位方式是按循环移位寄存器方式进行的。在 16 次左移操作中,总共向左移动了 28样就保证了 0, 0,即( 内容和( 全相同。 表 414 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 54 34 53 46 42 50 36 29 32 48内部子密钥 K 是从寄存器 存储的 56,经过 8 解密和加密时所用的外部密钥 K 完全相同,只是在解密时内部 16 步非线性变换所用的内部子密钥应按 次序使用。 密钥产生模块 图 4示。 21 块核心程序如下: 择 ; 0); ; 0); 0,1,8,15; 5:28; 7; 1; =5:28= 7:0; 7:0= 5:28; 7; 5 0 0 5 0 7 0 图 4钥产生模块 22 6; 2; =5:28= 7:0; 0: 5:28; 5:28= ; 7= 2; 6= 9; 5= 5; 4= 2; = 0; = 7; = 4; 在 、 条件下, 真波形分别如图 4 4 23 图 4时 图 4时 扩展器输出的 48据和密钥 K 模 2 相加得到 48数据 A,这个数据必 24 须代换为 32数据 B,再经过重排 P(B),然后才能和 L 进行运算。 S 代换部件就是完成从 48 32代换并重排。 S 代换部件是一个十分复杂的非线性函数,正是经过它的非线性变换才使明文实现了较好的混乱( 达到加解密效果,从而具有较强的安全性。 法中所占比重较大,一共有 8 个模块,是设计中需要关注的部分。 S 盒的设计准则如下: 没有一个 输出位是接近输入位的线性函数。 如果将输入位的最左或最右端的位固定,变化中间的 4 位,每个可能的4 位输出只能得到一次。 如果 S 部件两个输入仅有 1 位的差异,则其输出必须至少有 2 位不同。 如果 S 代换部件的两个输入仅有中间 2 位不同,则其输出必须至少有 2位不同。 如果 S 代换部件的两个输入前 2 位不同,后 2 位已知,则其输出必不同。 对于输入之间的任何非零的 G 位差分, 32 对中至多有 8 对显示出的差分导致了相同的输出差分。 对于 S 代换部件的实现,主要有两种方法:查表法,逻辑电路法。本章节通过逻辑电路法实现 用逻辑 电路法来设计的时候,通常使用硬件描述语言 S 部件代换模块 8 仿真波形分别如图 4图 4示。 块设计 块执行 轮非线性变换的作用过程 :第 i 步非线性变换的输入信号是 32右寄存器 R(i),首先把它加到扩展器 展器把 32输入扩展为 48输出, 25 图 4件代换模块仿真图 图 4件代换模块仿真图 然后与第 i 步的第 48部 变换子密钥 K(i)按位模 2 相加。接着输出的 48划分为 8组,每组 6别加到 8 个代换部件 , ,经查表代换后输出 48 个部件共输出 32 32经过换位重排,再与变换信号的左半部分 L( 位模 2相加,就成为下一步变换信号的右半部分 R(i). 相应的左半部分则为 L(i)=R( 其中扩展器的工作原理如下。 假设 32输入为: R= , 26 32输入被分为 8 组,每组 4把每组 4后各加一个 而扩展为 6组前面的一个 复制上一组扩展前的最后一个 面加的一个 复制下一组扩展前的最开始的一个 第一组加的一个 扩展前的第 32八组后面加上的一个 是扩展前第一组的头一个 本模块调用了密钥生成模块,它的输出除了左半信号和右半信号,还有密钥信号。在这一轮运算中,密钥产生器产生了一个没有经 排的 56数据(它是由 位而得)。这个信号会输出给 为下轮运算的一个输入,用以产生下一轮运算所需的密钥。 块核心程序如下: 用 ; or 生逻辑 _o=(0); 0); 0); _o=( _i or or or or or or or or or or or _i; 生逻辑 7=; 27 =; =1; 7:42); 生逻辑 :0); 1:28= f0=; f); f); 在 型的顶层模块中,实例化了 块和 8 个 S 代换部件,综合之后各模块之间连接关系:输入密钥 加密数据 左半信号及右半信号各经过一个两路数据选择器后连接到 块的数据输入端( 1:0) 和密钥输入端( 5:0) 。这里之所以需要 数据选择器,是因为模块仅在 高电平时接受外部数据,待加 /解密数据和外部密钥通过数据选择器输入到 块的数据输入端和密钥输入端。 号持续一个时钟周期以后会变为低电平,在此之后数据选择器将选择输出另一路数据, 被送到 块的密钥输入端和数据输出端执行下一轮变换。 16 轮变换结束之后, 变为高电平,这时整个模块的输出 为有效数据。 号持续一个时钟周期以后又变为低电平, 次上跳为高电平,模块对下一个明文分组进行加密。 28 资源优先设计方案 资源优先方案就是通过硬件设计出一个密钥变换轮函数和一个明文变换轮函数,通过 16 轮反复调用这一个硬件系统实现一次 密运算。由于 16 轮运算都只占用一轮运算所需的硬件资源,使硬件的开销大大减少。但是,一个时钟周期只能进行一轮加密运算,要完成整个加密过程要花费 16 个时钟周期,从而在速度性能上大打折扣。而采用循环法实现 密算法能达到减少资源占用的目的 。 性能优先设计方案 性能优先设计方案刚好与资源优先设计方案相反。传统方案是将循环全部打开配合流水线结构进行设计 ,即将 16轮函数进行硬件级联构成一个 16级的流水线结构,提前生成 16 个子密钥,随着流水线的进程发送给相对应的流水级,从而达到 16 个数据块同时加密的目的。这样,从第一个数据块开始加密起,每一个时钟周期延时都会有一个数据块进行加密,经 16 个时钟周期延时后,得到最终的密文。流水线结构设计通过一个时钟周期即可进行一个数据块的加密,通过占用资源换取速度性能的提高。 本文通过子密钥的简化和 S 盒的优化来改进传统的流水线结构,实现一 个占用资源少、加密速度快的加密系统。 (1) 子密钥的简单生成 由 密算法原理可知,一个 64初始密钥输入后通过一次压缩变换、移位变换、二次压缩变换后得到第一轮子密钥,其密钥为 48由 第一轮子密钥变换结果可 以看出: 第一轮
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025商业店铺租赁合同书模板
- 介绍服装加工合同范例
- 以公司名义合同范例
- 公司出国劳务合同标准文本
- 质量管理在新兴市场中的挑战与机遇试题及答案
- 书采购标准合同范例
- 2025企业内部股权认购协议书标准合同范本
- 亚马逊店铺转卖合同范例
- 纺织机械证书考试应对技巧研究试题及答案
- 光伏协议合同范例
- DB62∕T 3176-2019 建筑节能与结构一体化墙体保温系统应用技术规程
- 优秀病例演讲比赛PPT
- 技术报告审签表
- GB∕T 25684.5-2021 土方机械 安全 第5部分:液压挖掘机的要求
- 电气炉焊接工艺的自动化控制线设计
- 剪式汽车举升机设计说明
- 中国基层胸痛中心认证标准(第三版)
- 鸡的解剖步骤及病
- 喷涂件检验通用规范
- 石方爆破及安全施工工艺流程图
- 常见食物的性味归经附表
评论
0/150
提交评论