一种基于CPK体制的标签离线鉴真方法及装置
技术领域
本发明涉及信息安全技术,尤其是一种RFID电子标签离线防伪鉴真方法及相应的装置。
背景技术
现有技术中,人们常常将电子标签(或称凭证)的票面信息等明文进行数字签名、加密后写入一张RFID卡中,当需要进行验证时,利用读卡器从RFID卡中读出卡中的加密数据进行解码、数字验签,从而完成标签明文的防伪鉴真。
由于现有RFID卡中的加密数据可以被读出,那么便可以写入另一张RFID卡中,这样就给制造伪卡提供了机会。为了防止存有电子标签或凭证的RFID被不法商贩复制、伪造。有必要提供一种具有RFID认证功能的标签防伪鉴真方法及装置。
发明内容
本发明所要解决的技术问题是:针对上述存在的问题,提供一种RFID电子标签离线防伪鉴真方法,包括标签防伪写卡步骤、标签防伪读卡验证步骤;
其中,标签防伪写卡步骤包括:
步骤W1:利用私钥对标签的明文进行数字签名;
步骤W2:对明文、数字签名信息及一个散列算法根密钥进行加密;
步骤W3:将步骤W2的加密结果写入一张RFID卡的一次写存储区;将所述散列算法根密钥写入所述RFID卡的只写存储区;
所述RFID卡的只写存储区中还包括散列算法模块;
标签防伪读卡验证步骤包括:
步骤R1:读取RFID卡一次写存储区中的所述加密结果;
步骤R2:解密所述加密结果,得到明文、数字签名信息及所述散列算法根密钥;
步骤R3进一步包括步骤R301与步骤R302;
其中步骤R301包括:RFID卡内的散列算法模块将一随机数与卡内存储的散列算法根密钥进行运算得到第一序列;RFID卡外的散列算法模块将所述随机数与步骤R2解密得到的散列算法根密钥进行运算得到第二序列;比对第一序列与第二序列是否相同,得到比对结果;合法的RFID卡内的散列算法模块与卡外的散列算法模块相同;
步骤R302:利用公钥验签步骤R2解密得到的明文和数字签名信息;
步骤R4:进行防伪验证:若步骤R301的比对结果为相同且步骤302的验签结果为通过,则得到防伪验证为真的结果。
优选地,所述步骤W1中,利用CPK标识私钥对标签的明文进行CPK数字签名;所述步骤R302中,利用CPK标识公钥对步骤R2解密得到的明文及数字签名信息进行CPK数字验签;
所述步骤W2中,利用CPK加密公钥对明文、数字签名信息及所述散列算法根密钥进行CPK非对称加密;所述步骤R2中,利用CPK解密私钥解密所述加密结果。
优选地,包括卡外随机数生产模块,用于产生卡外随机数;所述RFID卡中包含用于产生卡内随机数的随机数生成模块以及比对认证模块;
所述步骤R301包括:
RFID卡内的散列算法模块将卡外随机数与卡内存储的散列算法根密钥进行运算得到第一序列;RFID卡外的散列算法模块将所述卡外随机数与步骤R2解密得到的散列算法根密钥进行运算得到第二序列;比对第一序列与第二序列是否相同,得到第一比对结果;
RFID卡内的散列算法模块将卡内随机数与卡内存储的散列算法根密钥进行运算得到第三序列;RFID卡外的散列算法模块将所述卡内随机数与步骤R2解密得到的散列算法根密钥进行运算得到第四序列;RFID卡内的比对认证模块比对第三序列与第四序列是否相同,得到第二比对结果;
所述步骤R4进行防伪验证,包括:若步骤R301的第一比对结果为相同、第二比对结果为相同且步骤302的验签通过,则得到防伪验证为真的结果。
本发明中的标签防伪写卡装置包括:
数字签名模块,用于利用私钥对标签的明文进行数字签名;
加密模块,用于对明文、数字签名信息及一个散列算法根密钥进行加密;
写入模块,用于将加密模块的加密结果写入一张RFID卡的一次写存储区;同时将所述散列算法根密钥写入所述RFID卡的只写存储区。
优选地,所述数字签名模块利用CPK标识私钥对标签的明文进行CPK数字签名;
所述加密模块利用CPK加密公钥对明文、数字签名信息及一个散列算法根密钥进行CPK非对称加密。
本发明中的一种RFID卡,包括一次写存储区与只写存储区;其中,一次写存储区中包括加密后的明文、数字签名信息及一个散列算法根密钥;只写存储器中包括散列算法模块以及与前述相同的散列算法根密钥;所述散列算法模块用于将只写存储器中的散列算法根密钥与一随机数进行运算并将运算结果输出到卡外。
优选地,所述只写存储器中还包括随机数生成模块及比对认证模块;所述散列算法模块用于将只写存储器中的散列算法根密钥与卡外的随机数进行运算并将运算结果输出到卡外;所述散列算法模块用于将只写存储器中的散列算法根密钥与卡内随机数生成模块生产的随机数进行运算并将运算结果输出到比对认证模块;所述比对认证模块将该运算结果与卡外的散列算法运算结果进行比对,然后输出比对结果。
本发明中的一种标签防伪读卡装置,包括:
读出模块,用于读取RFID卡一次写存储区中的所述加密结果;
解密模块,用于解密所述加密结果,得到明文、数字签名信息及所述散列算法根密钥;
散列算法模块,用于将一随机数与解密模块解密得到的散列算法根密钥进行运算得到运算结果;
比对认证模块,用于接收RFID卡利用同样的随机数与卡内的散列算法模块对卡内的散列算法根密钥进行运算的结果,并比对RFID卡输出的散列算法运算结果与所述标签防伪读卡装置散列算法模块运算得到的结果是否相同,得到比对结果;
数字验签算法模块,用于利用公钥对解密模块解密得到的明文和数字签名信息进行数字验签,得到验签结果;
防伪验证模块,用于当比对认证模块的比对结果为相同且数字验签算法模块的验签结果为通过时,得到防伪验证为真的结果。
优选地,还包括随机数生成模块;随机数生成模块用于生产随机数;
所述散列算法模块用于将卡内随机数发生模块产生的随机数与解密模块解密得到的散列算法根密钥进行运算得到运算结果并将该运算结果输出到卡内比对认证模块;以及用于将所述标签防伪读卡装置内的随机数生产模块产生的随机数与解密模块解密得到的散列算法根密钥进行运算得到运算结果并将该运算结果输出到所述标签防伪读卡装置内的比对认证模块;
防伪验证模块,用于当标签防伪读卡装置内的比对认证模块的比对结果为相同、RFID卡内比对认证模块的比对结果为相同且数字验签算法模块的验签结果为通过时,得到防伪验证为真的结果。
优选地,所述解密模块,用于利用本地CPK解密私钥解密所述加密结果;所述数字验签算法模块,用于利用本地CPK标识公钥对解密模块解密得到的明文及数字签名信息进行CPK数字验签。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本发明采用散列散发实现了合法RFID卡的认证,而卡中的认证密钥、算法等被写入只读存储区中,这样即使卡中的票面信息等明文被复制,但是卡中的认证机制不能被复制,由于复制的伪卡不能在读卡程序中完成必要的认证程序,因此本发明可以有效的防止RFID卡被复制伪造。
2.本发明将CPK解密私钥、CPK标识公钥直接封装在读卡器中,实现了电子标签的离线防伪鉴真,由于CPK解密私钥、CPK标识公钥无需经过网络传输,其被窃取的风险大大降低,进一步提高了安全性。
3.在认证时,用于散列算法引入随机数和根密钥组合,在认证时只需要传输随机数,有效防止散列算法根密钥在线路上传输被截获。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为本发明的一个具体实施例。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
如图1,本发明提供的一种RFID电子标签离线防伪鉴真方法实施例,包括标签防伪写卡步骤、标签防伪读卡验证步骤;
其中,标签防伪写卡步骤包括:
步骤W1:利用私钥对标签的明文进行数字签名;
步骤W2:对明文、数字签名信息及一个散列算法根密钥进行加密;
步骤W3:将步骤W2的加密结果写入一张RFID卡的一次写存储区;同时将所述散列算法根密钥写入所述RFID卡的只写存储区;
所述RFID卡的只写存储区中还包括散列算法模块;
标签防伪读卡验证步骤包括:
步骤R1:读取RFID卡一次写存储区中的所述加密结果;
步骤R2:解密所述加密结果,得到明文、数字签名信息及所述散列算法根密钥;
步骤R3进一步包括步骤R301与步骤R302;
其中步骤R301包括:RFID卡内的散列算法模块将一随机数与卡内存储的散列算法根密钥进行运算得到第一序列;RFID卡外的散列算法模块将所述随机数与步骤R2解密得到的散列算法根密钥进行运算得到第二序列;比对第一序列与第二序列是否相同,得到比对结果;合法的RFID卡内的散列算法模块与卡外的散列算法模块相同;
步骤R302:利用公钥验签步骤R2解密得到的明文及数字签名信息,得到验签结果;
步骤R4:进行防伪验证:若步骤R301的比对结果为相同且步骤302的验签通过,则得到防伪验证为真的结果,即认为步骤R2解密得到的明文为真的结果。
散列算法用于将散列算法根密钥运算成一串随机数序列,散列算法相同、随机数相同以及根密钥相同时,散列算法模块输出的随机数序列才会相同,本发明正是利用这一原理实现认证的。只有合法的RFID卡,其只读存储区中的散列算法根密钥、散列算法模块与读卡装置的一样,认证才能成功。
对于数字验签,如果从卡中读出的明文被篡改过,那么当利用与写卡装置数字证书私钥配对的公钥对从卡中读出的明文及数字签名信息进行数字验签的结果就不能成功,那么最终的防伪验证也不能成功。
可见本发明既确保了明文的安全也保证了合法卡的安全。
本发明中的RFID电子标签离线防伪鉴真方法另一个实施例中,所述步骤W1中,利用CPK标识私钥对标签的明文进行CPK数字签名;所述步骤R302中,利用CPK标识公钥对步骤R2解密得到的明文及数字签名信息进行CPK数字验签;所述步骤W2中,利用CPK加密公钥对明文、数字签名信息及所述散列算法根密钥进行CPK非对称加密;所述步骤R2中,利用CPK解密私钥解密所述加密结果。
为了进一步提高认证的可靠性,在第三实施例中采用双向认证,具体的作法是在前一实施例的基础之上增加一个位于卡外的随机数生产模块产生卡外随机数;相应的所述RFID卡中包含用于产生卡内随机数的随机数生成模块以及比对认证模块;
在本实施例中所述步骤R301包括:
RFID卡内的散列算法模块将卡外随机数与卡内存储的散列算法根密钥进行运算得到第一序列;RFID卡外的散列算法模块将所述卡外随机数与步骤R2解密得到的散列算法根密钥进行运算得到第二序列;比对第一序列与第二序列是否相同,得到第一比对结果;
RFID卡内的散列算法模块将卡内随机数与卡内存储的散列算法根密钥进行运算得到第三序列;RFID卡外的散列算法模块将所述卡内随机数与步骤R2解密得到的散列算法根密钥进行运算得到第四序列;RFID卡内的比对认证模块比对第三序列与第四序列是否相同,得到第二比对结果;
本实施例中步骤R4进行防伪验证,包括:若步骤R301的第一比对结果为相同、第二比对结果为相同且步骤302的验签结果为通过,则得到防伪验证为真的结果。
本实施例中,只有当数字验签、双向认证都成功时,防伪验证步骤才认为明文为真。
相应的,本发明还提供了一种标签防伪写卡装置,包括:
数字签名模块,用于利用私钥对标签的明文进行数字签名;
加密模块,用于对明文、数字签名信息及一个散列算法根密钥进行加密;
写入模块,用于将加密模块的加密结果写入一张RFID卡的一次写存储区;同时将所述散列算法根密钥写入所述RFID卡的只写存储区。
本发明中的一种RFID卡,包括一次写存储区与只写存储区;一次写存储区只能被写入一次,但是其中的数据可以被多次读取出来。只写存储区中的信息不能被读出来。其中,一次写存储区中包括加密后的明文、数字签名信息及一个散列算法根密钥;只写存储器中包括散列算法模块以及同样的散列算法根密钥。所述散列算法模块用于将只写存储器中的散列算法根密钥与一随机数进行运算并将运算结果输出到卡外。
对应于前述的RFID电子标签离线防伪鉴真方法第三实施例,RFID卡在另一实施例中,只写存储器中还包括随机数生成模块及比对认证模块;所述散列算法模块用于将只写存储器中的散列算法根密钥与卡外的随机数进行运算并将运算结果输出到卡外;所述散列算法模块用于将只写存储器中的散列算法根密钥与卡内随机数生成模块生产的随机数进行运算并将运算结果输出到比对认证模块;所述比对认证模块将该运算结果与卡外的散列算法运算结果进行比对,然后输出比对结果。
本发明还提供了一种标签防伪读卡装置,包括:
读出模块,用于读取RFID卡一次写存储区中的所述加密结果;
解密模块,用于解密所述加密结果,得到明文、数字签名信息及散列算法根密钥;
散列算法模块,用于将一随机数与解密模块解密得到的散列算法根密钥进行运算得到运算结果;
比对认证模块,接收RFID卡利用同样的随机数与卡内的散列算法模块对卡内的散列算法根密钥进行运算的结果,并比对RFID卡输出的散列算法运算结果与所述标签防伪读卡装置散列算法模块运算得到的结果是否相同,得到比对结果。
数字验签算法模块,用于利用公钥对解密模块解密得到的明文及数字签名信息进行数字验签,得到验签结果;
防伪验证模块,用于当比对认证模块的比对结果为相同且数字验签算法模块的验签通过时,得到防伪验证为真的结果。
同样的相应于前述RFID电子标签离线防伪鉴真方法第三实施例,标签防伪读卡装置的另一实施例还包括随机数生成模块;随机数生成模块用于生产随机数。
本实施例中的散列算法模块接收卡内随机数发生模块产生的随机数,并将该随机数与解密模块解密得到的散列算法根密钥进行运算得到运算结果并将该运算结果输出给卡内的比对认证模块;以及用于将本标签防伪读卡装置内的随机数生产模块产生的随机数与解密模块解密得到的散列算法根密钥进行运算得到运算结果并将该运算结果输出到所述标签防伪读卡装置内的比对认证模块。
防伪验证模块,用于当标签防伪读卡装置内的比对认证模块的比对结果为相同、RFID卡内比对认证模块的比对结果为相同且数字验签算法模块的验签结果也为通过时,得到防伪验证为真的结果。
与前述RFID电子标签离线防伪鉴真方法一样,上述的标签防伪写卡装置的加密模块采用CPK加密公钥对明文、数字签名信息及散列算法根密钥进行加密,相应的读卡装置中,所述解密模块,用于利用存储在本地的CPK解密私钥解密所述加密结果。
在另一具体实施方式中,标签防伪写卡装置的数字签名模块利用CPK标识私钥对明文进行数字签名,相应的读卡装置中,所述数字验签算法模块,用于利用预先存储本地的CPK标识公钥对解密模块解密得到的明文以及数字签名信息进行数字验签。
本发明中的随机数生成模块可以是产生随机数的软件模块,也可以是能够产生随机数的硬件电路。
本发明中的标签明文可以是票面信息、身份证信息等以及本领域技术人员能想到的其他需要保护的明文。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。