课程专题报告课程名称:RFID作业报告题目:RSA和AES两种加密算法的算法原理和应用领域系别信息工程与科学学院专业班级电子信息工程一班学生姓名xxx物联网导论专题报告1RSA的算法原理和应用领域一、算法原理RSA算法是世界上第一个既能用于数据加密也能用于数字签名的非对称性加密算法。它易于理解和操作,所以流行甚广。算法的名字以发明者的名字命名,他们是:RonRivest,AdiShamir和LeonardAdleman。虽然RSA的安全性一直未能得到理论上的证实,但它经历了各种攻击,至今未被完全攻破。我们对于在数字媒体上进行交换的数据进行加密的方法称为信息交换加密技术,它分为两类,即对称加密和非对称加密。在对称加密技术中,对信息的加密和解密都使用相同的钥,也就是说一把钥匙开一把锁。这种加密方法可简化加密处理过程,信息交换双方都不必彼此研究和交换专用的加密算法。如果在交换阶段私有密钥未曾泄露,那么机密性和报文完整性就可以得以保证。对称加密技术也存在一些不足,如果交换一方有N个交换对象,那么他就要维护N个私有密钥,对称加密存在的另一个问题是双方共享一把私有密钥,交换双方的任何信息都是通过这把密钥加密后传送给对方的。如三重DES是DES(数据加密标准)的一种变形,这种方法使用两个独立的56为密钥对信息进行3次加密,从而使有效密钥长度达到112位。在非对称加密(或称公开密钥加密)体系中,密钥被分解为一对,即公开密钥(公钥)和私有密钥(私钥)。这对密钥中任何一把都可以作为公开密钥,通过非保密方式向他人公开,而另一把作为私有密钥,加以妥善保存。公开密钥用于加密,私有密钥用于解密,私有密钥只能由生成密钥的交换方掌握,公开密钥可广泛公布,但它只对应于生成密钥的交换方。非对称加密方式可以使通信双方无须事先交换密钥就可以建立安全通信,广泛应用于身份认证、数字签名等信息交换领域。非对称加密体系一般是建立在某些已知的数学难题之上,是计算机复杂性理论发展的必然结果。最具有代表性是RSA公钥密码体制。在RSA算法中,我们先要获得两个不同的质数P和Q做为算法因子,再找出一个正整数E,使得E与(P-1)*(Q-1)的值互质,这个E就是私钥。找到一个整数D,物联网导论专题报告2使得(E*D)mod((P-1)*(Q-1))=1成立1[1],D就是公钥1。设N为P和Q的乘积,N则为公钥2。加密时先将文转换为一个或一组小于N的整数I,并计算IDmodN的值M,M就密文。解密时将密文MEmodN,也就是M的E次方再除以N所得的余数就是明文。因为私钥E与(P-1)*(Q-1)互质,而公钥D使(E*D)mod((P-1)*(Q-1))=1成立。破解者可以得到D和N,如果想要得到E,必须得出(P-1)*(Q-1),因而必须先对N进行因数分解。如果N很大那么因数分解就会非常困难,所以要提高加密强度P和Q的数值大小起着决定性的因素。一般来讲当P和Q都大于2128时,按照目前的机算机处理速度破解基本已经不大可能了。这个技术由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体公司)、诺基亚和索尼共同研制开发,其基础是RFID及互连技术。近场通信(NearFieldCommunication,NFC)是一种短距高频的无线电技术,在13.56MHz频率运行于20厘米距离内。其传输速度有106Kbit/秒、212Kbit/秒或者424Kbit/秒三种。目前近场通信已通过成为ISO/IECIS18092国际标准、ECMA-340标准与ETSITS102190标准。应用领域RSA是现在公认的在理论和实际中最为成熟和完善的一种公匙密码体制,不仅可以进行加密,还可以用来进行数字签名和身份验证,是公匙密码体制的代表。AES的算法原理和应用领域一、算法原理AES使用128、192和256位密钥,用128bits分组加密和解密数据。对称密钥密码使用相同的密钥加密和解密数据,通过分组密码返回的加密数据位数与输入数据相同。使用循环结构迭代加密,在该循环中重复置换(Permutations)和替换(Substitutions)输入数据。物联网导论专题报告3图1给出了AES算法的总体结构。加密和解密算法的输入是一个128比特的分组,分组是一个字节方阵,被复制到状态数组,这个数组在加密或解密过程中的每一步都会被更改。直到最后一步结束后,状态数组将被复制到输出矩阵。类似地,128比特的密钥也被描述为一个字节方阵。然后,密钥被扩展成为一个子密钥的数组。每个字是4字节,而对于128比特的密钥,子密钥总共有44个字,矩阵中字节的顺序是按列排序的。比如,128比特的明文输入的前4个字节占输入矩阵的第1列,接下来4个字节占第2列,以此类推。AES算法步骤介绍AES算法主要包括:字节替换、行移位、列混合和轮密钥加四个步骤。1)字节替换(SubstituteByte)。使用一个表(被称为S-盒)对分组进行逐一字节替换。S-盒是AES定义的矩阵,把State中每个字节的高4位作为行值,低4位作为列值,然后取出S-盒中对应行列的元素作为输出。这个步骤提供了AES加密的非线性变换能力。S-盒与有限域乘法逆元有关,具有良好的非线性特性。为了避免简单代数攻击,S-盒结合了乘法逆元及可逆的仿射变换矩阵建构而成。2)行移位(ShiftRow)。每一行都向左循环位移某个偏移量。在AES中(区块大小128位),State的第一行维持不变,State的第二行循环左移1个字节。同理,State的第三行及第四行分别循环左移2个字节和3个字节。经过ShiftRow之后,矩阵中每一列,都是由输入矩阵中的每个不同列中的元素组成。行移位就是将某个字节从一列移到另一列中,它的线性距离是4字节的倍数。3)列混合(MixColumn)。每列的四个字节通过线性变换互相结合,对每列独立进行操作。每列的四个元素分别当作系数,合并后即为有限域中的一个多项式,接着将此多项式和一个固定的多项式相乘。此步骤亦可视为有限域之下的矩阵加法和乘法。矩阵的系数是基于在码字间有最大距离的线性编码,也是基于算法执行效率的考虑。MixColumn函数接受4个字节的输入,输出4个字节,物联网导论专题报告4每一个输入的字节都会对输出的四个字节造成影响。因此,ShiftRow和MixColumn两步骤为这个密码系统提供了扩散性。经过几轮列混和变换和行移位变换后,所有的输出位均与所有的输入位相关。4)轮密钥加(AddRoundKey)。在每次的加密循环中,都会由主密钥扩展产生一组轮密钥(通过Rijndael密钥生成方案产生),这个轮密钥大小会跟原矩阵一样,该步骤就是轮密钥与原矩阵中每个对应的字节做异或运算。轮密钥加变换非常简单,却能影响State中的每一位。密钥扩展的复杂性和AES的其他阶段的复杂性,确保了该算法的安全性。AES算法模块介绍AES算法主要分为三大模块,即密钥扩展,数据加密和数据解密1)密钥扩展。使用Rotword()函数将数组中左端第一个数字移至数组的末端,而原来在它之后的数字依次前移一位,即对数组中的数字实现循环左移一位的运算。由于数组中的4个数字已合并为一个数字,在程序的实际执行过程中是进行数字的循环移位运算,而不是做数组的循环左移运算,这样可以大大简化运算过程,很大程度提高了运算效率。2)数据加密。依据S置换表,使用SubByte()函数对状态矩阵State[4][4]中的数字进行置换。使用ShiftRow()函数对状态矩阵State[4][4]中的各行数据进行循环移位运算。循环移位遵循以下规则,状态矩阵State[4][4]中的第一行数据位置不变,第二行数据循环左移一位数字,第三行数据循环左移两位数字,第四行数据循环左移三位数字。3)数据解密。依据S置换表的逆表,使用InvSubByte()函数对状态矩阵State[4][4]中的数字进行置换,置换方法与SubByte()函数相同。使用InvShiftRow()函数对状态矩阵State[4][4]中的各行数据进行循环移位运算。AES的解密算法和加密算法不同。尽管密钥扩展的形式一样,但在解密中每轮交换步骤的顺序与加密中的顺序不同。其缺点在于对同时需要加密和解密的应用,需要两个不同的软件或固件模块。应用领域AES在信息安全中的应用随着信息安全要求的不断提高,数据加密作为保护信息安全的重要手段,其应用不再局限于军事、国防等有限领域,而是迅速走进千家万户。AES将加密密钥的位数提高到128bit以上,极大地增加了破解密文的难度。Rijndael被选为AES是经过多个国家的密码专家广泛讨论的结果。Rijndael物联网导论专题报告5算法具有灵活、简便、抗击多种密码分析的优点,它的目标是发展成能够安全用于商业、政治和军事的加密算法。AES(Rijndael)算法汇聚了安全性、效率高、易实现性和灵活性等优点,是一种较DES更好的算法,通常被认为是DES算法的取代者。目前AES算法主要用于基于私钥数据加密算法(对称密钥加密算法)的各种信息安全技术和安全产品,为原有的数据加密应用提供更强的数据安全保障。此外,AES算法硬件实现的速度大约是软件实现的3倍,这就给用硬件实现加密提供了很好的机会。随着网络技术发展迅猛,网络数据加密要求日益提高,AES的应用首先体现在网络信息安全领域中。无线网络应用由于无线网络的通信信道较有线网络更为开放,安全性的要求更高。目前,无线网络主要有两个国际标准:一是用于WLAN的IEEE803.11协议(Wi-Fi);二是用于WMAN的IEEE803.16协议(WiMAX)。这两个协议在制定初期所采用的安全机制分别为RC4和DES,后来这两个协议也都将AES加入到协议的安全机制中。此外,为了保障数据传输安全性,其他的一些无线网络技术也都使用了AES。例如ZigBee技术,为确保MAC帧的完整性、机密性、真实性和一致性,其MAC层使用AES算法进行加密,并且生成一系列的安全机制。ZigBee技术是一种近距离、低复杂度、低功耗、低数据速率,低成本的双向无线通信技术,主要适用于自动控制和远程控制领域,可以嵌入到各种设备中。电子商务应用在电子商务方面,主要是AES在电子商务基础平台中的密码协议和交易安全协议中的应用。例如,将AES应用在SSL(SecureSocketsLayer安全套接层)协议中。在实施数据传输前,发送方通过身份认证后,用SSL安全通道发送AES密钥到接收方的同时,使用AES算法对实时数据加密,然后基于UDP协议通过互联网发送加密的实时数据到接收方。这样接收方可以用接收到的AES密钥得到具体的实时数据。此外,还可以研究将AES与其他一些公钥加密算法(非对称加密算法)相结合,设计出新的密码。目前比较典型的研究包括:AES与RSA相结合的混合加密体系;利用NTRU公钥密码体系分配AES密钥;AES与ECC(椭圆曲线加密算法)相结合的加密体系;AES在数据签名中的应用;AES在公钥加密体系PKI中的应用等等。AES软件应用在AES软件实现方面,其应用领域包含语音、视频信息的加密,数据库中的数据加密等。随物联网导论专题报告6着计算机对多媒体信息处理能力的增强,多媒体信息加密的问题日渐凸显。由于多媒体信息的数据量很大,直接对其加密效率较低。所以,不仅要考虑数据加密算法AES的使用方法,还要设计相应的对多媒体信息进行加密的过程。关于AES在数据库方面的应用,主要在于如何在数据输入、输出中生成、分配和管理所用的密钥以及安全的数据加密策略。AES硬件应用在AES硬件实现方面,主要方向有射频IC卡中的数据安全、智能安全卡和对硬盘数据的加密等方面。目前射频IC卡的应用范围很广,如公交IC卡、校园一卡通、门禁卡和新一代的居民身份证中都嵌入了IC芯片。其中所存储的数据通常都含有持卡人的私人信息,这些信息如果不经过加密处理,很可能泄露出去。因此,如何在射频IC卡中加入数据加密功能是AES硬件应用的一个研究方向。