发明内容
为了解决上述技术问题,本发明提供了一种RFID系统需要可信第三方的多所有者标签所有权转换方法,其计算量小,而且安全性较好。
为了达到上述目的,本发明的技术方案是:一种RFID系统需要可信第三方的多所有者标签所有权转换方法,步骤如下:一、初始化:标签中设有标签与所有者之间共享的认证密钥k au 、所有权转换密钥k OT 和标签身份识别码TIN;根据所有权转换密钥分割方法由可信第三方根据不同所有者所持有的标签所有权的份额对所有权转换密钥k OT 进行分割,将其分割的不同的子密钥分配给相应的所有者;所有权转换阈值threshold;
二、协议流程:
1)原所有者OO index1 生成随机数r 1 和所有权转换请求OOR index1 ,发送{OOR index1 ,IDOO-index1 ,r 1 }给标签;其中,OOR index1 为原所有者OO index1 要求标签进行所有权转换的请求,IDOO-index1 为原所有者OO index1 的身份标识;
2)标签收到{OOR index1 ,IDOO-index1 ,r 1 }后,生成随机数r 2 ,计算H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k au ),并发送{OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k au )}给原所有者OO index1 ;其中,H(•)表示计算变量的Hash函数值,k au 为标签与所有者之间共享的认证密钥;
3)原所有者OO index1 收到{OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,H(OORi ndex1 ,IDOO-index1 ,r 1 ,r 2 ,k au )}后,用自己存储的认证密钥k' au 计算H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k' au );若计算结果与收到的H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k au )不相等,原所有者OO index1 无法确认标签的身份,协议终止;若计算结果与收到的H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k au )相等,原所有者OO index1 通过对标签的认证,原所有者OO index1 将标签的身份标识和自己持有的子密钥{IDT,k index1 }发送给可信第三方;
4)标签的其他原所有者OO index2 、OO index3 、……、OO indexn 分别与标签执行上述步骤1)至步骤3),则可信第三方可收到原所有者OO index2 、OO index3 、……、OO indexn 发来的子密钥k index2 、k index3 、……、k indexn ,n为同意进行所有权转化的原所有者的个数;可信第三方根据收到的标签的身份标识IDT在自己的数据库中查找出对应的标签所有权转换密钥;可信第三方根据收到的原所有者发来的子密钥k indexi ,i=1、2、……、n,采用所有权转换判断方法判断是否可以进行标签所有权转换;若不能进行标签所有权转换,则继续等待原所有者发来子密钥;若可以进行标签所有权转换,则可信第三方为标签生成新的所有权转换密钥k OT-new ;
5)可信第三方生成随机数r 3 ,发送{OTRTTP,r 3 ,H(OTRTTP,r 3 ,TIN)}给标签;其中,OTRTTP为来自可信第三方的所有权转换请求,TIN为标签与可信第三方共享的标签身份识别码;
6)标签收到可信第三方发送的消息{OTRTTP,r 3 ,H(OTRTTP,r 3 ,TIN)}后,使用自己存储的标签身份识别码TIN'计算H(OTRTTP,r 3 ,TIN'),将计算结果与收到的H(OTRTTP,r 3 ,TIN)进行对比;若两者不一致,标签无法确认可信第三方的身份,协议终止;若两者一致,标签确认可信第三方的身份,通过对可信第三方的认证,标签生成随机数r 4 ,计算H(OTRTTP,r 3 ,r 4 ,TIN'),并发送{OTRTTP,r 3 ,r 4 ,H(OTRTTP,r 3 ,r 4 ,TIN')}给可信第三方;
7)可信第三方收到标签发来的消息{OTRTTP,r 3 ,r 4 ,H(OTRTTP,r 3 ,r 4 ,TIN')}后,用自己存储的标签身份识别码TIN计算H(OTRTTP,r 3 ,r 4 ,TIN),将其与收到的H(OTRTTP,r 3 ,r 4 ,TIN')进行对比;若两者不一致,可信第三方无法确认标签的身份,协议终止;若两者一致,可信第三方确认标签的身份,通过对标签的认证,可信第三方使用标签生成新的所有权转换密钥k OT-new 计算H(r 3 ,r 4 ,IDNO,TIN,k OT )⊕k OT-new 和H(r 3 ,r 4 ,IDNO,TIN,k OT ,k OT-new ),发送{r 3 ,r 4 ,IDNO,H(r 3 ,r 4 ,IDNO,TIN,k OT )⊕k OT-new ,H(r 3 ,r 4 ,IDNO,TIN,k OT ,k OT-new )}给标签;
8)标签收到{r 3 ,r 4 ,IDNO,H(r 3 ,r 4 ,IDNO,TIN,k OT )⊕k OT-new ,H(r 3 ,r 4 ,IDNO,TIN,k OT ,k OT-new )}后,先用自己存储的标签身份识别码TIN'和所有权转换密钥k' OT 计算H(r 3 ,r 4 ,IDNO,TIN',k' OT ),标签用自己存储的标签身份识别码TIN'和所有权转换密钥k' OT ,以及计算出的k' OT-new 计算H(r 3 ,r 4 ,IDNO,TIN',k' OT ,k' OT-new ),将计算结果与收到的H(r 3 ,r 4 ,IDNO,TIN,k OT ,k OT-new )进行对比;若两者不相等,协议回到步骤5)执行;若两者相等,标签获得了正确的新的所有权转换密钥k' OT-new ,标签计算H(r 3 ,r 4 ,IDNO,TIN',k' OT-new ),发送{r 3 ,r 4 ,IDNO,H(r 3 ,r 4 ,IDNO,TIN',k' OT-new )}给可信第三方;
9)可信第三方收到标签发来的消息{r 3 ,r 4 ,IDNO,H(r 3 ,r 4 ,IDNO,TIN',k' OT-new )}后,用自己存储的标签身份识别码TIN和新的所有权转换密钥k OT-new 计算出H(r 3 ,r 4 ,IDNO,TIN,k OT-new ),并将该计算结果与收到的H(r 3 ,r 4 ,IDNO,TIN',k' OT-new )进行对比;若两者不相等,协议回到步骤5)执行;若两者相等,可信第三方确定标签获得了正确的新的所有权转换密钥k' OT-new ,可信第三方发送{OTSN,IDT,IDNO,k OT-new }给新所有者NO;新所有者NO取得了所有权转换密钥k OT-new ,获取了对标签的所有权,使用所有权转换密钥k OT-new 与标签进行通信;其中,OTSN为所有权转换成功通知。
所述所有权转换密钥分割方法的实现方法为:设子密钥的基本长度值为balen,所有权转换密钥k OT 的长度为slen,slen大于等于100×balen;为所有权转换密钥k OT 中的每一个比特进行编号,最左边的比特编号为1,从左往右每一个比特的编号依次为1,2,3,……,slen;可信第三方将标签的原所有者进行随机排序;若第一个所有者所拥有的标签的所有权份额为sh1%,可信第三方将所有权转换密钥k OT 的第1至第balen×sh1位作为该所有者所拥有的的子密钥,该所有者的序号为1;若第二个所有者所拥有的标签的所有权份额为sh2%,可信第三方将所有权转换密钥k OT 的第balen×sh1+1至第balen×sh1+1+balen×sh2-1位作为该所有者所拥有的的子密钥,该所有者的序号为balen×sh1+1;若第三个所有者所拥有的标签的所有权为份额sh3%,可信第三方将所有权转换密钥k OT 的第balen×(sh1+sh2)+1至第balen×(sh1+sh2)+1+balen×sh3-1位作为该所有者所拥有的子密钥,该所有者的序号为balen×(sh1+sh2)+1;以此类推;其中,sh1,sh2,sh3……为大于等于1,小于等于100的正整数,且sh1+sh2+sh3+……=100。
所有权转换判断方法的实现方法是:可信第三方收到同意进行所有权转换的原所有者的子密钥之后,将每个同意进行所有权转换的原所有者的子密钥按照该原所有者的序号进行重组;将重组后的子密钥与自己存储的所有权转换密钥k OT 进行对比,一致的比特数的比值与所有权转换阈值threshold相比较。
所有权转换判断方法的步骤为:可信第三方在自己的存储空间中划分出存储空间T-Space,从存储空间T-Space最左边开始,为每一比特进行编号,依次为1,2,3,……,slen;可信第三方按照序号依次将收到的子密钥放入存储空间T-Space中,若收到的子密钥不是连续的,则不同子密钥之间缺失的部分不存储任何数据;将收到的子密钥全部放入存储空间T-Space中,与自己存储的所有权转换密钥k OT 进行对比,其中一致的有corlen比特;若corlen/slen的值大于等于所有权转换阈值threshold,则同意标签所有权转换;若corlen/slen的值小于所有权转换阈值threshold,则不可以进行所有权转换。
所述所有权转换阈值threshold由可信第三方添加进标签或用户根据实际需要设定。
所述所有权转换阈值threshold为0.5。
所述随机数r 1 、r 2 、r 3 、r 4 、标签与所有者之间共享的认证密钥k au 、原所有者持有的子密钥、子密钥基本长度值balen、原所有者与标签共享的所有权转换密钥k OT 和新所有者与标签共享的新的所有权转换密钥k OT-new 的长度不低于128比特。
所述随机数r 1 、r 2 、r 3 、r 4 和、标签与所有者之间共享的认证密钥k au 、原所有者持有的子密钥、所有权转换密钥k OT 和新所有者与标签共享的新的所有权转换密钥k OT-new 应满足下列条件:
(1)不能所有比特均为0或1,且0和1出现的概率应相等或接近;
(2)每个比特的值为0或1的概率应该是相等的。
本发明的有益效果包括:
1)为具有多个所有者的标签进行所有权转换
目前,对于标签所有权转换方面的研究大多集中于具有单所有者标签的所有权转换,即标签原本只有一个所有者,要将标签的所有权转换给另一个所有者。本发明所提出的技术方案能够进行具有多个所有者的标签的所有权转换。标签的多个原所有者将自己持有的子密钥发送给可信第三方,可信第三方通过所有权转换判断方法决定是否可以进行所有权转换。在确定可以进行所有权转换后,将所有权交给新所有者。只有当同意进行所有权转换的原所有者所持有的标签所有权的份额达到某个阈值时,才能将标签的所有权交给新所有者。
因此,本发明可以为具有多个所有者的标签进行所有权转换。
2)为多所有者标签所有权转换提供安全保护
在本发明中,多个原所有者通过安全的信道将子密钥发送给可信第三方,由可信第三方判断是否可以进行所有权转换。在此过程中,攻击者无法获取子密钥,也无法获取标签的所有权转换密钥。可信第三方生成新的所有权转换密钥后,通过安全的信道将其发送给新所有者,并将其加密后发送给标签。在整个所有权转换过程中,攻击者和原所有者都无法获取标签与新所有者共享的新的所有权转换密钥。
因此,本发明可以为具有多个所有者的标签的所有权转换提供安全保护。
3)标签计算量较小
RFID标签只具有非常有限的计算资源,不能执行复杂的密码算法。因此,标签的计算量对于协议的执行效率非常重要。在本发明中,标签只需要能执行Hash函数和异或运算,这两种计算的计算量都较小。其中,所有权转换密钥分割方法和所有权转换判断方法都由可信第三方执行,无需标签参与。
因此,本发明中标签的计算量较小。
具体实施方式
下面通过附图和实施例具体描述一下本发明。
1.初始化阶段
标签被生产出来时,与可信第三方(Trusted third party,TTP)共享一个所有权转换密钥。若标签所附物品具有多个所有者,可信第三方根据多个所有者所持有的物品所有权的份额,为标签的每个所有者分配子密钥。不同的所有者所持有的份额不同,其所拥有的子密钥也不相同。拥有所有权份额较多的所有者持有的子密钥长度也较长。当可信第三方收到标签原所有者发来的子密钥时,可以使用所有权转换判断方法来判断是否可以进行标签所有权转换。只有当同意进行所有权转换的所有者所拥有的份额达到设定的阈值后,才可以进行标签所有权转换。
本发明中所用到的定义、变量及运算符号分别说明如下:
OO index :序号为index的标签的原所有者。其中,index为标签的所有者的序号,由标签所有者拥有的子密钥在标签所有权转换密钥中的位置决定,slen≥index≥1。
slen:标签所有权转换密钥的长度,单位为比特。
NO:标签的新所有者。
IDT:标签的身份标识,存储在标签、所有者和可信第三方中。
IDOO-index :标签原所有者OO index 的身份标识,存储在标签和原所有者中。
IDNO:新所有者的身份标识,存储在标签、新所有者和可信第三方中。
r 1 、r 2 、r 3 、r 4 :标签、原所有者或新所有者生成的随机数。
k au :标签与所有者之间共享的认证密钥,该密钥用于标签与所有者之间的身份认证。在一个所有者中,k au 是唯一的,不同的标签具有不同的k au 。
k index :由原所有者OO index 持有的子密钥,当需要进行所有权转换时,将其发送给可信第三方。可信第三方根据所有权转换判断方法决定是否可以进行标签所有权转换。
k OT :可信第三方与标签共享的所有权转换密钥。在一个可信第三方中,k OT 是唯一的,不同的标签具有不同的k OT 。
k OT-new :可信第三方与标签共享的新的所有权转换密钥。在一个可信第三方中,k OT-new 是唯一的,不同的标签具有不同的k OT-new 。
TIN:由标签与可信第三方共享的标签身份识别码。在一个可信第三方中,TIN是唯一的,不同的标签具有不同的TIN。
threshold:进行所有权转换时的阈值,100%≥threshold≥0。只有当同意进行所有权转换的所有者所拥有的标签所有权的份额之和大于等于阈值时,才能进行所有权转换,将标签的所有权交给新的所有者。
sh%:所有者拥有的标签所有权的份额。
x,y:变量x和y的串联。
x⊕y:变量x和y进行异或运算。
x/y:变量x除以变量y。
H(x):计算变量x的Hash函数值,如MD5值。
标签在被生产出来后,其内部存储器中被写入了认证密钥k au 、所有权转换密钥k OT 和标签身份识别码TIN。本发明中的阈值threshold可以由可信第三方添加进标签内,用户也可以根据实际需要设定新的阈值。阈值的主要作用是保证只有当拥有标签所有权大部分份额的所有者或多个所有者同意进行所有权转换时,才能将标签的所有权交给新的所有者。如果只有拥有标签所有权小部分份额的所有者或多个所有者同意进行所有权转换,则无法进行标签所有权转换。因此,通常设置阈值threshold为50%。若标签的所有权非常重要,也可以将阈值threshold的值增大,如设置阈值threshold为75%。如此,就需要同意进行标签所有权转换的所有者所持有的份额更多,才能进行转换。用户也可以根据实际需要设定阈值threshold。在本发明中,设阈值threshold为50%。
在本发明中,标签需要与所有者和可信第三方进行通信,所有者也需要与可信第三方进行通信。由于标签的计算资源非常有限,无法执行复杂的密码算法,因此假设标签与所有者和可信第三方之间的信道是不安全的;而标签的所有者和可信第三方都具有充足的计算资源,可以执行复杂的密码算法,以保护通信的安全性。因此,假设所有者与可信第三方之间的信道是安全的。此外,假设在进行所有权转换之前,标签的新所有者已经与原所有者进行了通信,标签的原所有者已经将新所有者的身份标识等相关信息发送给了可信第三方。
在进行标签所有权转换之前,可信第三方与标签共享一个所有权转换密钥k OT 。可信第三方根据所有权转换密钥分割方法和标签所有者持有的所有权的份额对所有权转换密钥k OT 进行分割,将其分割为多个子密钥,不同的所有者拥有的子密钥不同,并将子密钥发送给相应的标签所有者。所有者拥有标签所有权的份额越多,其拥有的子密钥的长度越长。当需要进行所有权转换时,可信第三方根据所有权转换判断方法和所有者发送来的子密钥判断是否可以进行标签所有权转换。
可信第三方首先将一个所有权转换密钥k OT 写入标签内,所有权转换密钥k OT 的长度为slen,然后为不同的所有者分配子密钥。设置一个子密钥基础长度值,用balen表示,每一个子密钥的长度为balen的正整数倍。为抵御穷举攻击,建议balen的值不小于128比特。
标签所有者持有的所有权份额之和为100%,所有者最少持有的所有权份额为1%。因此,一个标签的所有者的最大数量为100个。拥有1%所有权份额的所有者持有的子密钥长度为1×balen比特,拥有2%所有权份额的所有者持有的子密钥长度为2×balen比特,拥有sh%所有权份额的所有者持有的子密钥长度为sh×balen比特,以此类推。其中,sh为正整数且100≥sh≥1。不同的子密钥互相不相同。因此,所有权转换密钥的长度slen的值应大于等于100×balen。
接下来对所有权转换密钥分割方法和所有权转换判断方法进行说明。
1)所有权转换密钥分割方法
所有权转换密钥分割方法由可信第三方执行。该算法的输入为所有权转换密钥k OT ,以及不同所有者所持有的标签所有权的份额。输出是为不同所有者生成的子密钥。为所有权转换密钥中的每一个比特进行编号,最左边的比特编号为1,从左往右每一个比特的编号依次为1,2,3,……,slen。假设子密钥基本长度balen的值为128比特。
可信第三方将标签的原所有者随机排列。若第一个所有者所拥有的标签的所有权份额为sh1%,可信第三方将所有权转换密钥k OT 的第1至第128×sh1比特作为该所有者所拥有的的子密钥,其长度为128×sh1比特。该子密钥中的比特在所有权转换密钥中的最小编号即为该所有者的序号。第一个所有者拥有的子密钥在所有权转换密钥中的最小编号为1,因此该所有者的序号为1。
若第二个所有者所拥有的标签的所有权份额为sh2%,可信第三方将所有权转换密钥k OT 的第128×sh1+1比特至第128×sh1+1+128×sh2-1即128×(sh1+sh2)比特作为该所有者所拥有的子密钥,其长度为128×sh2比特。第二个所有者拥有的子密钥在所有权转换密钥中的最小编号为128×sh1+1,因此,该所有者的序号为128×sh1+1。
若第三个所有者所拥有的标签的所有权份额为sh3%,可信第三方将所有权转换密钥k OT 的第128×(sh1+sh2)+1比特至第128×(sh1+sh2)+1+128×sh3-1即128×(sh1+sh2+sh3)比特作为该所有者所拥有的子密钥,其长度为128×sh3比特。第三个所有者拥有的子密钥在所有权转换密钥中的最小编号为128×(sh1+sh2)+1,因此,该所有者的序号为128×(sh1+sh2)+1,……以此类推。其中,sh1,sh2,sh3……为大于等于1,小于等于100的正整数,且sh1+ sh2+ sh3+……=100。所有权转换密钥分割方法如图1所示。
例如,假设标签共有四个原所有者,分别为Owner-A、Owner-B、Owner-C和Owner-D。原所有者Owner-A拥有标签所有权的份额为5%,可信第三方将所有权转换密钥k OT 的第1比特至128×5比特即第1比特至第640比特的所有权转换密钥作为原所有者Owner-A所拥有的子密钥,将其通过安全信道发送给原所有者Owner-A。该子密钥的长度为640比特,原所有者Owner-A的序号为1。
原所有者Owner-B拥有标签所有权的份额为25%,可信第三方将所有权转换密钥k OT 的第128×5+1比特至128×5+1+128×25-1比特,即第641比特至3840比特的所有权转换密钥作为原所有者Owner-B所拥有的子密钥,将其通过安全信道发送给原所有者Owner-B。该子密钥的长度为128×25=3200比特,原所有者Owner-B的序号为641。
原所有者Owner-C拥有标签所有权的份额为35%,可信第三方将所有权转换密钥k OT 的第128×(5+25)+1比特至128×(5+25)+1+128×35-1比特,即第3841比特至8320比特的所有权转换密钥作为原所有者Owner-C所拥有的子密钥,将其通过安全信道发送给原所有者Owner-C。该子密钥的长度为128×35=4480比特,原所有者Owner-C的序号为3841。
原所有者Owner-D拥有标签所有权的份额为35%,可信第三方将所有权转换密钥k OT 的第128×(5+25+35)+1比特至128×(5+25+35)+1+128×35-1比特,即第8321至12800位的所有权转换密钥作为原所有者Owner-D所拥有的子密钥,将其通过安全信道发送给原所有者Owner-D。该子密钥的长度为128×35=4480比特,原所有者Owner-D的序号为8321。
2)所有权转换判断方法
该方法的输入为标签的不同所有者拥有的子密钥,输出为一个布尔类型的值,只有2个可能的取值,分别为true和false。若输出值为true,则表示可以进行标签所有权转换;若输出值为false,则表示不可以进行标签所有权转换。
可信第三方收到同意进行所有权转换的原所有者的子密钥之后,将每个同意进行所有权转换的原所有者的子密钥按照该原所有者的序号进行重组。具体步骤为:可信第三方在自己的存储空间中划分出专用的存储空间,该存储空间在初始化时没有存储任何数据,设该存储空间为T-Space,其基本存储单位为比特。从存储空间最左边的比特开始,为每一个比特的存储空间进行编号,依次为1,2,3,……,slen。可信第三方按照序号依次将收到的子密钥放入存储空间T-Space中,若收到的子密钥不是连续的,则不同子密钥之间缺失的部分仍然不存储任何数据。将收到的子密钥全部放入存储空间T-Space中后,将存储空间T-Space中的比特值与自己存储的所有权转换密钥k OT 进行对比,即T-Space中的编号为1的比特与所有权转换密钥中编号为1的比特进行对比,T-Space中编号为2的比特与所有权转换密钥中编号为2的比特进行对比,T-Space中的编号为3的比特与所有权转换密钥中编号为3的比特进行对比……。设其中一致的有corlen比特。若corlen/slen的值大于等于阈值threshold,则输出值为True,认为同意进行标签所有权转换的所有者所拥有的标签所有权的份额之和大于等于阈值threshold,可以进行所有权转换,将标签的所有权交给新所有者。若corlen/slen的值小于阈值threshold,则输出值为False,认为同意进行标签所有权转换的所有者所拥有的标签所有权的份额之和小于阈值threshold,不可以进行所有权转换。
延续上面的例子,假设标签的原所有者Owner-A和Owner-C同意进行所有权转换,可信第三方已经收到了Owner-A和Owner-C所持有的子密钥。所有权转换判断方法的具体步骤为:可信第三方将原所有者Owner-A发来的子密钥放入自己专门划出的存储空间T-Space中。由于该子密钥的序号为1,因此该子密钥应从编号为1的比特开始存放,直至该子密钥的值全部存储进存储空间T-Space中为止。可信第三方还收到了原所有者Owner-C的子密钥,并将该子密钥放入自己专门划出的存储空间T-Space中。由于该子密钥的序号为3841,因此该子密钥应从编号为3841的比特开始存放,直至该子密钥的值全部存储进存储空间T-Space中为止。至此,可信第三方所拥有的所有子密钥均已存储进存储空间T-Space中。存储空间T-Space中没有存储数据的比特仍然保持空白。此时,可信第三方将存储空间T-Space中的值与自己存储的所有权转换密钥k OT 进行对比。由于可信第三方拥有原所有者Owner-A的子密钥,该子密钥长度为128×5=640比特。可信第三方还拥有原所有者Owner-C的子密钥,该子密钥长度为128×35=4480比特。可信第三方总共拥有子密钥的长度为640+4480=5120比特。这5120比特的数据应该与可信第三方拥有的所有权转换密钥k OT 中的相应比特是相同的。这些比特在整个所有权转换密钥k OT 中所占的比例为5120/12800=0.4,该值并未达到阈值0.5。因此,输出False,不能进行所有权转换,此次所有权转换失败,只有原所有者Owner-A和Owner-C的子密钥不能进行标签的所有权转换。
若原所有者Owner-D也同意进行所有权转换,并将自己拥有的子密钥发送给可信第三方。可信第三方采用上述同样的方法将原所有者Owner-D的子密钥放入存储空间T-Space中的相应存储空间中。由于该子密钥的序号为8321,因此该子密钥应从编号为8321的比特开始存放,直至该子密钥的值全部存储进存储空间T-Space中为止。存储空间T-Space中没有存储数据的比特仍然保持空白。此时,标签总共拥有子密钥的长度为640+4480+128×35=9600比特。这9600比特的数据应该与可信第三方拥有的所有权转换密钥k OT 中的相应比特是相同的。这些比特在整个所有权转换密钥k OT 中所占的比例为9600/12800=0.75,该值已经超过阈值0.5。因此,输出True,可以进行所有权转换,将标签的所有权交给新所有者。因此,拥有原所有者Owner-A、Owner-C和Owner-D的子密钥可以进行标签的所有权转换。
2.协议流程
协议流程如图2所示。
1)原所有者OO index1 生成随机数r 1 和所有权转换请求OOR index1 ,发送{OOR index1 ,IDOO-index1 ,r 1 }给标签。其中,OOR index1 为原所有者OO index1 要求标签进行所有权转换的请求,OOR index1 含有原所有者OO index1 的序号,即OO index1 所拥有的子密钥在所有权转换密钥中的最小编号。
2)标签收到{OOR index1 ,IDOO-index1 ,r 1 }后,生成随机数r 2 ,计算H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k au ),并发送{OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k au )}给原所有者OO index1 ;其中,IDOO-index1为原所有者OO index1 的身份标识,存储在标签和原所有者OO index1 中。
3)原所有者OO index1 收到{OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k au )}后,用自己存储的密钥k' au 计算H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k' au )。若该计算结果与收到的H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k au )相等,说明标签使用的密钥k au 和原所有者使用的密钥k' au 是相同的,即k au =k' au ,原所有者OO index1 确认标签的身份,通过对标签的认证。原所有者OO index1 将标签的身份标识IDT和自己持有的子密钥k index1 发送给可信第三方,即发送{ID T ,k index1 }给可信第三方。
若原所有者OO index1 计算出的H(OOR index1 ,IDOO-index1 ,r 1 ,r 2 ,k' au )与收到的H(OOR index1 ,IDOO-index1,r 1 ,r 2 ,k au )不相等,说明标签使用的k au 和原所有者使用的k' au 是不相同的,即k au ≠k' au ,原所有者OO index1 无法确认标签的身份,协议终止。
4)标签的其他原所有者OO index2 、OO index3 ……、OO indexn 分别与标签执行上述步骤1)至步骤3),则可信第三方可收到原所有者OO index2 、OO index3 、……、OO indexn 发来的子密钥k index2 、k index3 、……、k indexn 。由于标签所有者所拥有的所有权份额之和为100%,而且最少拥有的所有权份额为1%。因此,一个标签的所有者的最大数量n为100个。可信第三方根据收到的标签的身份标识IDT可以在自己的数据库中查找出对应的标签所有权转换密钥。每当收到原所有者发来的子密钥时,可信第三方根据已经收到的原所有者发来的子密钥k indexi ,i=1、2、……、n,采用所有权转换判断方法来判断是否可以进行标签所有权转换。若不能进行标签所有权转换,则继续等待其他原所有者发来子密钥。若可以进行标签所有权转换,则可信第三方为标签生成新的所有权转换密钥k OT-new 。
5)可信第三方生成随机数r 3 ,发送{OTRTTP,r 3 ,H(OTRTTP,r 3 ,TIN)}给标签。其中,OTRTTP为来自可信第三方的所有权转换请求,TIN为标签与可信第三方共享的标签身份识别码。
6)标签收到可信第三方发送的消息{OTRTTP,r 3 ,H(OTRTTP,r 3 ,TIN)}后,使用自己存储的标签身份识别码TIN'计算H(OTRTTP,r 3 ,TIN'),并将该计算结果与收到的H(OTRTTP,r 3 ,TIN)进行对比。若两者不一致,说明标签存储的标签身份识别码TIN'与可信第三方存储的标签身份识别码TIN是不一致的,即TIN'≠TIN,标签无法确认可信第三方的身份,协议终止。若两者一致,说明标签存储的标签身份识别码TIN'与可信第三方存储的标签身份识别码TIN是一致的,即TIN'=TIN,标签确认可信第三方的身份,通过对可信第三方的认证。标签生成随机数r 4 ,计算H(OTRTTP,r 3 ,r 4 ,TIN'),并发送{OTRTTP,r 3 ,r 4 ,H(OTRTTP,r 3 ,r 4 ,TIN')}给可信第三方。
7)可信第三方收到标签发来的消息{OTRTTP,r 3 ,r 4 ,H(OTRTTP,r 3 ,r 4 ,TIN')}后,用自己存储的标签身份识别码TIN计算H(OTRTTP,r 3 ,r 4 ,TIN),并将其与收到的H(OTRTTP,r 3 ,r 4 ,TIN')进行对比。若两者不一致,说明可信第三方存储的标签身份识别码TIN与标签存储的标签身份识别码TIN'是不一致的,即TIN≠TIN',可信第三方无法确认标签的身份,协议终止。若两者一致,说明可信第三方存储的标签身份识别码TIN与标签存储的标签身份识别码TIN'是一致的,即TIN=TIN',可信第三方确认标签的身份,通过对标签的认证。可信第三方使用为标签生成的新的所有权转换密钥k OT-new 计算H(r 3 ,r 4 ,IDNO,TIN,k OT )⊕k OT-new 和H(r 3 ,r 4 ,IDNO,TIN,k OT ,k OT-new ),发送{r 3 ,r 4 ,IDNO,H(r 3 ,r 4 ,IDNO,TIN,k OT )⊕k OT-new ,H(r 3 ,r 4 ,IDNO,TIN,k OT ,k OT-new )}给标签。
8)标签收到{r 3 ,r 4 ,IDNO,H(r 3 ,r 4 ,IDNO,TIN,k OT )⊕k OT-new ,H(r 3 ,r 4 ,IDNO,TIN,k OT ,k OT-new )}后,先用自己存储的标签身份识别码TIN'和所有权转换密钥k' OT 计算H(r 3 ,r 4 ,IDNO,TIN',k' OT ),并将计算结果与收到的H(r 3 ,r 4 ,IDNO,TIN,k OT )⊕k OT-new 进行异或。若标签存储的标签身份识别码TIN'和所有权转换密钥k' OT 分别与可信第三方存储的标签身份识别码TIN和所有权转换密钥k OT 相等,则计算出的H(r 3 ,r 4 ,IDNO,TIN',k' OT )与收到的H(r 3 ,r 4 ,IDNO,TIN,k OT )相同,H(r 3 ,r 4 ,IDNO,TIN',k' OT )⊕H(r 3 ,r 4 ,IDNO,TIN,k OT )⊕k OT-new =k OT-new 。为了和可信第三方拥有的所有权转换密钥k OT-new 有所区别,将标签计算出的新的所有权转换密钥k OT-new 用k' OT-new 表示。
标签用自己存储的标签身份识别码TIN'和k' OT ,以及计算出的新的所有权转换密钥k' OT-new 计算H(r 3 ,r 4 ,IDNO,TIN',k' OT ,k' OT-new ),并将该计算结果与收到的H(r 3 ,r 4 ,IDNO,TIN,k OT ,k OT-new )进行对比。
若两者不相等,说明标签存储的标签身份识别码TIN'或所有权转换密钥k' OT 或计算出的k' OT-new 与可信第三方存储的标签身份识别码TIN或所有权转换密钥k OT 或k OT-new 不一致,即三个不等式TIN'≠TIN、k' OT ≠k OT 和k' OT-new ≠k OT-new 中至少有一个是成立的。在此种情况下,标签与可信第三方未能协商出一个共享的新的所有权转换密钥,协议从步骤5)重新开始执行。
若两者相等,说明标签存储的标签身份识别码TIN'、所有权转换密钥k' OT 和计算出的新的所有权转换密钥k' OT-new 与可信第三方存储的标签身份识别码TIN、k OT 和k OT-new 一致,即三个等式TIN'=TIN、k' OT =k OT 和k' OT-new =k OT-new 都是成立的。在此种情况下,标签已经成功获得了正确的新的所有权转换密钥k' OT-new ,标签与可信第三方拥有同一个新的所有权转换密钥。标签计算H(r 3 ,r 4 ,IDNO,TIN',k' OT-new ),发送{r 3 ,r 4 ,IDNO,H(r 3 ,r 4 ,IDNO,TIN',k' OT-new )}给可信第三方。
9)可信第三方收到标签发来的消息{r 3 ,r 4 ,IDNO,H(r 3 ,r 4 ,IDNO,TIN',k' OT-new )}后,用自己存储的标签身份识别码TIN和新的所有权转换密钥k OT-new 计算出H(r 3 ,r 4 ,IDNO,TIN,k OT-new ),并将该计算结果与收到的H(r 3 ,r 4 ,IDNO,TIN',k' OT-new )进行对比。
若两者不相等,说明可信第三方存储的标签身份识别码TIN或所有权转换密钥k OT-new 与标签存储的TIN'或k' OT-new 不一致,即个两不等式TIN'≠TIN和k' OT-new ≠k OT-new 中至少有一个是成立的。在此种情况下,可信第三方与标签未能协商出一个共享的新的所有权转换密钥,协议从步骤5)重新开始执行。
若两者相等,说明可信第三方存储的标签身份识别码TIN和所有权转换密钥k OT-new 与标签存储的TIN'和k' OT-new 一致,即两个等式TIN'=TIN和k' OT-new =k OT-new 都是成立的。在此种情况下,可信第三方与标签协商出一个共享的新的所有权转换密钥,并且可信第三方确定标签已经成功获得了正确的新的所有权转换密钥k' OT-new 。
可信第三方发送{OTSN,IDT,IDNO,k OT-new }给新所有者。其中,OTSN为所有权转换成功通知,用于通知新所有者获取标签新的所有权转换密钥k OT-new ,所有权转换完成。新所有者取得了所有权转换密钥k OT-new ,获取了对标签的所有权,可使用所有权转换密钥k OT-new 与标签进行通信。
在一些所有权转换协议中,为防止原所有者监听新所有者与标签之间的通信,以获取新所有者与标签的共享密钥,通常要求新所有者与标签协商共享密钥要在原所有者的通信范围之外进行。在本发明中,由可信第三方为标签和新所有者分配新的所有权转换密钥k OT-new 。该密钥受到标签和可信第三方共享的标签身份识别码的保护,攻击者必须同时拥有标签身份识别码和原所有权转换密钥k OT 才能获得k OT-new 。而标签身份识别码TIN只有标签和可信第三方拥有,故原所有者无法获取可信第三方为标签和新所有者分配的新的所有权转换密钥k OT-new 。
穷举攻击是针对受保护信息的一种重要的攻击方法,攻击者逐一尝试密钥的所有可能取值,直至攻击成功为止。为抵御此种攻击,通常采用增加密钥和其他部分变量的长度的方式来扩大密钥空间。因此,建议本发明中所用的随机数r 1 、r 2 、r 3 、r 4 、标签身份识别码TIN、认证密钥k au 、原所有者持有的子密钥k index 、子密钥基本长度值balen、原所有者与标签共享的所有权转换密钥k OT 和新所有者与标签共享的新的所有权转换密钥k OT-new 等随机数和秘密值的长度不低于128比特。其中,原所有者与标签共享的所有权转换密钥k OT 和新所有者与标签共享的新的所有权转换密钥k OT-new 的长度值应大于等于100×balen比特。上述随机数和秘密值等变量还应满足下列条件:
(1)不能所有比特均为0或1,且0和1出现的概率应相等或接近;
(2)每个比特的值为0或1的概率应该是相等的。
使用者也可以根据自己的需要自行设定协议中所用参数的长度。
异或运算需要参与计算的值具有同样的长度,例如,参与异或运算的两个值都是8比特长度。若发生参与计算的两个数值长度不同这样的情况,则长度较短的值先与长度较长的值的左端部分进行异或,然后再与长度较长的值的剩下部分的左端部分进行异或,如此依次进行异或,将每次异或的结果按照顺序依次排列,即构成了这两个值的异或结果。例如,4比特长度的变量val1的值为1011,10比特长度的变量val2的值为1110 0110 01,要计算val1和val2的异或运算结果。在计算时,先计算1011⊕1110=0101,再计算1011⊕0110=1101,然后再计算10⊕01=11。最终的计算结果为0101 1101 11,如图3所示。
本发明能够对具有多个所有者的标签所有权进行转换,标签的不同所有者分别持有标签所附物品一定份额的所有权。当部分标签的所有者同意进行所有权转换时,可信第三方利用所有权转换判断方法可以判断是否同意进行所有权转换。只有当同意进行所有权转换的所有者所占的份额达到阈值threshold时,才能够进行所有权的转换,将标签的所有权交给新所有者。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。