2.3 RFID的差错控制与数据安全设计
2.3.1 RFID数据的差错控制
在RFID系统中,数据传输的完整性存在两个方面的问题,即外界的各种干扰可能使数据传输产生错误及多个应答器同时占用信道使发送数据产生碰撞。运用数据检验(差错检测)和防碰撞算法可分别解决这两个问题。
在实际信道上传输数字信号时,不理想的信道传输特性及加性噪声的影响,使接收端所收到的数字信号不可避免地发生错误。为了在已知信噪比情况下达到一定的误比特率指标,首先应该合理设计基带信号,选择调制解调方式,采用时域、频域均衡使误比特率尽可能降低。但若误比特率仍不能满足要求,则必须采用信道编码(即差错控制编码),将误比特率进一步降低,以满足系统指标的要求。
随着差错控制编码理论的完善和数字电路技术的发展,信道编码已经成功地应用于各种通信系统中,且在计算机、磁记录与存储中也得到日益广泛的应用。
差错控制编码的基本思路是,在发送端将被传输的信息附上一些监督码元,这些多余的码元与信息码元之间以某种确定的规则相互关联(约束)。接收端按照既定的规则校验信息码元与监督码元之间的关系,一旦传输发生差错,信息码元与监督码元的关系就受到破坏,从而使接收端可以发现错误乃至纠正错误。
研究各种编码和译码方法是差错控制编码所要解决的问题。
1.差错控制的3种方式
1)检错重发:在接收端根据编码规则进行检查,如果发现规则被破坏,则通过反向信道要求发送端重新发送,直到接收端检查无误为止。检错重发又称为请求重发(Automatic Repeat reQuest,ARQ)。这种差错控制方式是在发送端对数据按照一定的规则进行编码,使其具有一定的检错能力,称为能够检测错误的检错码。接收端收到码组后,按照编码规则校验有无错码,并把校验结果通过反向信道反馈到发送端。如果没有错码,就继续发送信号。如果有错码,就反馈重发信号,发送端把前面发出的信息重新传送一次,直到接收端正确收到为止。
ARQ系统具有各种不同的重发机制:如可以停发等候重发、X.25协议的滑动窗口选择重发等。
ARQ的优缺点是系统需要反馈信道,效率较低,但是能达到很好的性能。
2)前向纠错(Forward Error Correction,FEC):发送端发送能纠正错误的编码,在接收端根据接收到的码和编码规则,能自动纠正传输中的错误。
前向纠错的优缺点是不需要反馈信道,实时性好,但附加监督码较多,传输效率低,随着纠错能力的提高,编译码设备复杂。
3)结合前向纠错和ARQ的系统,在纠错能力范围内,自动纠正错误,超出纠错范围则要求发送端重新发送,它是一种折中的方案。混合纠错检错(Hybrid Error Correction,HEC)方式是前向纠错方式和检错重发方式的结合。发送端发送同时具有检错和纠错的编码,接收端接收到编码后,检查错误情况,如果错误少于纠错能力,则自行纠正;如果错误很多,超出纠错能力,但未超出检错能力,即能判决有无错码而不能判决错码的位置,这个时候接收端自动通过反向信道发出信号要求发端重发。
混合纠错的优缺点是采用了折中的方式,吸取了前向纠错和检错重发的优点,在保证正常通信的同时尽可能地减少编码的冗余度。
信道发生差错的几种模式:一般情况下,信道在通信的时候会产生一定的差错,差错的表现形式主要有随机差错、突发差错和混合差错。
随机差错:差错的出现是随机的,一般而言,差错出现的位置是随机分布的。这种情况一般是由信道的加性随机噪声引起的,一般将这种信道称为随机信道。
突发差错:差错的出现是一连串出现的。这种情况如移动通信中信号在某一段时间内发生衰落,造成一串差错;光盘上的一条划痕等,这样的信道称为突发信道。
混合差错:既有突发错误又有随机差错的情况,这种信道称为混合信道。
2.差错控制编码的基本原理
下面以差错重发编码为例来简单地阐述差错编码在相同的信噪比情况下为什么会获得更好的系统性能。
【例2-1】 假设发送信息0、1(等概率),采用2PSK方式,最佳接收的系统误比特率为,现在假设Pe=10-3(即平均接收1000个中错1个)。如果将信息0编码成00,信息1编码成11,则在接收端:
当发送00而收到01、10时,用户知道发生了差错,要求发送端重新传输,直到传送正确为止;只有当收到11时,用户才错误地认为当前发送的是1。因此在这种情况下发生译码错误的概率是。同理,如果发送的是11,那么只有收到00时才可能发生错误译码,在这种情况下发生译码错误的概率是。所以采用00、11编码的系统误比特率为。
试问:采用000、111编码的ARQ系统误比特率是多少?采用0000、1111编码的ARQ系统误比特率是多少?
【例2-2】 在例2-1中,如果0、1采用00000、11111编码,那么在接收端用如下的译码方法,每收到5个比特译码一次,采用大数判决,即若5个比特中0的个数,大于1的个数,则译码成0,反之译码成1;不采用ARQ方式。于是,这种编码方式就变成了纠错编码。
当传输错误而使接收端收到11000,10100,10010,10001,01100,01010,01001,00110,00101,00011中的任何一种时,都可以自动纠正成00000。
试计算在这种情况下的系统性能。
【例2-3】 2PSK系统中误比特率与Es/N0有关,上述例2-1和例2-2的编码方式称为重复码。可以看到,重复码中假设传输时每个符号的Es/N0相等,因此才得到以上的性能分析对比。
但如果以Eb/N0的指标进行比较,则看到
例2-1中
例2-2中
如果要求系统在Eb/N0相同的情况下进行比较,就可以看到这3种系统是等价的(即没有获得相应的编码增益)。
2PSK系统:
2重复码:
实际上,系统的性能与Es/N0直接相关,在n重复码中,用了nEs的能量来传输一个比特,从每个比特能量的角度来看重复码没有得到好处。编码增益为
3.差错控制编码的分类
1)根据差错控制编码的功能不同,可分为检错码、纠错码、纠删码(兼检错、纠错)。
2)根据信息位和校验位的关系,可分为线性码和非线性码。
3)根据信息码元和监督码元的约束关系,可分为分组码和卷积码。
①分组码。将k个信息比特编成n个比特的码字,共有2k个码字。所有2k个码字组成一个分组码。传输时前后码字之间毫无关系。
②卷积码。也是将k个信息比特编成n个比特,但前后的n个码字之间是相互关联的,即
2.3.2 纠错编码的基本原理
一般情况下,信源发出的消息均可用二进制信号来表示。例如,要传送的消息为A和B,可以用1代表消息A,0代表消息B。在信道传输后产生了误码,0错为1,或1错为0,但接收端却无法判断这种错误,因此这种码没有任何抗干扰能力。如果在0或1的后面加上一位监督位(也称为校验位),则以00代表消息A,11代表消息B。长度为2的二进制序列共有22=4种组合,即00、01、10、11。00和11是从这4种组合中选出来的,称其为许用码组,01、10为禁用码。当干扰只使其中一位发生错误时,例如00变成了01或10,接收端的译码器就认为是错码,但这时接收端不能判断是哪一位发生了错误,因为信息码11也可能变为01或10,所以不能自动纠错。如果在传输中两位码发生了错误,例如由00变成了11,译码器就会将它判为B,造成差错,可见,这种一位信息位、一位监督位的编码方式,只能发现一位错误码。
按照这种思路,如果在信息码之后附加两位监督码,即用000代表消息A,111代表消息B,这样势必会增强码的抗干扰能力。长度为3的二进制序列,共有8种组合,即000、001、010、011、100、101、110、111。这8种组合中有3种编码方案:第一种是把8种组合都作为码字,可以表示8种不同的信息,显然,这种编码在传输中若发生一位或多位错误时,则都使一个许用码组变成另一个许用码组,因而接收端无法发现错误,这种编码方案没有抗干扰能力。第二种方案是只选4种组合作为信息码字来传送信息,例如000、011、101、110,其他4种组合作为禁用码,虽然只能传送4种不同的信息,但接收端有可能发现码组中的一位错误。例如,若000中错了一位,则变为100,或001或010,而这3种码为禁用码组。接收端收到禁用码组时,就认为发现了错码,但不能确定错码的位置,若想能纠正错误,则还要增加码的长度。第三种方案中规定许用码组为000和111两个,这时能检测两位以下的错误,或能纠正一位错码。例如,在收到禁用码组100时,若当作仅有一位错码,则可判断出该错码发生在“1”的位置,从而纠正为000,即这种编码可以纠正一位差错。但若假定错码数不超出两位,则存在两种可能性,000错一位及111错两位都可能变为100,因而只能检错而不能纠错。
从上面的例子可以得到关于“分组码”的一般概念。如果不要求检错或纠错,为了传输两种不同的信息,只用一位码就够了,把代表所传信息的这位码称为信息位。若使用了2位码或3位码,则多增加的码位数称为监督位。把每组信息码附加若干监督码的编码称为分组码。在分组码中,监督码元仅监督本码组中的信息码元。
分组码一般用符号(n,k)表示,其中k是每组码中信息码元的数目,n是码组的总位数,又称为码组的长度(码长),n-k=r为每码组中的监督码元数目,或称为监督位数目。通常前面k位(an-1,an-2,…,ar)为信息位,后面附加r个监督位(ar,…,a0),此码又称为系统码,分组码结构如图2-18所示。
图2-18 分组码结构
2.3.3 差错控制编码的基本概念
1.编码效率
设编码后的码组长度、码组中所含信息码元及监督码元的个数分别为n、k和r,三者之间满足n=k+r,编码效率R=K/n=1-r/n。R越大,说明信息位所占的比重越大,码组传输信息的有效性越高。所以,R说明了分组码传输信息的有效性。
2.编码分类
1)根据已编码组中信息码元与监督码元之间的函数关系可分为线性码和非线性码。若监督码元与信息码元之间的关系呈线性,即满足一组线性方程式,则称为线性码。
2)根据信息码元与监督码元之间的约束方式不同可分为分组码和卷积码。分组码的监督码元仅与本码组的信息码元有关;卷积码的监督码元不仅与本码组的信息码元有关,而且与前面码组的信息码元有约束关系。
3)根据编码后信息码元是否保持原来的形式可分为系统码和非系统码。在系统码中,编码后的信息码元保持原样,而非系统码中的信息码元则改变了原来的信号形式。
4)根据编码的不同功能可分为检错码和纠错码。
5)根据纠、检错误类型的不同可分为纠、检随机性错误的码和纠、检突发性错误的码。
6)根据码元取值的不同可分为二进制码和多进制码。
3.编码增益
由于编码系统具有纠错能力,因此在达到同样误码率要求时,编码系统会使所要求的输入信噪比低于非编码系统,为此引入了编码增益的概念。其定义是,对于相同的信息传输速率,在给定的误码率下,非编码系统与编码系统之间所需信噪比S0/N0之差(用dB表示)。采用不同的编码会得到不同的编码增益,但编码增益的提高要以增加系统带宽或复杂度来换取。
4.码重和码距
对于二进制码组,码组中“1”码元的个数称为码组的重量,简称为码重,用W表示。例如码组11001,它的码重W=3。
两个等长码组之间对应位不同的个数称为这两个码组的汉明距离,简称为码距d。例如码组10001和01101,有3个位置的码元不同,故码距d=3。码组集合中各码组之间距离的最小值称为码组的最小距离,用d0表示。最小码距d0是信道编码的一个重要参数,它体现了该码组的纠、检错能力。d0越大,说明码字间最小差别越大,抗干扰能力越强。但d0与所加的监督位数有关,所加的监督位越多,d0就越大,这又引起了编码效率R的降低,故编码效率与最小码距是一对矛盾。
根据编码理论,一种编码的检错或纠错能力与码字间的最小距离有关。在一般情况下,分组码的最小汉明距离d0与检错和纠错能力之间满足下列关系。
1)当码字用于检测错误时,为了能检测出任意e个错误,最小码距应满足
这可以用图2-19a所示来说明。设一码组A位于O点,另一码组B与A最小码距为d0。当A码组发生e个误码时,可以认为A的位置将移动到以O为圆心、以e为半径的圆上,但其位置不会超出此圆。只要e比小1,发生个错码后错成的码组就不可能变成另一任何许用码组,即有e≤d0-1。
2)当码字用于纠错时,为了能纠正任意≤t个错误,最小码距应满足
图2-19 码距与检错和纠错能力之间的关系
a)d0≥e+1 b)d0≥2t+1 c)d0≥e+t+1
这可以用图2-19b所示来说明。若码组A和码组B发生不多于t位的错误,则其位置均不超出以O1和O2为圆心,t为半径的圆。只要这两个圆不相交,当误码小于t时,根据它们落入哪个圆内,就可以正确地判断A或B,即可以纠正错误。以O1和O2为圆心,t为半径的两圆不相交的最近圆心距离为2t+1,此即为纠正t个误码的最小码距。
3)为了能纠正任意t个错误,同时检测出任意e(e>t)个错误,要求最小码距
在解释此式之前,先来说明什么是“纠正个错码,同时又检测e个错码”(简称为纠检结合)。在某些情况下,要求对于出现较频繁但错码数很少的码组按前向纠错方式工作,以节省反馈重发时间,同时又希望对一些错码数较多的码组,在超过该码的纠错能力时,在超过该码的纠错能力后,能自动按检错重发方式工作,以降低系统的总误码率,这种工作方式就是“纠检结合”。
在上述“纠检结合”系统中,差错控制设备按照接收码组与许用码组的距离自动改变工作方式。若接收码组与某一许用码组间的距离在纠错能力t的范围内,则将按纠错方式工作,否则按检错方式工作。现用图2-19c所示来说明。若设码组的检错能力为e,则当码组A中存在e个错码时,该码组与任一许用码组B的距离至少应有t+1,否则将进入许用码组B的纠错能力范围内,而被错纠为B,这就要求最小码距应满足式d0≥e+t+1。
2.3.4 常用纠错的编码分类
1.奇偶监督码(奇偶校验)
奇偶校验码也称为奇偶监督码,它是一种最简单的线性分组检错编码方式,一般分奇校验码和偶校验码,两种编码的构成原理是一样的。在奇偶校验码中,一般无论信息位是多少位,校验位只有一位。其方法是首先把信源编码后的信息数据流分成等长码组,在每一信息码组之后加入一位(1比特)监督码元作为奇偶检验位,使得总码长n(包括信息位k和监督位1)中的码重为偶数(称为偶校验码)或为奇数(称为奇校验码)。如果在传输过程中任何一个码组发生一位(或奇数位)错误,则收到的码组必然不再符合奇偶校验的规律,因此可以发现误码。奇校验和偶校验两者具有完全相同的工作原理和检错能力,原则上采用任何一种都是可以的。
由于每两个1的模2相加为0,故利用模2加法可以判断一个码组中码重是奇数或是偶数。模2加法等同于“异或”运算。现以偶监督为例。
对于偶校验,应满足an-1⊕an-2⊕…⊕a1⊕c0=0,故监督位码元c0可由下式求出c0=a1⊕a2⊕…⊕an-2⊕cn-1,这种奇偶校验编码只能检出单数个或奇数个误码,而无法检知偶数个误码,对于连续多位的突发性误码也不能检知,故检错能力有限,另外,该编码后码组的最小码距为d0=2,故没有纠错码能力。奇偶监督码常用于反馈纠错法。
2.二维奇偶监督码
为了提高奇偶校验码对突发错误的检测能力,可以考虑用二维奇偶校验码,又称为行列检验码或方阵码,其方法如下所述。
将若干奇偶校验码排成若干行,然后对每列进行奇偶校验,放在最后一行。传输时按照列顺序进行传输,在接收端又按照行的顺序检验是否差错。
由于突发错误是成串发生的,经过这样的传输后错误被分散了。实际上这种方法是交织编码+奇偶校验。这种码能够发现某行或某列的奇数个错误和长度不大于行数(或列数)的突发错误,也有可能检测出偶数个错误码,这时候错误的码不能刚好分布在矩阵的4个顶点。同时也可以纠正一些错误。例如,当某行或某列均不满足监督关系而判定该行该列交叉位置的码元有错,从而纠正这一位上的错误。
在移动通信中,由于信道的衰落经常造成突发错误,因此经常在进入信道传输前,先将输入的信息比特交织,将突发错误尽可能分散成随机错误,然后用其他编码方式来纠正随机的错误。
3.恒比码
每个码组中1的个数都是一样的。
我国电传机传输汉字时每个汉字用4位阿拉伯数字表示,每个阿拉伯数字用5个比特的码字表示。由于阿拉伯数字只有10个,因此从32种可能的码字中挑出10个1的个数为3个的码字作为阿拉伯数字的编码方式。恒比码见表2-2。
表2-2 恒比码
恒比码的译码可以采用查表方法,检错时检查1的个数是否为3。一般用在电传、电报中。
4.循环码(CRC)
循环码是线性分组码中一类重要的编码,由于编码和译码的设备比较简单,检错纠错能力比较好,在理论和实践中有较大的发展。
循环码是一种线性分组码,前k位为信息码,后r位为监督位。循环码中任一许用码组经过循环移位后所得的码组仍为该码集中的一个许用码组,这种特征就是循环性特征。
循环码的一个码集中的任何两个码组相加后得到的新的码组还是该码集中的一个码组。由于两个相同的码组相加得到全0的序列,所以循环码一定是包含全0的码组,这种性质称为循环码的线性特征。
2.3.5 RFID编码方式的选择
在一个RFID系统中,编码方式的选择要考虑电子标签能量的来源、检错能力和时钟的提取等多方面因素。
由于使用的电子标签常常是无源的,无源标签在与读写器的通信过程中需要获得自身的能量供应。为了保证系统的正常工作,编码首先要保证不能中断读写器对电子标签的能量供应。如果编码能够满足每两个相邻数据位之间具有跳变的特性,相邻数据间有跳变的编码,那么就可以保证在出现连续0的时候对电子标签的能量供应和从接收到的编码中提取时钟信息,即这种时候常常选择码型变换丰富的编码方式。
为了提高系统的可靠性,编码中常常提供数据的校验保护。编码方式需要考虑是否满足这一功能,并根据码型变换判断误码或电子标签冲突的产生。在这种情况下,选择曼彻斯特编码、差动双向编码和单极性归零码具有更好的编码检错能力。
电子标签芯片中,一般没有时钟电路,通过读写器发出的信号中提取出需要的时钟信号,那么这时候读写器的编码方式应该选择更容易提取时钟信息的编码,例如曼彻斯特编码、米勒编码和差动双向编码。
2.3.6 RFID数据的完整性实施及安全设计
2.3.6 RFID数据的完整性实施及安全设计
完整性是指信息未经授权不能进行改变的特性,即信息在存储或传输过程中保持不被偶然或蓄意地删除、修改、伪造、乱序、重放、插入等破坏和丢失的特性。完整性是一种面向信息的安全性,它要求保持信息的原样,即信息的正确生成、正确存储和正确传输。完整性与保密性不同,保密性要求信息不被泄露给未授权的人,而完整性则要求信息不受到各种原因的破坏。
影响信息完整性的主要因素有设备故障、误码(包括在传输、处理和存储过程中产生的误码,定时稳定度和精度降低造成的误码,各种干扰源造成的误码)、人为攻击和计算机病毒等。
(1)保证信息完整性的主要方法
保证信息完整性的主要方法包括以下几种。
1)协议。通过各种安全协议可以有效地检测出被复制的信息、被删除的字段、失效的字段和被修改的字段。
2)纠错编码方法。由此完成检错和纠错功能。最简单和常用的纠错编码方法是奇偶校验法。
3)密码校验和方法。它是抗篡改和传输失败的重要手段。
4)数字签名。保障信息的真实性。
5)公证。请求网络管理或中介机构证明信息的真实性。
(2)干扰导致传输错误
RFID系统采取无接触的方式进行数据传输,因此在传输过程中很容易受到干扰,包括系统内部的热噪声和系统外部的各种电磁干扰等,这些都会使传输的信号发生畸变,使传输数据发生不受欢迎的改变,从而干扰导致数据传输发生错误,如图2-20所示。
图2-20 干扰导致数据传输发生错误
1)当接收读写器发出的命令及数据信息发生传输错误时,如果被电子标签接收到就可能导致以下结果。
①电子标签错误的响应读写器的命令。
②电子标签的工作状态发生混乱。
③电子标签错误的进入休眠状态。
2)当电子标签发出的数据发生传输错误时,如果被读写器接收到就可能导致以下结果。
①不能识别正常工作的电子标签,误判电子标签的工作状态。
②将一个电子标签判别为另一个电子标签,造成识别错误。
(3)解决方法
因传输的信号畸变而导致的数据传输出错在RFID系统的数据通信中是不能容忍的,解决的方法有两种。
1)加大读写器的输出功率,从而提高信噪比,但这种方式有一定的局限性,对读写器发出的功率有限制,如果超限,就会造成电磁污染。
2)在原始数据的后面加上一些校验位,使这些校验位与前边的数据之间具有某种关联,接收端根据判断收到的数据位和校验位之间是否满足这种关联关系来判断有没有发生畸变,这就是差错控制编码。
2.3.7 RFID的安全设计
与传统的条形码技术相比,RFID具有非接触读取、无须光学对准、工作距离长、适于恶劣环境和可识别运动目标等明显优势,又得益于电子技术的发展,因此逐渐得到了广泛的应用。典型的应用包括火车和货运集装箱的识别、高速公路自动收费及交通管理、仓储管理、门禁系统、防盗与防伪等方面。
当前的RFID技术研究主要集中于天线设计、安全与隐私防护、标签的空间定位和防碰撞技术等方面。
RFID系统在进行前端数据采集工作时,标签和识读器都采用无线射频信号进行通信。这在给系统数据采集提供灵活性和方便的同时,也使传递的信息暴露于大庭广众之下,这无疑是信息安全的重大威胁。随着RFID技术的快速推广应用,其数据安全问题已经成为一个广为关注的问题。
对于RFID系统前端数据采集部分而言,信息安全的威胁主要来自于对标签信息的非法读取和改动、对标签的非法跟踪、有效身份的冒充和欺骗3个方面。图2-21为RFID前端数据采集系统示意图。识读器和数据库服务器之间用可信任的安全信道相连,而识读器和标签之间则是不安全、不可信任的无线信道,存在被窃听、欺骗和跟踪等危险。
图2-21 RFID前端数据采集系统示意图
对于RFID系统应用的不同领域,数据安全防护的重点也不尽相同。在零售业,商家需要防止有人非法改动商品的价格。在物流领域,不仅要防止商业间谍窃取标签内货物的信息,也要防止他们通过跟踪标签来跟踪货物的流向,通过对标签进行计数来估计货物的数量。在门禁和自动收费的应用中要防止非法标签冒充合法标签来通过身份验证。
针对RFID系统数据安全的问题,当前已经提出各种途径的解决方法,其中有代表性的方法有以下几种,即物理隔离、停止标签服务、读取访问控制和双标签联合验证。下面将具体介绍和分析这几种方法。
1.物理隔离
物理隔离方法主要思想是,在不希望标签被读取的时候,使用物理方法阻断电磁波的传递路径。例如有人购买了贴有RFID标签的商品,在回家的路上他可以使用一种特殊的可阻断电磁波的包装袋来保护他的个人隐私不被人知晓。信息安全厂商(RSA)在这方面做了很多努力,已经开发出这种可以阻断RFID信号的包装袋。另外,RSA还在开发一种沙粒大小的微型芯片来阻断RFID标签与RFID识读器之间的通信。这种方法适用于零售小商品、医药、邮政包裹和档案文件等需要RFID标签保密的场合。
2.停止标签服务
停止标签服务就是在RFID标签的应用周期完成之后,部分或完全地停止标签的信息服务,有人把这称为“killtag”。这种方法主要是针对那种只存储标签ID的无源标签。这种标签的ID号是唯一的,往往是由产品的分类号和一个局部唯一的序列号组成。例如,读者可以在商品售出或货物易手时去掉RFID标签的序列号,只保留厂家和产品类型信息,或是干脆停止标签的工作。
3.读取访问控制
读取访问控制(Read Access Control)是利用Hash函数进行加密和验证的方案。在进行读取访问控制时,RFID标签只响应通过验证的识读器。除RFID识读器和RFID标签以外,还需要数据库服务器的支持。这是一种能够提供较完整的数据安全保护的方案,也是近来研究比较多的方案。下面将介绍其典型的实现方法。
Hash函数是一种单向函数,它的计算过程如下:输入一个长度不固定的字符串,返回一串定长度的字符串,又称为Hash值。单向Hash函数用于产生信息摘要。Hash函数主要解决以下两个问题:在某一特定的时间内,无法查找经Hash操作后生成特定Hash值的原报文;也无法查找两个经Hash操作后生成相同Hash值的不同报文。
1)初始化过程。方案对硬件的要求较高,标签的ROM存储标签ID的Hash函数值Hash(TagID)。RAM存储经授权的有效识读器的ReaderID。另外要求标签具有简单逻辑电路,可以做简单计算,如计算Hash函数和产生随机数。Reader与Tag和数据库服务器相联系,并被分配ReaderID。后台数据库存储TagID和Hash(TagID)数据。
2)验证过程。识读器首先发出请求,标签产生一个随机数k作为回应。服务器从识读器得到k值并计算k和ReaderID相异或的值(本文中记为k ReaderID),然后对其进行Hash运算得到a′(k)=Hash(k ReaderID),并通过识读器将a′(k)发给标签。与此同时,标签也用自己存储的k值和ReaderID值按同样的方法计算出a(k)。标签比较a(k)和a′(k),相同,则识读器拥有正确的ReaderID,验证通过,否则标签沉默。
3)信息传递过程。验证通过之后,标签会将其有效信息Hash(TagID)发给识读器,数据库服务器从识读器处取得Hash(TagID),并在数据库中查找出对应的TagID值,这就完成了信息传送。读取访问控制的验证过程如图2-22所示。
4)更新ReaderID过程。需要更新合法ReaderID时,用新的ReaderID和原来的Reade rID相异或,发给标签,标签可以使用原有的ReaderID值算出新的ReaderID值。
图2-22 读取访问控制的验证过程
4.双标签联合验证
双标签联合验证法是Ari Juels等人提出的一种面向低端、无源、计算能力低的RFID标签的安全验证方法。这种机制将在RFID标签数据要随货物多次易手的较复杂的情况下保持物流链中RFID标签信息的完整性。这种方法的主要思想是,在两个相对应的RFID标签被识读器同时读到时,使用读取设备作为中介进行互相验证。即使在识读器不被信任的情况下,标签也能够脱机进行验证。此方法适合某些特殊的应用,如在药品分发中,保证药品说明书和药瓶一同运输;保证某些飞机零件出厂时有安全阀。
双标签联合验证过程如图2-23所示。它所使用的是一种消息验证码(message authentication codes(MACs))机制。标签由唯一的秘密的长度为d的密钥来加密。另外每个标签都有一个计数器C,初始值为0。密钥集合由一个可信任的证明者V保管。MACx[m]表示用密钥x对信息m算出的MAC。fx[C]代表用密钥x对输入c进行hash运算。在标签TA和TB被同时扫描到时,产生了一个联合验证(yoking2proof)PAB。阅读器传送“左验证”和“右验证”的信息。作为结果的验证PAB由V使用它所知的密钥来查证。
图2-23 双标签联合验证过程
此方法的关键是两个标签同时被读到,但不一定是这些标签一定是被同一设备所读取。入侵者要从远端满足同时读取的条件是非常困难的,这提高了它的安全性。
5.RFID数据安全的比较及研究方向
物理隔离的方法简单、直接且有效,适用于RFID简单的应用场合。但它的简单安全机制也限制了其应用范围:首先,贴有RFID标签的物品必须适于装在这种电磁隔离的包装中,且体积不能太大,而无线通信设备也不适于这种电磁屏蔽的方法;其次,处于屏蔽隔离状态中的RFID标签虽保护了其中的信息,但此时标签也不能提供服务。另外,无论是特殊的包装或是阻隔电磁波的芯片,都会增加RFID标签的成本,而RFID标签的成本目前还需要进一步降低才能使RFID真正广泛地应用。
虽然停止标签服务的方法简单易行,但它只提供最简单的信息保护,能够适用的范围很小。如果只清除了标签序列号,他人仍可以得到标签中的其他信息,也可以凭此对标签进行跟踪。如果完全停止了标签的工作,就无法对标签进行进一步的利用。从资源和效率的方面讲都是很不实用的。另外,消费者并不容易检测他所买的商品上的RFID标签是否得到了有效的停止,换句话说,只要商家愿意,他们仍然可以跟踪消费者并窥探其隐私。所以目前需要解决的问题是,如何能保证停止标签的有效性和如何对标签进行重用。
读取访问控制的方法对识读器通信的全程都进行了加密防护,特别是对验证过程加入了随机数,具有防窃听、防跟踪和防欺骗的能力,并且可安全地更换合法的ReaderID。然而它对硬件的要求很高,尤其是标签要实现比较多的逻辑运算,并要求有可读写的存储器。对于这种方法,关键的是提高标签芯片的计算和存储能力以及对验证方法的改进和简化。
双标签联合验证的方法意在加密算法的小代价实现,达到了一定的安全强度。然而它仍然要求计算Hash函数,并且要求标签有360bit的存储器,对于无源标签来讲,还要有待于RFID硬件技术的进步才能实现。
为了进行一次读取访问控制验证,标签必须有一次产生随机数的运算、一次Hash运算和一次比较运算;而数据库服务器也要做相应的Hash运算,另外如果系统中一共有n个标签的话,服务器必须在n个标签的记录中查找对应的Hash(TagID)。在整个验证标签和识读器和标签之间至少要进行两次对话。而为了进行一次双标签联合验证,标签需要进行一次Hash运算、两次MAC运算和两次增量运算。在标签和识读器间至少要进行3次对话。
小知识
密码机是如何被破译的?
二战时,德国使用的是恩尼格玛密码机,其内部有3~4个机械转子,用于改变加密文字的电路信号。一共能产生多少种可能呢?
10 000 000 000 000 000种!
上面显示一亿亿种可能性,看来用“暴力破解法”来破解几乎是不可能的。
但“不可能”还是最终被英国科学家图灵发明的计算机破解,也就是今天计算机的前身。图灵是英国著名的数学家和逻辑学家,被称为“计算机科学之父”“人工智能之父”,是计算机逻辑的奠基者。