CN102801529B - 一种卡片安全通讯的方法 - Google Patents

一种卡片安全通讯的方法 Download PDF

Info

Publication number
CN102801529B
CN102801529B CN201210309493.8A CN201210309493A CN102801529B CN 102801529 B CN102801529 B CN 102801529B CN 201210309493 A CN201210309493 A CN 201210309493A CN 102801529 B CN102801529 B CN 102801529B
Authority
CN
China
Prior art keywords
card
data
signature
session key
entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210309493.8A
Other languages
English (en)
Other versions
CN102801529A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201210309493.8A priority Critical patent/CN102801529B/zh
Publication of CN102801529A publication Critical patent/CN102801529A/zh
Priority to US14/380,980 priority patent/US9288061B2/en
Priority to PCT/CN2013/080402 priority patent/WO2014032493A1/zh
Application granted granted Critical
Publication of CN102801529B publication Critical patent/CN102801529B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开一种卡片安全通讯的方法,涉及信息安全领域。可解决通讯数据被监听或截取的问题。该方法包括:卡片生成第一数据块并对其签名,得到第一签名结果;卡外实体生成第二数据块并对其签名,得到第二签名结果,如果第一签名结果和第二签名结果相同,卡外实体生成第三数据块并对其签名,得到第三签名结果,对认证数据签名,得到卡外实体签名;卡片生成第四数据块并对其签名,得到第四签名结果,如果第三签名结果和所述第四签名结果相同,卡片对认证数据签名,得到卡片签名,如果卡外实体签名和卡片签名相同,则认证成功,卡外实体发送相应安全级别的通讯命令,卡片根据相应安全级别执行相应操作,然后向所述卡外实体发送通讯成功响应。<!--1-->

Description

一种卡片安全通讯的方法
技术领域
本发明涉及信息安全领域,特别涉及一种卡片安全通讯的方法。
背景技术
随着计算机技术和互联网技术的迅猛发展,信息网络已经渗透到人们生活的每个角落,并逐步改变着人们的生活方式,同时计算机网络犯罪也不断出现。人们针对信息网络内的数据采用身份识别和加密技术的保护达成了共识,并开始广泛使用智能卡产品作为用户身份识别的标识工具。安全、有效地利用智能卡对网络中传输的数据实现实时加、解密处理,从而保证用户在安全、快捷、方便的前提下享受信息网络提供的服务。
对于信息安全通信领域涉及到的安全层面,目前使用的技术并不完善,不能够避免通讯数据被监听或截取的问题。
发明内容
为解决现有技术的缺陷,本发明提供了一种卡片安全通讯的方法。
一种卡片安全通讯的方法,包括:
步骤S1:卡片生成第一数据块并对其签名,得到第一签名结果,向卡外实体发送验证命令;
步骤S2:所述卡外实体接收所述验证命令并从中获取所述第一签名结果,所述卡外实体生成第二数据块并对其签名,得到第二签名结果,比较所述第一签名结果和所述第二签名结果;相同,执行步骤S3;不相同,返回步骤S1;
步骤S3:所述卡外实体生成第三数据块并对其签名,将得到第三签名结果作为认证数据的一部分,保存当前安全级别,对认证数据签名得到卡外实体签名,向所述卡片发送外部认证命令;
步骤S4:所述卡片接收所述外部认证命令并从中获取所述认证数据和所述卡外实体签名,再从所述认证数据中获取第三签名结果,所述卡片生成第四数据块并对其签名,得到第四签名结果,比较所述第三签名结果和所述第四签名结果;不相同,返回步骤S1;相同,执行步骤S5;
步骤S5:所述卡片对获取的所述认证数据签名,得到卡片签名,比较所述卡外实体签名和所述卡片签名;不相同,返回步骤S1;相同,执行步骤S6;
步骤S6:所述卡片保存当前安全级别,向所述卡外实体发送认证成功响应;
步骤S7:所述卡外实体读取当前安全级别后执行相应安全级别的操作,向所述卡片发送相应安全级别的通讯命令;
步骤S8:所述卡片根据接收到的所述通讯命令进行相应操作,然后向所述卡外实体发送通讯成功响应;
步骤S9:所述卡外实体接收到所述通讯成功响应后判断是否继续通讯,是则返回步骤S7;否则结束。
步骤S1之前还包括:
所述卡外实体生成第一随机数并保存;
所述卡外实体向所述卡片发送包含所述第一随机数的内部初始化命令;
所述卡片接收所述内部初始化命令并从中读取第一随机数;
所述卡片生成第二随机数并保存;
所述卡片生成第一会话密钥、第二会话密钥、第三会话密钥并保存。
所述卡外实体生成的第一随机数为8字节,所述卡片生成的第二随机数为6字节;
所述卡片生成第一会话密钥,具体包括:所述卡片用序列计数值、第一常量、第一固定数据生成第一派生数据,再用内置的第一密钥对所述第一派生数据采用第一预设方式进行加密,生成第一会话密钥;
所述卡片生成第二会话密钥,具体包括:所述卡片用所述序列计数值、第二常量、所述第一固定数据生成第二派生数据,再用内置的第二密钥对所述第二派生数据采用所述第一预设方式进行加密,生成第二会话密钥;
所述卡片生成第三会话密钥,具体包括:所述卡片用所述序列计数值、第三常量、所述第一固定数据生成第三派生数据,再用内置的第三密钥对所述第三派生数据采用所述第一预设方式进行加密,生成第三会话密钥。
所述步骤S1具体为:所述卡片将所述第一随机数、所述序列计数值和所述第二随机数顺序拼接得到所述第一数据块;用所述第一会话密钥和第一变量对所述第一数据块进行签名,得到第一签名结果,向卡外实体发送包含所述第一签名结果、所述第二随机数和所述序列计数值的验证命令。
步骤S1与S2之间还包括:
所述卡外实体从所述验证命令中获取第二随机数和序列计数值;
所述卡外实体生成第四会话密钥,具体包括:所述卡外实体用所述序列计数值、第一常量、第一固定数据生成第四派生数据,再用内置的第一密钥对所述第四派生数据采用第一预设方式进行加密,生成第四会话密钥;
所述卡外实体生成第五会话密钥,具体包括:所述卡外实体用所述序列计数值、第二常量、第一固定数据生成第五派生数据,再用内置的第二密钥对所述第五派生数据采用第一预设方式进行加密,生成第五会话密钥;
所述卡外实体生成第六会话密钥,具体包括:所述卡外实体用序列计数值、第三常量、第一固定数据生成第六派生数据,再用内置的第三密钥对所述第六派生数据采用第一预设方式进行加密,生成第六会话密钥。
步骤S2所述卡外实体生成第二数据块并对其签名,得到第二签名结果具体为:所述卡外实体将所述第一随机数、所述序列计数值和所述第二随机数顺序拼接得到所述第二数据块;用所述第四会话密钥和第二变量对所述第二数据块进行签名,得到第二签名结果;
步骤S3所述卡外实体生成第三数据块并对其签名,具体包括:所述卡外实体按照序列计数值、第二随机数、第一随机数的顺序拼接生成第三数据块,并用所述第四会话密钥和第三变量对所述第三数据块签名,得到第三签名结果。
所述卡片生成第四数据块并对其签名,具体包括:所述卡片按照序列计数值、第二随机数、第一随机数的顺序拼接生成第四数据块,并用所述第一会话密钥和第四变量对所述第四数据块签名,得到第四签名结果。
所述签名采用的签名方式,具体包括:
步骤A:对待签名的数据块按预设字节数为单位进行分块,对于不足预设字节数的块,自动填充为预设字节数;
步骤B:判断循环计数器的计数值是否等于分块数;
是,执行步骤D;否,执行步骤C;
步骤C:用会话密钥的指定字节和变量对等于当前计数值的分块的命令数据,采用第二预设方式进行加密,并用得到的加密结果替换所述变量,当前计数值自加1,然后执行步骤B;
步骤D:用会话密钥和变量对最后一块命令数据,采用第二预设方式进行加密,并将得到的加密结果保存为签名结果。
步骤S3中所述卡外实体保存当前安全级别之前还包括:所述卡外实体修改所述认证数据的预设部分;步骤S6中所述卡片保存当前安全级别之前还包括:所述卡片修改认证数据的预设部分,将所述序列计数值加1,将所述卡片签名保存为所述卡片签名信息值;
所述卡外实体、卡片保存当前安全级别,具体包括:将认证数据的第三字节保存为当前安全级别。
所述卡外实体修改所述认证数据的预设部分,具体包括:将所述认证数据的第一字节更改为第一固定值、数据域长度值加8;
所述卡片修改所述认证数据的预设部分,具体包括:将所述认证数据的第一字节更改为第二固定值,数据域长度值减8。
所述卡外实体对认证数据签名,具体包括:所述卡外实体用第五会话密钥和卡外实体签名信息值对所述认证数据的指定部分进行签名,得到卡外实体签名;
所述卡片对认证数据签名,具体包括:所述卡片用第二会话密钥和卡片签名信息值对所述认证数据的指定部分进行签名,得到卡片签名。
所述认证数据的指定部分,具体包括:所述认证数据除可选的应答命令数据字段长度以外的其余部分;
所述卡外实体对认证数据的指定部分进行签名,具体包括:
步骤A:把认证数据除可选的应答命令数据字段长度以外的其余部分按8字节为单位进行分块,对于不足8字节的块,自动填充为8字节,共划分为N块;
步骤B:判断循环计数器的计数值M是否等于块数N;
是,执行步骤D;否,执行步骤C;
步骤C:用第五会话密钥的前8字节和卡外实体签名信息值对第M块命令数据进行加密,并用得到的加密结果替换原来的卡外实体签名信息值,进行保存,计数值M自加1,然后执行步骤B;
步骤D:用第五会话密钥和卡外实体签名信息值对最后一块命令数据进行加密,得到8字节的加密结果,将其保存为卡外实体签名;
所述卡片对认证数据的指定部分进行签名,具体包括:
步骤a:把认证数据除可选的应答命令数据字段长度以外的其余部分按8字节为单位进行分块,对于不足8字节的块,自动填充为8字节,共划分为Q块;
步骤b:判断循环计数器的计数值P是否等于块数Q;
是,执行步骤d;否,执行步骤c;
步骤c:用第二会话密钥的前8字节和卡片签名信息值对第P块命令数据进行加密,并用得到的加密结果替换原来的卡片签名信息值,进行保存,计数值P自加1,然后执行步骤b;
步骤d:用第二会话密钥和卡片签名信息值对最后一块命令数据进行加密,得到8字节的加密结果,将其保存为卡片签名。
在步骤C之前还包括确定卡外实体签名信息值:
第一次计算卡外实体签名时,所述卡外实体签名信息值初始值为8字节的第二固定数据;非第一次计算卡外实体签名时,所述卡外实体签名信息值是用所述第五会话密钥的前8字节对上一次经过验证正确的所述卡外实体签名进行第三预设方式计算后得到的;
在步骤c之前还包括确定卡片签名信息值:
第一次计算卡片签名时,所述卡片签名信息值初始值为8字节的第二固定数据;非第一次计算卡片签名时,所述卡片签名信息值是用所述第二会话密钥的前8字节对上一次经过验证正确的所述卡片签名进行第三预设方式计算后得到的。
所述步骤S7具体为:
所述卡外实体读取所述当前安全级别,当所述当前安全级别为0时,所述卡外实体向所述卡片发送第一通讯命令。
所述步骤S7具体为:
所述卡外实体读取所述当前安全级别,当所述当前安全级别为1时,所述卡外实体修改通讯命令的预设部分,用所述第五会话密钥和所述卡外实体签名信息值对通讯命令的指定部分签名,用得到的卡外实体签名替换原来的所述卡外实体签名信息值进行保存,向所述卡片发送包含所述通讯命令和所述卡外实体签名的第二通讯命令。
所述步骤S7具体为:
所述卡外实体读取所述当前安全级别,当所述当安全级别为3时,所述卡外实体判断通讯命令的敏感数据是否需要加密;
是则,所述卡外实体用所述第六会话密钥对通讯命令的敏感数据加密;所述卡外实体修改所述通讯命令的预设部分,用所述第五会话密钥和所述卡外实体签名信息值对所述通讯命令的指定部分签名,得到的卡外实体签名替换原来的所述卡外实体签名信息值进行保存;所述卡外实体填充所述通讯命令,修改所述通讯命令的固定部分,用所述第四会话密钥对所述通讯命令的数据域进行加密,用得到的加密结果替换加密前的部分;所述卡外实体向所述卡片发送包含所述通讯命令和所述卡外实体签名的第三通讯命令;
否则,所述卡外实体修改通讯命令的预设部分,用所述第五会话密钥和所述卡外实体签名信息值对所述通讯命令的指定部分签名,用得到的卡外实体签名替换原来的所述卡外实体签名信息值进行保存;所述卡外实体填充所述通讯命令,修改所述通讯命令的固定部分,用所述第四会话密钥对所述通讯命令的数据域进行加密,用得到的加密结果替换加密前的部分;所述卡外实体向所述卡片发送包含所述通讯命令和所述卡外实体签名的第四通讯命令。
所述卡外实体用所述第六会话密钥对通讯命令的敏感数据加密,具体包括:所述第六会话密钥采用第一预设方式对所述通讯命令的敏感数据加密;在加密之前还包括将敏感数据的长度填充成8字节数据长度的倍数,具体填充方式由所述卡外实体和所述卡片双方约定;
所述卡外实体填充所述通讯命令,修改所述通讯命令的固定部分,具体包括:
步骤E:判断所述通讯命令的数据域的长度值是否为8字节的倍数;
是则执行步骤F;否则执行步骤G;
步骤F:填充的数据长度为0,然后执行H;
步骤G:按指定方式填充数据域,使其长度为8字节数据长度的倍数;
步骤H:将所述通讯命令的数据域长度值加所述填充的数据长度的结果作为新的所述数据域长度值;
用所述第四会话密钥对所述通讯命令的数据域进行加密,具体包括:用所述第四会话密钥对所述通讯命令的数据域采用第一预设方式加密。
所述卡外实体修改通讯命令的预设部分,具体包括:将通讯命令的第一字节更改为第一固定值,数据域长度值加8;
用所述第五会话密钥和所述卡外实体签名信息值对通讯命令的指定部分签名,具体包括:
步骤A’:把通讯命令除可选的应答命令数据字段长度以外的其余部分按8字节为单位进行分块,对于不足8字节的块,自动填充为8字节,共划分为N’块;
步骤B’:判断循环计数器的计数值M’是否等于块数N’;
是,执行步骤D’;否,执行步骤C’;
步骤C’:用第五会话密钥的前8字节和卡外实体签名信息值对第M’块命令数据进行加密,并用得到的加密结果替换原来的卡外实体签名信息值,进行保存,计数值M’自加1,然后执行步骤B’;
步骤D’:用第五会话密钥和卡外实体签名信息值对最后一块命令数据进行加密,将得到的加密结果保存为卡外实体签名。
所述步骤S8具体包括:
所述当前安全级别为0时,所述卡片接收所述第一通讯命令,并将其转发给卡内应用,然后向所述卡外实体发送通讯成功响应。
所述步骤S8具体包括:
所述当前安全级别为1时,所述卡片接收所述第二通讯命令并从中读取所述通讯命令、所述卡外实体签名;
所述卡片用所述第二会话密钥和所述卡片签名信息值对所述通讯命令的指定部分签名,得到所述卡片签名;
所述卡片比较所述卡外实体签名和所述卡片签名;
若相同,则所述卡片用所述卡片签名替换原来的所述卡片签名信息值进行保存,修改所述通讯命令的预设部分;向所述卡外实体发送通讯成功响应;
若不相同,则所述卡片向所述卡外实体发送通讯失败响应。
所述步骤S8具体包括:
所述当前安全级别为3时,所述卡片接收所述第三通讯命令并从中读取所述通讯命令、所述卡外实体签名;
所述卡片用所述第一会话密钥对所述通讯命令的数据域进行解密,用得到的解密结果替换解密前的部分,修改所述通讯命令的固定部分;
所述卡片用所述第二会话密钥和所述卡片签名信息值对所述通讯命令的指定部分签名,得到所述卡片签名;
所述卡片比较所述卡外实体签名和所述卡片签名;
若相同,则所述卡片用所述卡片签名替换原来的所述卡片签名信息值进行保存,修改所述通讯命令的预设部分;如果所述通讯命令中有密文,则用所述第三会话密钥对所述通讯命令的密文部分进行解密,用解密后的结果替换解密前的部分,向所述卡外实体发送通讯成功响应;如果所述通讯命令中没有密文,则向所述卡外实体发送通讯成功响应;
若不相同,则所述卡片向所述卡外实体发送通讯失败响应。
所述卡片用所述第一会话密钥对所述通讯命令的数据域进行解密,具体包括:用所述第一会话密钥对通讯命令的数据域采用第一预设方式解密;
所述修改所述通讯命令的固定部分,具体包括:将通讯命令的数据域长度值减填充的数据长度的结果作为新的数据域长度值;
所述第三会话密钥对所述通讯命令的密文部分进行解密,具体包括:用所述第三会话密钥对所述通讯命令的密文部分采用第一预设方式进行解密。
所述卡片用所述第二会话密钥和所述卡片签名信息值对所述通讯命令的指定部分签名,具体包括:
步骤a’:把认证数据除可选的应答命令数据字段长度以外的其余部分按8字节为单位进行分块,对于不足8字节的块,自动填充为8字节,共划分为q’块;
步骤b’:判断循环计数器的计数值p’是否等于块数q’;
是,执行步骤d’;否,执行步骤c’;
步骤c’:用第二会话密钥的前8字节和卡片签名信息值对第p’块命令数据进行加密,并用得到的加密结果替换原来的卡片签名信息值,进行保存,计数值p’自加1,然后执行步骤b’;
步骤d’:用第二会话密钥和卡片签名信息值对最后一块命令数据进行加密,将得到的加密结果保存为卡片签名;
所述修改所述通讯命令的预设部分,具体包括:将所述通讯命令的第一字节更改为第二固定值,数据域长度值减8。
本发明实施例提供的技术方案有益效果为:一种卡外实体与卡片之间的通讯采用本发明的方法,能够为其中一方或者双方提供一定保障的安全通信机制,通过发起一个会话,通讯双方互相认证,确定对方身份的合法性和通讯数据的完整性,并为后续的通讯提供安全约束,从而提高了通讯的安全性。
附图说明
图1-1为实施例1提供的一种卡片安全通讯的方法流程图;
图1-2为实施例1提供的一种卡片安全通讯的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做进一步地详细描述。
本发明实施例中,提到的卡外实体可以是主机也可以是卡片。
实施例1
参见图1-1,实施例1提供了一种卡片安全通讯的方法,具体包括:
步骤101:卡外实体生成第一随机数并保存;
本实施例中,卡外实体生成8字节的第一随机数,然后将其保存。例如,第一随机数为:1122334455667788;
步骤102:卡外实体向卡片发送包含第一随机数的内部初始化命令;
本实施例中,具体向卡片发送前两字节为8050、包含第一随机数的内部初始化命令。
例如,内部初始化命令为:
805000000811223344556677881C;
步骤103:卡片接收内部初始化命令并从中读取第一随机数;
步骤104:卡片生成第二随机数并保存;
本实施例中,卡片生成6字节的第二随机数,然后将其保存。
例如,第二随机数为:6361FEB56EB9;
步骤105:卡片生成第一会话密钥、第二会话密钥、第三会话密钥并保存,根据第一随机数、序列计数值、第二随机数生成第一数据块;
本实施例中,卡片用2字节序列计数值、三个卡外实体分别与卡片双方约定的3个2字节常量以及三个内置密钥分别生成三个会话密钥。其中,三个内置密钥分别为:16字节的第一密钥、16字节的第二密钥、16字节的第三密钥。
例如,序列计数值为:0001。
第一常量为::0182;
第二常量为:0101;
第三常量为:0181;
第一密钥为:404142434445464748494a4b4c4d4e4f;
第二密钥为:404142434445464748494a4b4c4d4e4f;
第三密钥为:404142434445464748494a4b4c4d4e4f;
具体操作为:卡片用2字节序列计数值、卡外实体与卡片双方约定的2字节的第一常量、12字节的‘00’生成第一派生数据,再用第一密钥对第一派生数据采用DES-CBC方式进行加密,也可以用第一密钥对第一派生数据采用其他方式进行加密,生成第一会话密钥。
例如,
第一派生数据为:01820001000000000000000000000000;
第一会话密钥为:25C9794A1205FF244F5FA0378D2F8D59;
卡片用2字节序列计数值、卡外实体与卡片双方约定的2字节的第二常量、12字节的‘00’生成第二派生数据,再用第二密钥对第二派生数据采用DES-CBC方式进行加密,也可以用第二密钥对第二派生数据采用其他方式进行加密,生成第二会话密钥;
例如,
第二派生数据为:01010001000000000000000000000000;
第二会话密钥为:9BED98891580C3B245FE9EC58BFA8D2A;
卡片用2字节序列计数值、卡外实体与卡片双方约定的2字节的第三常量、12字节的‘00’生成第三派生数据,再用第三密钥对第三派生数据采用DES-CBC方式进行加密,也可以用第三密钥对第三派生数据采用其他方式进行加密,生成第三会话密钥。
例如,
第三派生数据为:01810001000000000000000000000000;
第三会话密钥为:0E51FDF196141F227A57BD154012FD39;
本实施例中,第一数据块生成格式为:第一随机数+序列计数值+第二随机数。
例如,
第一数据块为:112233445566778800016361FEB56EB9;
步骤106:卡片用第一会话密钥和第一变量对第一数据块进行签名,得到第一签名结果;
本实施例中,用第一会话密钥和第一变量采用ALG_DES_MAC8_ISO9797_1_M2_ALG3方式对第一数据块进行签名,也可以采用DES或其他方式进行签名。具体签名运算过程如下:
步骤106-1:把第一数据块按8字节倍数为单位进行分块,本方案中以按8字节为单位进行分块为例,对于不足8字节的块,算法自动填充为8字节,共划分为Y块;
步骤106-2:判断循环计数器的计数值X是否等于块数Y;
是,执行步骤106-4;否,执行步骤106-3。
步骤106-3:用第一会话密钥的前8字节和第一变量对第X块命令数据进行加密,并用得到的8字节的加密结果替换原来的第一变量,X自加1,然后执行步骤106-2;
步骤106-4:用第一会话密钥和第一变量对第X块即最后一块命令数据进行加密,得到8字节的加密结果,将其保存为第一签名结果。
本实施例中,X初始值为1。第一变量初始值为8字节的‘00’。
例如,第一签名结果为:4E4F8430123F25C6;
步骤107:卡片向卡外实体发送包含第一签名结果、第二随机数、序列计数值的验证命令;
例如,验证命令为:
00003187F0E89F657D9BFF0200016361FEB56EB94E4F8430123F25C69000;
步骤108:卡外实体接收验证命令并从中读取第一签名结果、第二随机数、序列计数值;
步骤109:卡外实体生成第四会话密钥、第五会话密钥、第六会话密钥并保存,根据第一随机数、序列计数值、第二随机数生成第二数据块;
本实施例中,卡外实体用2字节序列计数值、三个卡外实体分别与卡片双方约定的3个2字节常量以及三个内置密钥生成三个会话密钥。其中,三个内置密钥分别为:16字节的第一密钥、16字节的第二密钥、16字节的第三密钥。
具体操作为:卡外实体用2字节序列计数值、卡外实体与卡片双方约定的2字节的第一常量、12字节的‘00’生成第四派生数据,再用第一密钥对第四派生数据采用DES-CBC方式进行加密,也可以用第一密钥对第四派生数据采用其他方式进行加密,生成第四会话密钥;
例如,第四派生数据为:01820001000000000000000000000000;第四会话密钥为:25C9794A1205FF244F5FA0378D2F8D59;
卡外实体用2字节序列计数值、卡外实体与卡片双方约定的2字节的第二常量、12字节的‘00’生成第五派生数据,再用第二密钥对第五派生数据采用DES-CBC方式进行加密,也可以用第二密钥对第二派生数据采用其他方式进行加密,生成第五会话密钥;
例如,第五派生数据为:01010001000000000000000000000000;第五会话密钥为:9BED98891580C3B245FE9EC58BFA8D2A;
卡外实体用2字节序列计数值、卡外实体与卡片双方约定的2字节的第三常量、12字节的‘00’生成第六派生数据,再用第三密钥对第六派生数据采用DES-CBC方式进行加密,也可以用第三密钥对第三派生数据采用其他方式进行加密,生成第六会话密钥。
例如,第六派生数据为:01810001000000000000000000000000;第六会话密钥为:0E51FDF196141F227A57BD154012FD39;
本实施例中,第二数据块生成格式为: 第一随机数+序列计数值+第二随机数。
例如,第二数据块为:
112233445566778800016361FEB56EB9;
步骤110:卡外实体用第四会话密钥和第二变量对第二数据块进行签名,得到第二签名结果;
本实施例中,用第四会话密钥和第二变量采用ALG_DES_MAC8_ISO9797_1_M2_ALG3方式对第二数据块进行签名,也可以采用DES或其他方式进行签名。具体签名运算过程如下:
步骤110-1:把第二数据块按8字节倍数为单位进行分块,本方案中以按8字节为单位进行分块为例,对于不足8字节的块,算法自动填充为8字节,共划分为Y’块;
步骤110-2:判断循环计数器的计数值X’是否等于块数Y’;
是,执行步骤110-4;否,执行步骤110-3。
步骤110-3:用第四会话密钥的前8字节和第二变量对第X’块命令数据进行加密,并把得到的8字节的加密结果替换原来的第二变量,X’自加1,然后执行步骤110-2;
步骤110-4:用第四会话密钥和第二变量对第X’块即最后一块命令数据进行加密,得到8字节的加密结果,将其保存为第二签名结果。
本实施例中,X’初始值为1。第二变量初始值为8字节的‘00’。
例如,第二签名结果为:4E4F8430123F25C6。
步骤111:卡外实体比较第一签名结果和第二签名结果;
相同,执行步骤113;不相同,执行步骤112。
步骤112:输出错误信息,然后返回步骤101;
步骤113:卡外实体根据第一随机数、序列计数值、第二随机数生成第三数据块,用第四会话密钥和第三变量对第三数据块进行签名,得到第三签名结果,并将其作为认证数据的一部分;
本实施例中,第三数据块生成格式为:序列计数值+第二随机数+第一随机数。
例如,第三数据块为:
00016361FEB56EB91122334455667788;
用第四会话密钥和第三变量采用
ALG_DES_MAC8_ISO9797_1_M2_ALG3方式对第三数据块进行签名,也可以采DES或其他方式进行签名。具体签名运算过程与步骤110相同。
例如,第三签名结果为:C1A2343B9685555D;
认证数据包含:数据头、安全级别、数据域长度值、数据域、可选的应答命令数据字段长度。其中,可选的应答命令数据字段长度可以存在也可以不存在,第三签名结果包含在数据域中。
步骤114:卡外实体修改认证数据的预设部分并保存当前安全级别;
本实施例中,具体为将认证数据的第一字节更改为‘84’、数据域长度值加8,并将认证数据的第三字节保存为当前安全级别。
例如,修改后的认证数据为:8482000010C1A2343B9685555D;保存的当前安全级别为0。
步骤115:卡外实体用第五会话密钥和卡外实体签名信息值对认证数据的指定部分进行签名,得到卡外实体签名;
本实施例中,卡外实体用第五会话密钥和卡外实体签名信息值对认证数据除可选的应答命令数据字段长度以外的其余部分进行签名。具体签名运算过程如下:
步骤115-1:把认证数据除可选的应答命令数据字段长度以外的其余部分按8字节倍数为单位进行分块,本方案中以8字节为例,对于不足8字节的块,算法自动填充为8字节,共划分为N块;
步骤115-2:判断循环计数器的计数值M是否等于块数N;
是,执行步骤115-4;否,执行步骤115-3。
步骤115-3:用第五会话密钥的前8字节和卡外实体签名信息值对第M块命令数据进行加密,并把得到的8字节的加密结果替换原来的卡外实体签名信息值,进行保存,M自加1,然后执行步骤115-2;
步骤115-4:用第五会话密钥和卡外实体签名信息值对第M块即最后一块命令数据进行加密,得到8字节的加密结果,将其保存为卡外实体签名。
本实施例中,M初始值为1。卡外实体签名信息值初始值为8字节的‘00’。
步骤116:卡外实体向卡片发送包含认证数据和卡外实体签名的外部认证命令;
例如,外部认证命令为:
8482000010C1A2343B9685555D98A85500B41F0811,其中,认证数据为:8482000010C1A2343B9685555D;卡外实体签名为:98A85500B41F0811;
步骤117:卡片接收外部认证命令并从中读取认证数据、卡外实体签名;
步骤118:卡片根据第一随机数、序列计数值、第二随机数生成第四数据块,用第一会话密钥和第四变量对第四数据块进行签名,得到第四签名结果;
本实施例中,第四数据块生成格式为:序列计数值+第二随机数+第一随机数。
例如,第四数据块为:
00016361FEB56EB91122334455667788;
用第一会话密钥和第四变量采用
ALG_DES_MAC8_ISO9797_1_M2_ALG3方式对第四数据块进行签名,也可以采用DES或其他方式进行签名。具体签名运算过程与步骤106相同。
例如,第四签名结果为:C1A2343B9685555D;
步骤119:卡片比较第三签名结果和第四签名结果;
相同,执行步骤121;不相同,执行步骤120。
步骤120:卡片向卡外实体发送错误信息,然后返回步骤112;
步骤121:卡片用第二会话密钥和第二卡片签名信息值对认证数据的指定部分进行签名,得到卡片签名;
本实施例中,具体的用第二会话密钥对认证数据除可选的应答命令数据字段长度以外的其余部分进行签名,得到卡片签名。
具体签名运算过程如下:
步骤121-1:把认证数据除可选的应答命令数据字段长度以外的其余部分按8字节倍数为单位进行分块,本方案中以8字节为例,对于不足8字节的块,算法自动填充为8字节,共划分为Q块;
步骤121-2:判断循环计数器的计数值P是否等于块数Q;
是,执行步骤121-4;否,执行步骤121-3。
步骤121-3:用第二会话密钥的前8字节和卡片签名信息值对第P块命令数据进行加密,并把得到的8字节的加密结果替换原来的卡片签名信息值,进行保存,P自加1,然后执行步骤121-2;
步骤121-4:用第二会话密钥和卡片签名信息值对第P块即最后一块命令数据进行加密,得到8字节的加密结果,将其保存为卡片签名。
本实施例中,P初始值为1。卡片签名信息值初始值为8字节的‘00’。
步骤122:卡片比较卡外实体签名和卡片签名;
相同,执行步骤123;不相同,返回步骤120。
步骤123:卡片修改认证数据的预设部分,将序列计数值加1,将卡片签名保存为卡片签名信息值,保存当前安全级别;
本实施例中,具体为将认证数据的第一字节更改为‘80’,数据域长度值减8,将认证数据的第三字节保存当前安全级别。本实施例中,当前安全级别为0。
步骤124:卡片向卡外实体发送认证成功响应;
然后参见图1-2,继续执行步骤125。
步骤125:卡外实体接收认证成功响应,将卡外实体签名保存为卡外实体签名信息值;
步骤126:,卡外实体读取当前安全级别;
本实施例中,当前安全级别为0时,执行步骤127;
当前安全级别为1时,执行步骤129;
当前安全级别为3时,执行步骤135。
步骤127:卡外实体向卡片发送第一通讯命令;
具体为,卡外实体将通讯命令作为第一通讯命令发送给卡片。
步骤128:卡片接收到第一通讯命令,然后执行步骤153;
本实施例中,卡片接收第一通讯命令并将其转发给卡内应用
步骤129:卡外实体修改通讯命令的预设部分,用第五会话密钥和卡外实体签名信息值对通讯命令的指定部分签名,用得到的卡外实体签名替换原来的卡外实体签名信息值进行保存;
本实施例中,具体为将通讯命令的第一字节更改为‘84’,数据域长度值加8。用第五会话密钥和卡外实体签名信息值对通讯命令的可选的应答命令数据字段长度以外的其余部分签名,具体签名运算过程如下:
步骤129-1:把通讯命令除可选的应答命令数据字段长度以外的其余部分按8字节倍数为单位进行分块,本方案中以8字节为例,对于不足8字节的块,算法自动填充为8字节,共划分为n块;
步骤129-2:判断循环计数器的计数值m是否等于块数n;
是,执行步骤129-4;否,执行步骤129-3。
步骤129-3:用第五会话密钥的前8字节和卡外实体签名信息值对第m块命令数据进行加密,并把得到的加密结果替换原来的卡外实体签名信息值,进行保存,m自加1,然后执行步骤129-2;
步骤129-4:用第五会话密钥和卡外实体签名信息值对第m块即最后一块命令数据进行加密,得到8字节的加密结果,将其保存为卡外实体签名。
本实施例中,计数值m初始值为1。
步骤130:卡外实体向卡片发送包含通讯命令和卡外实体签名的第二通讯命令;
步骤131:卡片接收第二通讯命令并从中读取通讯命令、卡外实体签名;
步骤132:卡片用第二会话密钥和卡片签名信息值对通讯命令的指定部分签名,得到卡片签名;
本实施例中,用第二会话密钥和卡片签名信息值对通讯命令的可选的应答命令数据字段长度以外的其余部分签名,
具体签名运算过程如下:
步骤132-1:把认证数据除可选的应答命令数据字段长度以外的其余部分按8字节倍数为单位进行分块,本方案中以8字节为例,对于不足8字节的块,算法自动填充为8字节,共划分为q块;
步骤132-2:判断循环计数器的计数值p是否等于块数q;
是,执行步骤132-4;否,执行步骤132-3。
步骤132-3:用第二会话密钥的前8字节和卡片签名信息值对第p块命令数据进行加密,并把得到的加密结果替换原来的卡片签名信息值,进行保存,p自加1,然后执行步骤132-2;
步骤132-4:用第二会话密钥和卡片签名信息值对第p块即最后一块命令数据进行加密,得到8字节的加密结果,将其保存为卡片签名。
本实施例中,计数值p初始值为1。
步骤133:卡片比较卡外实体签名和卡片签名;
相同,执行步骤134;不相同,执行步骤154。
步骤134:卡片将卡片签名替换原来的卡片签名信息值进行保存,修改通讯命令的预设部分,然后执行步骤153;
本实施例中,将通讯命令的第一字节更改为‘80’,数据域长度值减8。
步骤135:卡外实体判断通讯命令的敏感数据是否需要加密;
是,执行步骤136;否,执行步骤145。
步骤136:卡外实体用第六会话密钥对通讯命令的敏感数据加密;
本实施例中,用第六会话密钥采用DES_CBC方式对通讯命令的敏感数据加密,也可以用第六会话密钥采用其他方式对通讯命令的敏感数据加密。在加密之前要将敏感数据的长度填充成8字节数据长度的倍数,具体填充方式由卡外实体和卡片双方约定,具体操作此处不再赘述。
步骤137:卡外实体修改通讯命令的预设部分,用第五会话密钥和卡外实体签名信息值对通讯命令的指定部分签名,用得到的卡外实体签名替换原来的卡外实体签名信息值进行保存;
本实施例中,具体为将通讯命令的第一字节更改为‘84’,数据域长度值加8。用第五会话密钥和卡外实体签名信息值对通讯命令的可选的应答命令数据字段长度以外的其余部分签名,具体签名运算过程与步骤129相同。
步骤138:卡外实体填充通讯命令,修改通讯命令的固定部分,用第四会话密钥对通讯命令的数据域进行加密,用得到的加密结果替换加密前的部分;
本实施例中,通讯命令的固定部分为数据域长度值,通讯命令的数据域包括通讯命令的数据域长度值。具体操作如下:
A:判断通讯命令的数据域的长度值是否为8字节的倍数;
是,执行B;否,执行C。
B:填充的数据长度为0,然后执行D;
C:按指定方式填充数据域,使其长度为8字节数据长度的倍数;
D:通讯命令的数据域长度值加填充的数据长度的结果作为新的数据域长度值;
E:用第四会话密钥对通讯命令的数据域进行加密;
本实施例中,用第四会话密钥对通讯命令的数据域采用DES-CBC方式加密,也可以采用3DES-CBC或其他方式加密。
步骤139:卡外实体向卡片发送包含通讯命令和卡外实体签名的第三通讯命令;
步骤140:卡片接收第三通讯命令并从中读取通讯命令、卡外实体签名;
步骤141:卡片用第一会话密钥对通讯命令的数据域进行解密,用得到的解密结果替换解密前的部分,修改通讯命令的固定部分;
本实施例中,用第一会话密钥对通讯命令的数据域采用DES-CBC方式解密,通讯命令的数据域长度值减填充的数据长度的结果,作为新的数据域长度值。
步骤142:卡片用第二会话密钥和卡片签名信息值对通讯命令的指定部分签名,得到卡片签名;
本实施例中,用第二会话密钥和卡片签名信息值对通讯命令的可选的应答命令数据字段长度以外的其余部分签名,具体签名运算过程与步骤132相同。
步骤143:卡片比较卡外实体签名和卡片签名;
相同,执行步骤144;不相同,执行步骤154。
步骤144:卡片用卡片签名替换原来的卡片签名信息值进行保存,修改通讯命令的预设部分,用第三会话密钥对通讯命令的密文部分进行解密,用解密后的结果替换解密前的部分,然后执行步骤153;
本实施例中,修改通讯命令的预设部分为,将通讯命令的第一字节更改为‘80’,数据域长度值减8。所述第三会话密钥采用DES_CBC方式对所述通讯命令的密文部分解密获取敏感数据。
步骤145:卡外实体修改通讯命令的预设部分,用第五会话密钥和卡外实体签名信息值对通讯命令的指定部分签名,得到的卡外实体签名替换原来的卡外实体签名信息值进行保存;
本实施例中,具体操作与步骤129相同。
步骤146:卡外实体填充通讯命令,修改通讯命令的固定部分,用第四会话密钥对通讯命令的数据域进行加密,得到的加密结果替换加密前的部分;
本实施例中,通讯命令的固定部分为数据域长度值,通讯命令的数据域包括通讯命令的数据域长度值。具体操作与步骤138相同。
步骤147:卡外实体向卡片发送包含通讯命令和卡外实体签名的第四通讯命令;
步骤148:卡片接收第四通讯命令并从中读取通讯命令、卡外实体签名;
步骤149:卡片用第一会话密钥对通讯命令的数据域进行解密,用得到的解密结果替换解密前的部分,修改通讯命令的固定部分;
本实施例中,具体操作与步骤141相同。
步骤150:卡片用第二会话密钥和卡片签名信息值对通讯命令的指定部分签名,得到卡片签名;
本实施例中,用第二会话密钥和卡片签名信息值对通讯命令的可选的应答命令数据字段长度以外的其余部分签名,具体签名运算过程与步骤132相同。
步骤151:卡片比较卡外实体签名和卡片签名;
相同,执行步骤152;不相同,执行步骤154。
步骤152:卡片用卡片签名替换原来的卡片签名信息值进行保存,修改通讯命令的预设部分;
本实施例中,修改通讯命令的预设部分为:将通讯命令的第一字节更改为‘80’,数据域长度值减8。
步骤153:卡片向卡外实体发送通讯成功响应,然后执行步骤155;
步骤154:卡片向卡外实体发送通讯失败响应,然后返回步骤101。
步骤155:卡外实体判断是否完成通讯;
是,结束。否,返回步骤126。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (17)

1.一种卡片安全通讯的方法,其特征在于,包括:
步骤S1:卡片生成第一数据块并对其签名,得到第一签名结果,向卡外实体发送验证命令;
步骤S2:所述卡外实体接收所述验证命令并从中获取所述第一签名结果,所述卡外实体生成第二数据块并对其签名,得到第二签名结果,比较所述第一签名结果和所述第二签名结果;相同,执行步骤S3;不相同,返回步骤S1;
步骤S3:所述卡外实体生成第三数据块并对其签名,将得到第三签名结果作为认证数据的一部分,保存当前安全级别,对认证数据签名得到卡外实体签名,向所述卡片发送外部认证命令;
步骤S4:所述卡片接收所述外部认证命令并从中获取所述认证数据和所述卡外实体签名,再从所述认证数据中获取第三签名结果,所述卡片生成第四数据块并对其签名,得到第四签名结果,比较所述第三签名结果和所述第四签名结果;不相同,返回步骤S1;相同,执行步骤S5;
步骤S5:所述卡片对获取的所述认证数据签名,得到卡片签名,比较所述卡外实体签名和所述卡片签名;不相同,返回步骤S1;相同,执行步骤S6;
步骤S6:所述卡片保存当前安全级别,向所述卡外实体发送认证成功响应;
步骤S7:所述卡外实体读取当前安全级别后执行相应安全级别的操作,向所述卡片发送相应安全级别的通讯命令;
步骤S8:所述卡片根据接收到的所述通讯命令进行相应操作,然后向所述卡外实体发送通讯成功响应;
步骤S9:所述卡外实体接收到所述通讯成功响应后判断是否继续通讯,是则返回步骤S7;否则结束;
步骤S1之前还包括:
所述卡外实体生成第一随机数并保存;
所述卡外实体向所述卡片发送包含所述第一随机数的内部初始化命令;
所述卡片接收所述内部初始化命令并从中读取第一随机数;
所述卡片生成第二随机数并保存;
所述卡片生成第一会话密钥、第二会话密钥、第三会话密钥并保存;
所述卡外实体生成的第一随机数为8字节,所述卡片生成的第二随机数为6字节;
所述卡片生成第一会话密钥,具体包括:所述卡片用序列计数值、第一常量、第一固定数据生成第一派生数据,再用内置的第一密钥对所述第一派生数据采用第一预设方式进行加密,生成第一会话密钥;
所述卡片生成第二会话密钥,具体包括:所述卡片用所述序列计数值、第二常量、所述第一固定数据生成第二派生数据,再用内置的第二密钥对所述第二派生数据采用所述第一预设方式进行加密,生成第二会话密钥;
所述卡片生成第三会话密钥,具体包括:所述卡片用所述序列计数值、第三常量、所述第一固定数据生成第三派生数据,再用内置的第三密钥对所述第三派生数据采用所述第一预设方式进行加密,生成第三会话密钥;
所述步骤S1具体为:所述卡片将所述第一随机数、序列计数值和所述第二随机数顺序拼接得到所述第一数据块;用所述第一会话密钥和第一变量对所述第一数据块进行签名,得到第一签名结果,向卡外实体发送包含所述第一签名结果、所述第二随机数和所述序列计数值的验证命令;
步骤S1与S2之间还包括:
所述卡外实体从所述验证命令中获取第二随机数和序列计数值;
所述卡外实体生成第四会话密钥,具体包括:所述卡外实体用所述序列计数值、第一常量、第一固定数据生成第四派生数据,再用内置的第一密钥对所述第四派生数据采用第一预设方式进行加密,生成第四会话密钥;
所述卡外实体生成第五会话密钥,具体包括:所述卡外实体用所述序列计数值、第二常量、第一固定数据生成第五派生数据,再用内置的第二密钥对所述第五派生数据采用第一预设方式进行加密,生成第五会话密钥;
所述卡外实体生成第六会话密钥,具体包括:所述卡外实体用序列计数值、第三常量、第一固定数据生成第六派生数据,再用内置的第三密钥对所述第六派生数据采用第一预设方式进行加密,生成第六会话密钥;
步骤S2所述卡外实体生成第二数据块并对其签名,得到第二签名结果具体为:所述卡外实体将所述第一随机数、所述序列计数值和所述第二随机数顺序拼接得到所述第二数据块;用所述第四会话密钥和第二变量对所述第二数据块进行签名,得到第二签名结果;
步骤S3所述卡外实体生成第三数据块并对其签名,具体包括:所述卡外实体按照序列计数值、第二随机数、第一随机数的顺序拼接生成第三数据块,并用所述第四会话密钥和第三变量对所述第三数据块签名,得到第三签名结果;
所述卡片生成第四数据块并对其签名,具体包括:所述卡片按照序列计数值、第二随机数、第一随机数的顺序拼接生成第四数据块,并用所述第一会话密钥和第四变量对所述第四数据块签名,得到第四签名结果。
2.如权利要求1所述的一种卡片安全通讯的方法,其特征在于,所述签名采用的签名方式,具体包括:
步骤A:对待签名的数据块按预设字节数为单位进行分块,对于不足预设字节数的块,自动填充为预设字节数;
步骤B:判断循环计数器的计数值是否等于分块数;
是,执行步骤D;否,执行步骤C;
步骤C:用会话密钥的指定字节和变量对等于当前计数值的分块的命令数据,采用第二预设方式进行加密,并用得到的加密结果替换所述变量,当前计数值自加1,然后执行步骤B;
步骤D:用会话密钥和变量对最后一块命令数据,采用第二预设方式进行加密,并将得到的加密结果保存为签名结果。
3.如权利要求1所述的一种卡片安全通讯的方法,其特征在于,
步骤S3中所述卡外实体保存当前安全级别之前还包括:所述卡外实体修改所述认证数据的预设部分;步骤S6中所述卡片保存当前安全级别之前还包括:所述卡片修改认证数据的预设部分,将所述序列计数值加1,将所述卡片签名保存为所述卡片签名信息值;
所述卡外实体、卡片保存当前安全级别,具体包括:将认证数据的第三字节保存为当前安全级别。
4.如权利要求3所述的一种卡片安全通讯的方法,其特征在于,
所述卡外实体修改所述认证数据的预设部分,具体包括:将所述认证数据的第一字节更改为第一固定值、数据域长度值加8;
所述卡片修改所述认证数据的预设部分,具体包括:将所述认证数据的第一字节更改为第二固定值,数据域长度值减8。
5.如权利要求1所述的一种卡片安全通讯的方法,其特征在于,
所述卡外实体对认证数据签名,具体包括:所述卡外实体用第五会话密钥和卡外实体签名信息值对所述认证数据的指定部分进行签名,得到卡外实体签名;
所述卡片对认证数据签名,具体包括:所述卡片用第二会话密钥和卡片签名信息值对所述认证数据的指定部分进行签名,得到卡片签名。
6.如权利要求5所述的一种卡片安全通讯的方法,其特征在于,
所述认证数据的指定部分,具体包括:所述认证数据除可选的应答命令数据字段长度以外的其余部分;
所述卡外实体对认证数据的指定部分进行签名,具体包括:
步骤A:把认证数据除可选的应答命令数据字段长度以外的其余部分按8字节为单位进行分块,对于不足8字节的块,自动填充为8字节,共划分为N块;
步骤B:判断循环计数器的计数值M是否等于块数N;
是,执行步骤D;否,执行步骤C;
步骤C:用第五会话密钥的前8字节和卡外实体签名信息值对第M块命令数据进行加密,并用得到的加密结果替换原来的卡外实体签名信息值,进行保存,计数值M自加1,然后执行步骤B;
步骤D:用第五会话密钥和卡外实体签名信息值对最后一块命令数据进行加密,得到8字节的加密结果,将其保存为卡外实体签名;
所述卡片对认证数据的指定部分进行签名,具体包括:
步骤a:把认证数据除可选的应答命令数据字段长度以外的其余部分按8字节为单位进行分块,对于不足8字节的块,自动填充为8字节,共划分为Q块;
步骤b:判断循环计数器的计数值P是否等于块数Q;
是,执行步骤d;否,执行步骤c;
步骤c:用第二会话密钥的前8字节和卡片签名信息值对第P块命令数据进行加密,并用得到的加密结果替换原来的卡片签名信息值,进行保存,计数值P自加1,然后执行步骤b;
步骤d:用第二会话密钥和卡片签名信息值对最后一块命令数据进行加密,得到8字节的加密结果,将其保存为卡片签名。
7.如权利要求6所述的一种卡片安全通讯的方法,其特征在于,
在步骤C之前还包括确定卡外实体签名信息值:
第一次计算卡外实体签名时,所述卡外实体签名信息值初始值为8字节的第二固定数据;非第一次计算卡外实体签名时,所述卡外实体签名信息值是用所述第五会话密钥的前8字节对上一次经过验证正确的所述卡外实体签名进行第三预设方式计算后得到的;
在步骤c之前还包括确定卡片签名信息值:
第一次计算卡片签名时,所述卡片签名信息值初始值为8字节的第二固定数据;非第一次计算卡片签名时,所述卡片签名信息值是用所述第二会话密钥的前8字节对上一次经过验证正确的所述卡片签名进行第三预设方式计算后得到的。
8.如权利要求1所述的一种卡片安全通讯的方法,其特征在于,所述步骤S7具体为:
所述卡外实体读取所述当前安全级别,当所述当前安全级别为0时,所述卡外实体向所述卡片发送第一通讯命令。
9.如权利要求1所述的一种卡片安全通讯的方法,其特征在于,所述步骤S7具体为:
所述卡外实体读取所述当前安全级别,当所述当前安全级别为1时,所述卡外实体修改通讯命令的预设部分,用所述第五会话密钥和所述卡外实体签名信息值对通讯命令的指定部分签名,用得到的卡外实体签名替换原来的所述卡外实体签名信息值进行保存,向所述卡片发送包含所述通讯命令和所述卡外实体签名的第二通讯命令。
10.如权利要求1所述的一种卡片安全通讯的方法,其特征在于,所述步骤S7具体为:
所述卡外实体读取所述当前安全级别,当所述当前安全级别为3时,所述卡外实体判断通讯命令的敏感数据是否需要加密;
是则,所述卡外实体用所述第六会话密钥对通讯命令的敏感数据加密;所述卡外实体修改所述通讯命令的预设部分,用所述第五会话密钥和所述卡外实体签名信息值对所述通讯命令的指定部分签名,得到的卡外实体签名替换原来的所述卡外实体签名信息值进行保存;所述卡外实体填充所述通讯命令,修改所述通讯命令的固定部分,用所述第四会话密钥对所述通讯命令的数据域进行加密,用得到的加密结果替换加密前的部分;所述卡外实体向所述卡片发送包含所述通讯命令和所述卡外实体签名的第三通讯命令;
否则,所述卡外实体修改通讯命令的预设部分,用所述第五会话密钥和所述卡外实体签名信息值对所述通讯命令的指定部分签名,用得到的卡外实体签名替换原来的所述卡外实体签名信息值进行保存;所述卡外实体填充所述通讯命令,修改所述通讯命令的固定部分,用所述第四会话密钥对所述通讯命令的数据域进行加密,用得到的加密结果替换加密前的部分;所述卡外实体向所述卡片发送包含所述通讯命令和所述卡外实体签名的第四通讯命令。
11.如权利要求10所述的一种卡片安全通讯的方法,其特征在于,
所述卡外实体用所述第六会话密钥对通讯命令的敏感数据加密,具体包括:所述第六会话密钥采用第一预设方式对所述通讯命令的敏感数据加密;在加密之前还包括将敏感数据的长度填充成8字节数据长度的倍数,具体填充方式由所述卡外实体和所述卡片双方约定;
所述卡外实体填充所述通讯命令,修改所述通讯命令的固定部分,具体包括:
步骤E:判断所述通讯命令的数据域的长度值是否为8字节的倍数;
是则执行步骤F;否则执行步骤G;
步骤F:填充的数据长度为0,然后执行H;
步骤G:按指定方式填充数据域,使其长度为8字节数据长度的倍数;
步骤H:将所述通讯命令的数据域长度值加所述填充的数据长度的结果作为新的所述数据域长度值;
用所述第四会话密钥对所述通讯命令的数据域进行加密,具体包括:用所述第四会话密钥对所述通讯命令的数据域采用第一预设方式加密。
12.如权利要求9或10所述的一种卡片安全通讯的方法,其特征在于,
所述卡外实体修改通讯命令的预设部分,具体包括:将通讯命令的第一字节更改为第一固定值,数据域长度值加8;
用所述第五会话密钥和所述卡外实体签名信息值对通讯命令的指定部分签名,具体包括:
步骤A’:把通讯命令除可选的应答命令数据字段长度以外的其余部分按8字节为单位进行分块,对于不足8字节的块,自动填充为8字节,共划分为N’块;
步骤B’:判断循环计数器的计数值M’是否等于块数N’;
是,执行步骤D’;否,执行步骤C’;
步骤C’:用第五会话密钥的前8字节和卡外实体签名信息值对第M’块命令数据进行加密,并用得到的加密结果替换原来的卡外实体签名信息值,进行保存,计数值M’自加1,然后执行步骤B’;
步骤D’:用第五会话密钥和卡外实体签名信息值对最后一块命令数据进行加密,将得到的加密结果保存为卡外实体签名。
13.如权利要求1所述的一种卡片安全通讯的方法,其特征在于,所述步骤S8具体包括:
所述当前安全级别为0时,所述卡片接收第一通讯命令,并将其转发给卡内应用,然后向所述卡外实体发送通讯成功响应。
14.如权利要求1所述的一种卡片安全通讯的方法,其特征在于,所述步骤S8具体包括:
所述当前安全级别为1时,所述卡片接收第二通讯命令并从中读取所述通讯命令、所述卡外实体签名;
所述卡片用所述第二会话密钥和所述卡片签名信息值对所述通讯命令的指定部分签名,得到所述卡片签名;
所述卡片比较所述卡外实体签名和所述卡片签名;
若相同,则所述卡片用所述卡片签名替换原来的所述卡片签名信息值进行保存,修改所述通讯命令的预设部分;向所述卡外实体发送通讯成功响应;
若不相同,则所述卡片向所述卡外实体发送通讯失败响应。
15.如权利要求1所述的一种卡片安全通讯的方法,其特征在于,所述步骤S8具体包括:
所述当前安全级别为3时,所述卡片接收第三通讯命令并从中读取所述通讯命令、所述卡外实体签名;
所述卡片用所述第一会话密钥对所述通讯命令的数据域进行解密,用得到的解密结果替换解密前的部分,修改所述通讯命令的固定部分;
所述卡片用所述第二会话密钥和所述卡片签名信息值对所述通讯命令的指定部分签名,得到所述卡片签名;
所述卡片比较所述卡外实体签名和所述卡片签名;
若相同,则所述卡片用所述卡片签名替换原来的所述卡片签名信息值进行保存,修改所述通讯命令的预设部分;如果所述通讯命令中有密文,则用所述第三会话密钥对所述通讯命令的密文部分进行解密,用解密后的结果替换解密前的部分,向所述卡外实体发送通讯成功响应;如果所述通讯命令中没有密文,则向所述卡外实体发送通讯成功响应;
若不相同,则所述卡片向所述卡外实体发送通讯失败响应。
16.如权利要求15所述的一种卡片安全通讯的方法,其特征在于,
所述卡片用所述第一会话密钥对所述通讯命令的数据域进行解密,具体包括:用所述第一会话密钥对通讯命令的数据域采用第一预设方式解密;
所述修改所述通讯命令的固定部分,具体包括:将通讯命令的数据域长度值减填充的数据长度的结果作为新的数据域长度值;
所述第三会话密钥对所述通讯命令的密文部分进行解密,具体包括:用所述第三会话密钥对所述通讯命令的密文部分采用第一预设方式进行解密。
17.如权利要求14或15所述的一种卡片安全通讯的方法,其特征在于,
所述卡片用所述第二会话密钥和所述卡片签名信息值对所述通讯命令的指定部分签名,具体包括:
步骤a’:把认证数据除可选的应答命令数据字段长度以外的其余部分按8字节为单位进行分块,对于不足8字节的块,自动填充为8字节,共划分为q’块;
步骤b’:判断循环计数器的计数值p’是否等于块数q’;
是,执行步骤d’;否,执行步骤c’;
步骤c’:用第二会话密钥的前8字节和卡片签名信息值对第p’块命令数据进行加密,并用得到的加密结果替换原来的卡片签名信息值,进行保存,计数值p’自加1,然后执行步骤b’;
步骤d’:用第二会话密钥和卡片签名信息值对最后一块命令数据进行加密,将得到的加密结果保存为卡片签名;
所述修改所述通讯命令的预设部分,具体包括:将所述通讯命令的第一字节更改为第二固定值,数据域长度值减8。
CN201210309493.8A 2012-08-27 2012-08-27 一种卡片安全通讯的方法 Active CN102801529B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210309493.8A CN102801529B (zh) 2012-08-27 2012-08-27 一种卡片安全通讯的方法
US14/380,980 US9288061B2 (en) 2012-08-27 2013-07-30 Safe communication method with card
PCT/CN2013/080402 WO2014032493A1 (zh) 2012-08-27 2013-07-30 一种卡片安全通讯的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210309493.8A CN102801529B (zh) 2012-08-27 2012-08-27 一种卡片安全通讯的方法

Publications (2)

Publication Number Publication Date
CN102801529A CN102801529A (zh) 2012-11-28
CN102801529B true CN102801529B (zh) 2015-11-04

Family

ID=47200503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210309493.8A Active CN102801529B (zh) 2012-08-27 2012-08-27 一种卡片安全通讯的方法

Country Status (3)

Country Link
US (1) US9288061B2 (zh)
CN (1) CN102801529B (zh)
WO (1) WO2014032493A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801529B (zh) * 2012-08-27 2015-11-04 飞天诚信科技股份有限公司 一种卡片安全通讯的方法
JP6229741B2 (ja) 2015-09-29 2017-11-15 ダイキン工業株式会社 空気調和装置の室内ユニット
JP6721435B2 (ja) * 2016-07-04 2020-07-15 株式会社東芝 Icカード、携帯可能電子装置及び情報処理方法
CN109756458B (zh) * 2017-11-06 2021-02-26 北京京东尚科信息技术有限公司 身份认证方法和***
CN108923934B (zh) * 2018-08-01 2021-04-06 飞天诚信科技股份有限公司 一种管理卡片生命周期的实现方法及装置
US10581611B1 (en) * 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CN109922047B (zh) * 2019-01-31 2021-11-19 武汉天喻聚联网络有限公司 一种图像传输***及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1571407A (zh) * 2003-07-14 2005-01-26 华为技术有限公司 一种基于媒体网关控制协议的安全认证方法
JP2007020066A (ja) * 2005-07-11 2007-01-25 Sony Corp 情報処理装置および方法、プログラム、並びに認証システム
CN101409619A (zh) * 2008-11-25 2009-04-15 普天信息技术研究院有限公司 闪存卡及虚拟专用网密钥交换的实现方法
CN101517598A (zh) * 2006-09-20 2009-08-26 日本电气株式会社 有效性检查***、有效性检查方法、信息处理卡、检查设备以及认证装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3112076B2 (ja) * 1998-05-21 2000-11-27 豊 保倉 ユーザ認証システム
CN100498690C (zh) * 2004-01-28 2009-06-10 松下电器产业株式会社 安全装置、终端装置、门设备、***和方法
EP1783623A1 (en) * 2004-07-22 2007-05-09 Matsushita Electric Industrial Co., Ltd. Electronic value, electronic purse device, and system for using the same
WO2007020782A1 (ja) * 2005-08-12 2007-02-22 Matsushita Electric Industrial Co., Ltd. 認証システム
JP4702628B2 (ja) * 2006-07-27 2011-06-15 ソニー株式会社 電子機器、情報処理方法、およびプログラム
KR101111381B1 (ko) * 2009-11-17 2012-02-24 최운호 유비쿼터스 인증 관리를 위한 사용자 인증 시스템, 사용자 인증장치, 스마트 카드 및 사용자 인증방법
CN102801529B (zh) * 2012-08-27 2015-11-04 飞天诚信科技股份有限公司 一种卡片安全通讯的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1571407A (zh) * 2003-07-14 2005-01-26 华为技术有限公司 一种基于媒体网关控制协议的安全认证方法
JP2007020066A (ja) * 2005-07-11 2007-01-25 Sony Corp 情報処理装置および方法、プログラム、並びに認証システム
CN101517598A (zh) * 2006-09-20 2009-08-26 日本电气株式会社 有效性检查***、有效性检查方法、信息处理卡、检查设备以及认证装置
CN101409619A (zh) * 2008-11-25 2009-04-15 普天信息技术研究院有限公司 闪存卡及虚拟专用网密钥交换的实现方法

Also Published As

Publication number Publication date
WO2014032493A1 (zh) 2014-03-06
US9288061B2 (en) 2016-03-15
CN102801529A (zh) 2012-11-28
US20150163063A1 (en) 2015-06-11

Similar Documents

Publication Publication Date Title
CN102801529B (zh) 一种卡片安全通讯的方法
CN103095460B (zh) 一种智能卡安全通讯的方法
CN103138938B (zh) 基于csp的sm2证书申请及应用方法
CN102377566B (zh) 一种电表数据的安全处理装置及***
CN101409619B (zh) 闪存卡及虚拟专用网密钥交换的实现方法
CN101600204B (zh) 一种文件传输方法及***
CN103684794A (zh) 一种基于des、rsa、sha-1加密算法的通信数据加解密方法
CN102387152A (zh) 一种基于预设密钥的对称加密通信方法
CN109150526A (zh) 密钥协商方法、设备、终端、存储介质以及***
CN103036681B (zh) 一种密码安全键盘装置及***
CN105281910A (zh) 带ca数字证书作为入网身份识别的物联网锁及其入网身份识别方法
CN114826656A (zh) 一种数据链路可信传输方法和***
CN105763333A (zh) 一种非对称密钥的协商方法及***
CN109873699A (zh) 一种可撤销的身份公钥加密方法
CN103179514A (zh) 一种敏感信息的手机安全群分发方法和装置
CN106878322A (zh) 一种基于属性的定长密文与密钥的加密、解密方法
CN102903226B (zh) 智能电表通信的数据传输方法
CN102916810A (zh) 传感器认证方法、***和装置
CN111031535A (zh) 一种用于智能卡***的安全通信方法及***
CN102624892B (zh) 一种防止外挂客户端模拟http请求的方法
CN103313244A (zh) 一种基于gba的认证方法及装置
CN110149205B (zh) 一种利于区块链保护物联网终端的方法
CN105227312A (zh) 智能密码钥匙密码验证提取方法
CN101877849A (zh) 无线模块与外部设备之间通讯的方法
CN105915531B (zh) 一种屏幕解锁方法及终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant