第五章RFID系统数据传输的安全性25RFID系统数据传输的安全性信息安全概述信息安全主要解决数据保密和认证的问题。数据保密就是采取复杂多样的措施对数据加以保护,防止数据被有意或无意地泄露给无关人员,造成危害。认证分为信息认证和用户认证两个方面,信息认证是指信息从发送到接收整个通路中没有被第三者修改和伪造,用户认证是指用户双方都能证实对方是这次通信的合法用户。RFID系统应用范围的不断扩大,其信息安全问题也日益受到重视。35RFID系统数据传输的安全性密码学的基础概念加密算法E解密算法D明文m密文c明文m密钥K密钥K′加密模型加密和解密变换的关系式:c=EK(m)m=DK′(c)=DK′(EK(m))45RFID系统数据传输的安全性对称密码体制一种常规密钥密码体制,也称为单钥密码体制或私钥密码体制。在对称密码体制中,加密密钥和解密密钥相同。从得到的密文序列的结构来划分,有序列密码和分组密码两种不同的密码体制。序列密码是将明文m看成是连续的比特流(或字符流)m1m2…,并且用密钥序列K=K1K2…中的第i个元素Ki对明文中的mi进行加密,因此也称为流密码。分组密码是将明文划分为固定的n比特的数据组,然后以组为单位,在密钥的控制下进行一系列的线性或非线性的变化而得到密文。55RFID系统数据传输的安全性分组密码数据加密标准(DataEncryptionStandard,DES)DES由IBM公司1975年研究成功并发表,1977年被美国定为联邦信息标准。DES的分组长度为64位,密钥长度为56位,将64位的明文经加密算法变换为64位的密文。高级加密标准(AdvancedEncryptionStandard,AES)新的加密标准,它是分组加密算法,分组长度为128位,密钥长度有128位、192位、256位三种,分别称为AES-128,AES-192,AES-256。65RFID系统数据传输的安全性IPL1=R0R16=L15⊕f(R15,K16)L15=R14L16=R15R15=L14⊕f(R14,K15)IP1R1=L0⊕f(R0,K1)L0(32bit)R0(32bit)ffK1K16明文m(64bit)密文C(64bit)异或DES加密算法Li=Ri-1Ri=Li-1⊕f(Ri-1,Ki)从左图可知75RFID系统数据传输的安全性AES和DES的不同之处有以下几点:DES密钥长度为64位(有效位为56位),加密数据分组为64位,循环轮数为16轮;AES加密数据分组为128位,密钥长度为128,192,256位三种,对应循环轮数为10,12,14轮。DES中有4种弱密钥和12种半弱密钥,AES选择密钥是不受限制的。DES中没有给出S盒是如何设计的,而AES的S盒是公开的。因此,AES在电子商务等众多方面将会获得更广泛的应用。序列密码(流密码),其计算复杂度低,硬件实现容易,在RFID系统中获得了广泛应用。85RFID系统数据传输的安全性非对称密码体制公开密钥与私人密钥加密算法E和解密算法D必须满足以下三个条件:①D(E(m))=m,m为明文;②从E导出D非常困难;③使用“选择明文”攻击不能破译,即破译者即使能加密任意数量的选择明文,也无法破译密文。RSA算法密钥获取的步骤如下:①选择两个大素数p和q,它们的值一般应大于10100;②计算n=p×q和欧拉函数(n)=(p-1)(q-1);③选择一个和(n)互质的数,令其为d,且1≤d≤(n);④选择一个e,使其能满足e×d=1mod(n),则公开密钥由(e,n)组成,私人密钥由(d,n)组成。95RFID系统数据传输的安全性RSA算法加密方法首先将明文看成是一个比特串,将其划分成一个个的数据块M,且满足0≤M<n。为此,可求出满足2k<n的最大k值,保证每个数据块长度不超过k即可。对数据块M进行加密,计算C=Me(modn),C即为M的密文。对C进行解密时的计算为M=Cd(modn)。演示取p=3,q=11n=p×q=3×11=33,(n)=(p-1)(q-1)=2×10=20;由于7和20没有公因子,因此可取d=7;解方程7e=1(mod20),得到e=3;公开密钥为(3,33),私人密钥为(7,33)。假设要加密的明文M=4,则密文C=Me(modn)=43(mod33)=31,接收方解密时计算M=Cd(modn)=317(mod33)=4,即可恢复出原文。105RFID系统数据传输的安全性椭圆曲线密码体制(ECC)椭圆曲线Weierstrass方程y2+a1xy+a3y=x3+a2x2+a4x+a6yy2=x35x+3PRQN=R+R=2RZ=P+Qx4321-4-3-2-1-1-212340115RFID系统数据传输的安全性椭圆曲线的基本ElGamal加解密方案加密算法:首先把明文m表示为椭园曲线上的一个点M,然后再加上KQ进行加密,其中K是随机选择的正整数,Q是接收者的公钥。发方将密文c1=KP和c2=M+KQ发给接收方。解密算法:接收方用自己的私钥计算dc1=d(KP)=K(dP)=KQ恢复出明文点M为M=c2-KQ明文椭圆曲线上的明文点椭圆曲线上的密文点编码加密明文椭圆曲线上的明文点椭圆曲线上的密文点解码解密传输发送方接收方125RFID系统数据传输的安全性RSA算法的特点之一是数学原理简单,在工程应用中比较易于实现,但它的单位安全强度相对较低,用目前最有效的攻击方法去破译RSA算法,其破译或求解难度是亚指数级。ECC算法的数学理论深奥复杂,在工程应用中比较困难,但它的安全强度比较高,其破译或求解难度基本上是指数级的。这意味着对于达到期望的安全强度,ECC可以使用较RSA更短的密钥长度。ECC在智能卡中已获得相应的应用,可不采用协处理器而在微控制器中实现,而在RFID中的应用尚需时日。135RFID系统数据传输的安全性序列密码体制密钥序列产生器进行初始化ci=E(mi)=mi⊕Ki接收端,对ci的解密算法D(ci)=ci⊕Ki=(mi⊕Ki)⊕Ki=mi需要同步密钥序列产生器密钥序列产生器发送端接收端密钥密钥明文序列miKici密文序列明文序列miKi145RFID系统数据传输的安全性m序列由n级D触发器作为移位寄存单元,开关S1,S2,…,Si,…,Sn-1用于控制相应某一级Di是否参加反馈的模2加(异或)运算。在时钟信号的控制下,虽然电路无外界激励信号,但能自动产生一个二进制周期序列。D1Dn1DnD2异或S0=1S1S2Sn1Sn=1akak1ak2akn时钟输出155RFID系统数据传输的安全性m序列反馈函数线性移位寄存器的特征多项式D1Dn1DnD2异或S0=1S1S2Sn1Sn=1akak1ak2akn时钟输出12012=0()=nininifxSXSSXSXSX165RFID系统数据传输的安全性非线性反馈移位寄存器序列——M序列在m序列中,寄位寄存器的值为全0时,系统为静止态。但在非线性反馈的情况下,移位寄存器全0状态可以参加反馈循环,使n级移位寄存器产生的周期序列比m序列长一位,即周期L=2n。它包括了n级移位寄存器的所有状态。D1Dn1DnD2异或S1S2Sn-1akak1ak2akn异或112+1=1nkikkkniaaaa175RFID系统数据传输的安全性射频识别中的认证技术三次认证过程阅读器随机数RBTOKENABTOKENBA应答器185RFID系统数据传输的安全性射频识别中的认证技术三次认证过程阅读器发送查询口令的命令给应答器,应答器作为应答响应传送所产生的一个随机数RB给阅读器。阅读器产生一个随机数RA,使用共享的密钥K和共同的加密算法EK,算出加密数据块TOKENAB,并将TOKENAB传送给应答器。TOKENAB=EK(RA,RB)应答器接受到TOKENAB后,进行解密,将取得的随机数与原先发送的随机数RB进行比较,若一致,则阅读器获得了应答器的确认。应答器发送另一个加密数据块TOKENBA给阅读器,TOKENBA为TOKENBA=EK(RB1,RA)阅读器接收到TOKENBA并对其解密,若收到的随机数与原先发送的随机数RA相同,则完成了阅读器对应答器的认证。195RFID系统数据传输的安全性密钥管理应答器中的密钥为了阻止对应答器的未经认可的访问,采用了各种方法。最简单的方法是口令的匹配检查,应答器将收到的口令与存储的基准口令相比较,如果一致,就允许访问数据存储器。分级密钥密钥A仅可读取存储区中的数据,而密钥B对数据区可以读写。如果阅读器A只有密钥A,则在认证后它仅可读取应答器中的数据,但不能写入。而阅读器B如果具有密钥B,则认证后可以对存储区进行读写。205RFID系统数据传输的安全性密钥管理主密钥密钥的加密密钥(二级密钥)数据的加密密钥(初级密钥)数据初级密钥用来保护数据,即对数据进行加密和解密;二级密钥是用于加密保护初级密钥的密钥;主密钥则用于保护二级密钥。这种方法对系统的所有秘密的保护转化为对主密钥的保护。主密钥永远不可能脱离和以明码文的形式出现在存储设备之外。