第8章VLSI设计实例—AES加密芯片设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如果一个密码系统的加密密钥和解密密钥不同,并且 由加密密钥推导出解密密钥(或者由解密密钥推导出 加密密钥)是计算上不可行的,则称该密码系统采用 的是非对称密码体制。采用非对称密码体制的每个用 户都有一对选定的密钥,其中一个是可以公开的,一 个由用户自己秘密保存。 非对称密码体制的出现是现代密码学研究的一项重大 突破,它的主要优点是可以适应开放性的使用环境, 密钥管理问题相对简单,可以方便、安全地实现数字 签名和验证。但它的加/解密速度较慢(例如目前最快 的RSA芯片的加/解密速度为2Mb/s),而且其保密强度 目前还远远达不到对称密码体制的水平。
(3)有限域的加法运算 在有限域的多项式表示中,GF(28)上两个元素的和仍 然是一个次数不超过7的多项式,其系数等于两个元 素对应系数的模2加(比特异或)。 由于AES算法中的字节被看作有限域上的元素,因此 有限域中的加法运算相当于对两个字节进行异或操作。 例如:在GF(28)域中,16进制数57和83所表示的多项 式的为: (x6+x4+x2+x+1)+(x7+x+1)=x7+x6+x4+x2 用二进制表示为 {01010111}⊕{10000011} = {11010100} 用十六进制表示为 {57}⊕{83} = {d4}
Li-1 Ri-1
扩展置换
ki
S-盒代替
P-盒置换
Li
Ri
பைடு நூலகம்16
DES的子密钥产生流程图
k 64位 密钥置换1 56位 28位 C0 循环左移 C1 28位 D0 循环左移 D1 密钥置换2 循环左移 C2 循环左移 D2 密钥置换2 循环左移 C16 循环左移 D16 密钥置换2 k16 (48位) k2 (48位) k1 (48位)
10
(4)按照是否能进行可逆的加密变换,可分为 单向函数密码体制和双向变换密码体制。 单向函数密码体制是一类特殊的密码体制,其 性质是可以容易地把明文转换成密文,但把密 文转换成明文却是困难的(有时甚至是不可能 的)。单向函数只适用于某种特殊的、不需要 解密的场合。 如果某一密码体制能够进行可逆的双向加/解 密变换,则称该密码体制为双向变换密码体制。
19
(4)有限域的乘法运算 要计算域GF(28)上的乘法,必须首先确立一个GF(2) 上的8次不可约多项式;域GF(28)上的两个元素的乘 积就是这两个多项式的模乘,以此8次不可约多项式 为模。 在AES算法中,规定这个8次不可约多项式为: m(x)=x8+x4+x3+x+1 例如:16进制数{57}和{83}所表示的多项式的乘积等 于{c1}, 计算如下: (x6+x4+x2+x+1)· (x7+x+1)= x13+x11+x9+x8+x7+x7+x5+x3+x2+x+x6+x4+x2+x+1 = x13+x11+x9+x8+x6+x5+x4+x3+1 而x13+x11+x9+x8+x6+x5+x4+x3+1 =x7+x6+1(mod(x8+x4+x3+x+1)) 20
实际上,加密变换Ek和解密变换Dk都是由一系 列子变换复合而成,即: Ek=e1· e 2· · · en , Dk=d1· d 2· · · dn 其中,每一个子变换ei或di构成加/解密算法中 的一个步骤,常用的子变换有移位、置换、逐 位异或运算、模乘加运算、S盒变换等。
5
1.2 密码体制的分类 (1)根据密码算法所使用的加密密钥和解密密钥是否相同、 能否由加密过程推导出解密过程(或者由解密过程推导出 加密过程),可将密码体制分为对称密码体制(也叫作单 钥密码体制、秘密密钥密码体制、对称密钥密码体制)和 非对称密码体制(也叫作双钥密码体制、公开密钥密码体 制、非对称密钥密码体制)。 如果一个密码系统的加密密钥和解密密钥相同,或者虽 然不相同但是由其中的任意一个可以很容易地推导出另 一个,则称该密码系统采用的是对称密码体制。 对称密码体制的优点是加/解密速度快(例如DEC公司开发 的一个样品DES芯片的加/解密速度达到1Gb/s)且具有很 高的保密强度,可以达到经受国家级破译力量的分析和 攻击。但它的密钥必须经过安全可靠的途径传递,密钥 管理成为影响系统安全的关键性因素,使它难以满足系 6 统的开放性要求。
7
(2)根据密码算法对明文信息的加密方式,可分为序列密码体 制和分组密码体制。 如果经过加密(解密)所得到的密文(明文)仅与给定的密码算 法和密钥有关,与被处理的明文(密文)数据段在整个明文(密 文)中所处的位置无关,就叫作分组密码体制;如果经过加密 (解密)所得到的密文(明文)不仅与最初给定的密码算法和密 钥有关,而且也与被处理的明文(密文)数据段在整个明文(密 文)中所处的位置有关,就叫作序列密码体制。 通常的情况下,序列密码体制总是以明文的比特为加密的单 位。加密时,将一段类似于噪声的伪随机序列与明文序列模2 加后作为密文序列,这样即使对于一段全“0”或全“1”的明 文序列,经过序列密码加密后也会变成类似于随机噪声的乱 数流。在接受端,用相同的伪随机序列与密文序列模2加就可 以恢明文序列。序列密码的关键技术是伪随机序列产生器(即 伪随机序列产生函数)的设计。序列密码的基本形式如下图所 示:
8
密钥K
伪随机序列 发生器
伪随机序列 发生器
密钥K
明文P 模2加
密文C 模2加
明文P
通常分组密码体制总是以大于64比特的数据块为加密单位,给 定相同的明文数据块加密后便得到相同的密文数据块。 分组密码和序列密码各有其优缺点,应根据不同的应用要求采 9 用不同的体制。
(3)按照在加密过程中是否注入了客观随机因素,可 分为确定型密码体制和概率密码体制。 如果一个加密过程可以描述为:当明文、密钥被确定 后,密文的形式也就唯一地确定,就称之为确定型密 码体制。 如果一个加密过程可以描述为:当明文、密钥被确定 后,密文的形式仍然是不确定的,或者说对于给定的 明文和密钥,存在一个很大的密文集合与之对应,而 最后产生出来的密文则是通过客观随机因素在这个密 文集合中随机地选择出来的,就称之为概率密码体制。 采用概率密码体制的目的是为了有效地提高保密强度, 因为概率密码体制中存在着大量的不确定因素,使破 译的代价成指数地增加。
DES加密流程图
PT IP
L0 f L1= R 0 f L2= R 1 R 2= L 1 R 1= L 0
R0 k1
f(R0,k1) k2
f(R1,k2)
L15= R14 f R16= L15 f(R15,k16)
R15= L14
f(R14,k15) k16
L16= R15
IP-1 CT
15
DES的一轮加密流程图
一个密码系统可以用数学符号描述如下: S={P,C,K,E,D} 其中,P是明文空间,表示全体可能出现的明文集合。C 是密文空间,表示全体可能出现的密文的集合。K是 密钥或密钥空间。E是加密算法,D是解密算法。 当给定的密钥k∈K时,加/解密算法分别记作Ek、Dk, 于是密码体制表示为: Sk={P,C,k,Ek,Dk} 各符号之间有如下关系: C= Ek(P) P= Dk(C)= Dk(Ek(P)) 分别表示用加密算法Ek对明文P加密得到密文C,用解密 算法Dk对密文C解密得到明文P。显然,加密变换Ek和 解密变换Dk是互逆的,即: 4 -1 -1 Dk= Ek 且Ek= Dk
12密码体制的分类1根据密码算法所使用的加密密钥和解密密钥是否相同能否由加密过程推导出解密过程或者由解密过程推导出加密过程可将密码体制分为对称密码体制对称密码体制也叫作单单钥密码体制钥密码体制秘密密钥密码体制秘密密钥密码体制对称密钥密码体制对称密钥密码体制和非对称密码体制非对称密码体制也叫作双钥密码体制双钥密码体制公开密钥密码体公开密钥密码体制制非对称密钥密码体制非对称密钥密码体制
在DES算法中,64位的明文PT首先经过一个64*64的初始置换 IP,并将置换结果分成左右两个32位的数据,分别记为L0、R0, 即: {L0,R0}=IP(PT) 然后对{L0,R0}进行一系列的加密变换得到新的64位数据{L1, R1 }: L1=R0 R1=XOR(L0,P(S(XOR(E(R0),K1)))) 其中:E是32*48扩展置换,K1是第一轮子密钥,XOR是48位逐位 异或运算,S是由8个6*4S盒构成的代替变换,P是32*32的P盒 置换。 再对{L1,R1}进行相同的变换得到{L2,R2},…,依次类推, 共进行16轮相同的加密变换得到{L16,R16}。 最后对{L16,R16}进行初始置换IP的逆变换IP-1就得到了64位 的密文: CT= IP-1{L16,R16}
17
2. AES加密算法介绍
2.1 AES算法的数学知识 (1)有限域 域是一个包含元素0和1的集合,它满足三个条件:它有一个乘 法和加法;每个元素有一个加法逆(对每个x,存在一个元素-x 使得x+(-x)=0);每个非零元有一个乘法逆。 在密码学中,集合中的元素个数有限,则如上定义的域为有限 域,常用GF(p)表示,其中p表示域中的元素个数。在AES算法中 用到的有限域是GF(28),该域中的元素是由8bit组成的字节。它 们可以通过异或做加法运算,也可以通过某种方式做乘法运算, 而且每一个字节都有逆元。 (2)有限域的多项式 有限域中的元素可以用多种不同的方式表示,AES算法采用传 统的多项式表示法,将b7b6b5b4b3b2b1b0构成的字节b看成系数在 {0,1}上的多项式:b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0 例如:十六进制数{57}对应的二进制数为01010111,该字节对应 18 的多项式为x6+x4+x2+x+1。
VLSI设计实例
—AES加密芯片设计与实现
1
1. 加解密原理简介 1.1 数据加密原理 数据加密的基本过程如下图所示:
明文P 加密E 密文C 解密D 明文P
密钥Ke
密钥Kd
2
加密的基本思想是伪装机密信息,待伪装的信息称为 明文(plain text),伪装以后的信息称为密文 (cipher text)。对信息进行伪装的操作称为加密, 为密文解除伪装即将密文还原成明文的操作称为解密。 加/解密时所使用的信息变换规则称为密码算法。通 常把一个密码系统采用的基本工作方式称为密码体制。 构成一个密码体制的两个基本要素是密码算法和密钥。 密码算法是将明文(密文)转换为密文(明文)的一系列 公式、法则或程序,从数学的角度来看,密码算法是 一个明文(密文)到密文(明文)的变换(或者称为映射 或函数),而且这种变换是可逆的,否则,将无法将 明文(密文)还原为密文(明文)。密钥可以看作是密码 算法中的可变参数,改变了密钥也就改变了明文和密 文之间的函数关系。 3
13
综上所述,若将第i轮的加密变换表示为Ti,即: {Li,Ri}= Ti{Li-1,Ri-1} ={Ri-1,XOR(Li-1,P(S(XOR(E(Ri-1),Ki))))}, i=1,2,…,16, 则DES算法的加密过程可以表示为: DESE(PT)= IP-1T16T15T2T1IP(PT) DES算法的解密过程和加密过程完全类似,只不过将 16轮的子密钥逆序使用,因此DES算法的解密过程可 以表示为: DESD(CT)= IP-1T1T2T15T16IP(CT) DES算法的加密变换和解密变换是互逆的,即: DESD= DESE-1 DES的加密过程、子密钥产生过程可以用下列流程图 来表示: 14
11
1.3 典型密码算法-DES算法简介 DES是美国数据加密标准算法,英文全称是 Data Encryption Standard。 DES是迄今为止世界上最为广泛使用和流行的一种分组密码算法, 它是由美国IBM公司研制的,是早期的称做Lucifer密码的一种发展 和修改。 DES在1975年3月17日首次被公布在联邦记录中,在做了大量的公开 讨论后于1977年1月15日正式批准并为美国联邦处理标准即 FIPS_46。 DES是一种为二进制编码设计的,可以对计算机数据进行密码保护 的数学运算。 DES通过密钥对64 位的二进制信息进行加密,把明文的64位信息加 密成密文的64位信息。 由于DES的加密算法是公开的,所以加密强度取决于密钥的保密程 度。 加密后的信息可用加密时所用的同一密钥进行逆变换得到对应的明 文。 DES的设计中,将64位密钥中的56位用于加密过程,其余8位用于奇 12 偶校验位。确切的说,密钥分成八个8位的字节,在每一个字节中 的7位用于加密算法,第八位用于奇偶校验。
相关文档
最新文档