CN107302437A - 一种脱机认证数据的个人化方法及个人化设备 - Google Patents
一种脱机认证数据的个人化方法及个人化设备 Download PDFInfo
- Publication number
- CN107302437A CN107302437A CN201710637779.1A CN201710637779A CN107302437A CN 107302437 A CN107302437 A CN 107302437A CN 201710637779 A CN201710637779 A CN 201710637779A CN 107302437 A CN107302437 A CN 107302437A
- Authority
- CN
- China
- Prior art keywords
- data
- signed
- module
- static
- personalization device
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
- H04L9/3249—Cryptographic 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 using RSA or related signature schemes, e.g. Rabin scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及智能卡领域,提供了一种脱机认证数据的个人化方法及个人化设备,包括:个人化设备获取静态数据,根据预设格式组织包含静态数据的待签名数据;个人化设备生成随机数,使用发卡行私钥对随机数和待签名数据进行签名得到数字签名;根据数字签名以及待签名数据中除去静态数据的其余数据生成签名数据;个人化设备根据预设数据分组标识符和签名数据组合为数据分组;根据数据分组创建个人化指令,并将个人化指令写入个人化文件;当个人化文件完成时,个人化设备选择卡片的主安全域,打开安全通道,并将个人化文件中的个人化指令发送给卡片。通过本方法可以自动将生成的签名数据转换为个人化指令,使得个人化过程效率提高且更加准确。
Description
技术领域
本发明涉及智能卡领域,尤其涉及一种脱机认证数据的个人化方法及个人化设备。
背景技术
随着电子技术的发展,智能卡凭借其存储信息量大和安全性高的优势,广泛应用于金融、交通、通讯、商业、教育、医疗、社保和旅游娱乐等多个行业领域。
目前,智能卡中静态数据被恶意篡改,信息被盗取,卡片被复制的事情时有发生,人们使用是智能卡的安全问题得不到保障,严重影响了智能卡用户的财产安全,为解决以上问题需进行静态数据认证或者动态数据认证,但是现有技术中静态数据认证或者动态数据认证过程中需要的脱机认证数据的个人化过程比较繁琐,且个人化过程中需要人为参与,容易出现人为错误,造成个人化数据不准确,并且个人化过程效率低下。
发明内容
本发明的目的是为了解决现有技术中存在的不足,提供了一种脱机认证数据的个人化方法及个人化设备。
本发明提供一种脱机认证数据的个人化方法,包括:
步骤S1、个人化设备确定当前操作的卡片,并获取所述当前操作的卡片的静态数据,根据预设格式组织包含静态数据的待签名数据;
步骤S2、个人化设备生成随机数,使用发卡行私钥对随机数和待签名数据进行签名得到数字签名;根据数字签名以及待签名数据中除去静态数据的其余数据生成签名数据;
步骤S3、个人化设备根据预设数据分组标识符和签名数据组合为数据分组;根据数据分组创建个人化指令,并将个人化指令写入个人化文件;
当个人化文件完成时,个人化方法还包括:个人化设备选择卡片的主安全域,打开安全通道,并将个人化文件中的个人化指令发送给所述当前操作的卡片。
本发明提供一种脱机认证数据的的个人化设备,包括:
获取模块,用于确定当前操作的卡片,并获取所述当前操作的卡片的静态数据;
待签名数据组织模块,用于根据预设格式组织包含获取模块获取到的静态数据的待签名数据;
随机数生成模块,用于生成随机数;
签名模块,用于使用发卡行私钥对待签名数据组织模块组织的待签名数据和随机数生成模块生成的随机数进行签名得到数字签名;
签名数据生成模块,用于根据签名模块生成的数字签名以及待签名数据中除去静态数据的其余数据生成签名数据;
数据分组组合模块,用于根据预设数据分组标识符和签名数据生成模块生成的签名数据组合为数据分组;
创建个人化指令模块,用于根据数据分组组合模块组合的数据分组创建个人化指令;
写入模块,用于将创建个人化指令模块创建的个人化指令写入个人化文件;
发送模块,用于当个人化文件完成时选择卡片的主安全域,打开安全通道,并将个人化文件中的个人化指令发送给当前操作的卡片。
本发明取得的有益效果是:采用本发明的技术方法,获取与卡片一一对应的静态数据,并自动根据静态数据进行签名,并根据签名结果自动生成个人化指令,并将个人化指令写入个人化文件,使得智能卡个人化过程效率提高且更加准确。
附图说明
图1为本发明实施例2提供的一种脱机认证数据的个人化方法的流程图;
图2为本发明实施例3提供的一种脱机认证数据的个人化方法的流程图;
图3为本发明实施例4提供的一种脱机认证数据的个人化设备的模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例提供了一种脱机认证数据的个人化方法,包括:
步骤S1、个人化设备确定当前操作的卡片,并获取当前操作的卡片的静态数据,根据预设格式组织包含静态数据的待签名数据;
静态数据具体包括:应用主账户、应用生效日期、应用失效日期和应用版本号。
步骤S2、个人化设备生成随机数,使用发卡行私钥对随机数和待签名数据进行签名得到数字签名;根据数字签名以及待签名数据中除去静态数据的其余数据生成签名数据;
步骤S1具体为:个人化设备确定当前操作的卡片,并获取当前操作的卡片的静态数据,将签名数据格式、数据验证代码和静态数据顺序拼接生成待签名数据;
相应的,根据数字签名以及待签名数据除去静态数据的其余数据生成签名数据具体为:将签名数据格式、数据验证代码和数字签名顺序拼接生成签名数据,签名数据即为静态签名数据。
或者,步骤S1具体为:个人化设备确定当前操作的卡片,并获取当前操作的卡片的静态数据,将IC卡公钥数据与静态数据顺序拼接生成待签名数据;
相应的,根据数字签名以及待签名数据除去静态数据的其余数据生成签名数据具体为:将IC卡公钥数据和数字签名顺序拼接生成签名数据,签名数据即为IC卡公钥证书。
具体的,使用发卡行私钥对随机数和待签名数据进行签名得到数字签名具体为:使用发卡行私钥对随机数和待签名数据通过SM2算法进行签名得到数字签名。
更进一步的,使用发卡行私钥对随机数和待签名数据进行签名得到数字签名具体包括:
步骤A-1、个人化设备将用户可辨别标识比特长度、用户可辨别标识、椭圆曲线参数和发卡行公钥顺序拼接得到第一数据;将第一数据进行SM3密码杂凑算法得到第一杂凑值;
步骤A-2、个人化设备将待签名数据和第一杂凑值顺序拼接得到第二数据,将第二数据进行SM3密码杂凑算法得到第二杂凑值;
步骤A-3、个人化设备用随机数发生器生成第一随机数;根据第一随机数计算椭圆曲线点;
步骤A-4、个人化设备计算椭圆曲线点的横坐标和第二杂凑值之和,将计算得到的结果与椭圆曲线上基点的阶进行模运算得到第三数据;
步骤A-5、个人化设备判断第三数据与第一预设值是否相等,是则返回步骤 A-3,否则执行步骤A-6;
步骤A-6,个人化设备判断第三数据与第一随机数之和是否等于椭圆曲线上基点的阶,是则返回步骤A-3,否则执行步骤A-7;
步骤A-7、个人化设备计算1与发卡行私钥之和的模逆得到第四数据,计算第三数据与发卡行私钥之积得到第五数据,计算第一随机数与第五数据之差得到第六数据,将第六数据与椭圆曲线上基点的阶进行模运算得到第七数据,计算第四数据和第七数据之积得到第八数据;
步骤A-8、个人化设备判断第八数据是否等于第二预设值,是则返回步骤 A-3,否则执行步骤A-9;
步骤A-9、个人化设备将第三数据与第八数据顺序拼接得到数字签名。
步骤S3、个人化设备根据预设数据分组标识符和签名数据组合为数据分组;根据数据分组创建个人化指令,并将个人化指令写入个人化文件;
个人化设备根据预设的数据分组标识符和签名数据组合为数据分组具体为:个人化设备计算签名数据长度,将预设数据分组标识符、签名数据长度和签名数据顺序拼接生成数据分组。
根据数据分组创建个人化指令具体为:根据数据分组组织APDU指令;数据分组为APDU指令的命令数据域。
当个人化文件完成时,个人化方法还包括:个人化设备选择卡片的主安全域,打开安全通道,并将个人化文件中的个人化指令发送给当前操作的卡片。
优选的,步骤S1之后,S2之前还包括:
步骤B1、个人化设备检查签名数据是否满足预设条件,是则执行步骤B2, 否则签名数据生成失败;
步骤B1具体为:个人化设备判断签名数据的格式是否正确,是则判定签名数据满足预设条件,否则判定签名数据不满足预设条件。
步骤B2、个人化设备使用发卡行公钥对签名数据中的数字签名进行验证,判断验证是否通过,是则执行步骤S3,否则签名数据生成失败。
步骤B2具体为:个人化设备使用发卡行公钥对签名数据中的数字签名通过 SM2算法进行验证,判断验证是否通过,是则执行步骤S3,否则签名数据生成失败。
更进一步的,步骤B2具体包括:
步骤C1、个人化设备将用户可辨别标识比特长度、用户可辨别标识、椭圆曲线参数和发卡行公钥顺序拼接生成第九数据;将第九数据进行SM3运算生成第三杂凑值;
步骤C2、个人化设备将第三杂凑值和待签名数据顺序拼接生成第十数据;将第十数据进行SM3运算生成第四杂凑值;
步骤C3、个人化设备从静态数字签名中获取第三数据和第八数据,计算第三数据与第八数据之和得到第十一数据,将第十一数据和椭圆曲线上的基点的阶进行模运算得到第十二数据;
步骤C4、个人化设备根据第八数据、第十二数据、椭圆曲线的基点以及发卡行公钥计算椭圆曲线点;
步骤C5、个人化设备计算第四杂凑值与椭圆曲线点的横坐标之和得到第十三数据,将第十三数据与椭圆曲线上基点的阶进行模运算得到第十四数据;
步骤C6、个人化设备判断第十四数据与第三数据是否相等,是则执行步骤 S3,否则验签失败,结束。
优选的,步骤S1中获取静态数据之后,根据预设格式组织包含静态数据的待签名数据之前,还包括:
步骤D1、个人化设备判断静态数据中是否包括静态数据认证标签列表,是则执行步骤D2,否则执行根据预设格式组织包含静态数据的待签名数据;
步骤D2、个人化设备判断静态数据认证标签列表中是否只包含应用交互特征的标签,是则执行根据预设格式组织包含静态数据的待签名数据,否则静态签名数据生成失败。
实施例2
本实施例提供一种脱机认证数据的个人化方法,具体为脱机认证数据中的静态签名数据的个人化方法,如图1所示,具体包括:
步骤101、个人化设备确定当前操作的卡片,并获取所述当前操作的卡片的静态数据;
具体的,静态数据包括应用主账号、应用生效日期、应用失效日期和应用版本号等智能卡静态数据;
本实施例中,需认证的静态数据具体为:
0X 5A086228000100001117 5F2403301231 5F2503950701 9F08020030,其中第一个字节至第十个字节为应用主账号;第十一字节至第十六字节为应用生效日期;第十七字节至第二十二字节为应用失效日期;第二十三字节至第二十七字节为应用版本号。
步骤101具体为:个人化设备确定当前操作的卡片,并获取与当前操作的卡片相关联的静态数据;
更进一步的,个人化设备读取当前操作的卡片表面预先印刷的卡片信息,例如***,并从静态数据文件中获取与所述卡片信息相关联的静态数据。
更为详细的,从静态数据文件中获取与所述卡片信息相关联的静态数据具体为:从静态数据文件中获取应用主账号与卡片信息一致的静态数据。
或者步骤101具体为:个人化设备确定当前操作的卡片,并从静态数据文件中获取一条静态数据。;
步骤102、个人化设备判断静态数据中是否包括静态数据认证标签列表,是则执行步骤103,否则执行步骤104;
本实施例中静态数据为TLV格式,即静态数据认证标签列表是由标签、数据长度以及数据组成的。
具体的,判断静态数据中是否包含静态数据认证标签列表的标签,即判断需认证的静态数据中是否包含0X4A;是则判定静态数据中包括静态数据认证标签列表;否则判定静态数据中不包括静态数据认证标签列表;
步骤103、个人化设备判断静态数据认证标签列表中是否只包含应用交互特征的标签,是则执行步骤104,否则静态签名数据生成失败,结束;
步骤103具体包括:
步骤103-1、个人化设备判断静态数据认证标签列表的数据长度是否为1是则执行步骤103-2;否则静态签名数据生成失败,结束;
步骤103-2、个人化设备判断静态数据认证标签列表的数据是否为应用交互特征的标签,是则执行步骤104;否则静态签名数据生成失败。
具体的,个人化设备判断静态数据认证标签列表的数据是否为0X82,是则执行步骤104;否则静态签名数据生成失败。
步骤104、个人化设备根据签名数据格式、数据验证代码和静态数据生成待签名数据;
具体的,签名数据格式为预设字节0X13,数据验证代码为发卡行分配的代码,本实施例中具体为0XDAC5;将签名数据格式、数据验证代码和需认证的静态数据顺序拼接生成待签名数据, 0X13DAC55A0862280001000011175F24033012315F25039507019F08020030。
步骤105、个人化设备生成随机数,并使用发卡行私钥对待签名数据和随机数进行签名得到静态数字签名;
步骤105具体为:个人化设备生成随机数,并使用发卡行私钥对待签名数据和随机数通过SM2算法进行签名得到静态签名数据;
更进一步的,步骤105中,使用发卡行私钥对待签名数据和随机数进行签名得到静态数字签名,具体包括:
步骤105-1、个人化设备将用户可辨别标识比特长度、用户可辨别标识、椭圆曲线参数和发卡行公钥顺序拼接得到第一数据;将第一数据进行SM3密码杂凑算法得到第一杂凑值;
本实施例中,第一数据具体为:
0x008031323334353637383132333435363738FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E9332C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0C3AC12B81B9D175936B5BF72BB8FE3A2266BC013B2E94F5837F16AA1C01AA7323B75626AB64D02AED20CC6F440841F10EE6873BCBEA3F41D6869D0FEADD71154;其中前十八个字节为固定数据,其后的一百二十八字节为预设的椭圆曲线参数,其后的六十四个字节为发卡行公钥。
SM3运算具体为将输入的数据映射为一个32字节的哈希值;本实施例中根据第一数据进行SM3运算生成的第一哈希值为:
228C5EDBD4150CD02785F763C074DDCD2E21294465341CFE48530B589BA0FC85。
步骤105-2、个人化设备将待签名数据和第一杂凑值顺序拼接得到第二数据,将第二数据进行SM3密码杂凑算法得到第二杂凑值;
具体的,将第一杂凑值和待签名数据串联得到的第二数据具体为:
0X228C5EDBD4150CD02785F763C074DDCD2E21294465341CFE48530B589BA0FC855A0862280001000011175F24033012315F25039507019F08020030;
本实施例中生成的第二哈希值具体为:
0XB178B75CAE400122778070132278EE73D511846076424A4041E8E427759FF7B6。
步骤105-3、个人化设备用随机数发生器生成第一随机数;根据第一随机数计算椭圆曲线点;
具体的随机数生成器生成的第一随机数记作K,计算椭圆曲线上的基点的K 倍点,计算得到的椭圆曲线上的基点的K倍点记为椭圆曲线点。
步骤105-4、个人化设备计算椭圆曲线点的横坐标和第二杂凑值之和,将计算得到的结果与椭圆曲线上基点的阶进行模运算得到第三数据;
步骤105-5、个人化设备判断第三数据是与第一预设值是否相等,是则返回步骤105-3,否则执行步骤105-6;
步骤105-6,个人化设备判断第三数据与第一随机数之和是否等于椭圆曲线上基点的阶,是则返回步骤105-3,否则执行步骤105-7;
步骤105-7、个人化设备计算1与发卡行私钥之和的模逆得到第四数据,计算第三数据与发卡行私钥之积得到第五数据,计算第一随机数与第五数据之差得到第六数据,将第六数据与椭圆曲线上基点的阶进行模运算得到第七数据,计算第五数据和第七数据之积得到第八数据;
步骤105-8、个人化设备判断第八数据是否等于第二预设值,是则返回步骤 105-3,否则执行步骤105-9;
步骤105-9、个人化设备将第三数据与第八数据顺序拼接得到静态数字签名;
步骤106、个人化设备根据签名数据格式、数字验证代码和静态数字签名生成静态签名数据;
具体的,签名数据格式为预设字节0X13,数据验证代码为发卡行分配的代码,本实施例中具体为0XDAC5;将签名数据格式、数据验证代码和静态数字签名顺序拼接生成静态签名数据。
静态签名数据具体为:
0X13DAC59BABD0781722AC9D1AA73E3EED30A5B91FA1BA3CE6E51B492FFF4FDF810C607AF738D73B359659BA8F755E0BF38B9F1289E0FC2B84F518A60C852FB01290E61A
步骤107、个人化设备检查静态签名数据格式是否正确,是则执行步骤108,否则静态数据认证失败,结束;
具体的,步骤107具体为:个人化设备判断静态签名数据中的签名数据格式的值是否为OX13,是则继续检查,否则判断静态签名数据中的数据验证代码的值是否为发卡行分配的代码即OXDAC5,是则静态签名数据格式正确,否则静态签名数据格式不正确;
步骤108、个人化设备使用发卡行公钥对静态签名数据中的静态数字签名进行验证,判断验证是否通过,是则执行步骤109,否则静态签名数据生成失败,结束。
步骤108具体为,个人化设备使用发卡行公钥对静态签名数据中的静态签名数据通过SM2算法进行验签,判断验证是否通过,若验证通过则执行步骤109,否则静态签名数据生成失败,结束。
进一步的,步骤108中使用发卡行公钥对静态签名数据中的静态数字签名进行验证,具体包括:
步骤108-1、个人化设备将用户可辨别标识比特长度、用户可辨别标识、椭圆曲线参数和发卡行公钥串联生成第九数据;将第九数据进行SM3运算生成第三杂凑值;
本实施例中第九数据具体为
0X008031323334353637383132333435363738FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E9332C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0C3AC12B81B9D175936B5BF72BB8FE3A2266BC013B2E94F5837F16AA1C01AA7323B75626AB64D02AED20CC6F440841F10EE6873BCBEA3F41D6869D0FEADD71154。
本实施例中第三杂凑值具体为:
0X228C5EDBD4150CD02785F763C074DDCD2E21294465341CFE48530B589BA0FC85。
步骤108-2、个人化设备将第三杂凑值和待签名数据串联生成第十数据;将第十数据进行SM3运算生成第四杂凑值;
本实施例中第十数据具体为:
0X228C5EDBD4150CD02785F763C074DDCD2E21294465341CFE48530B589BA0FC8513DAC55A0862280001000011175F24033012315F25039507019F08020030。本实施例中第四哈希值具体为:
0XB178B75CAE400122778070132278EE73D511846076424A4041E8E427759FF7B6。
步骤108-3、个人化设备从静态数字签名中获取第三数据和第八数据,计算第三数据与第八数据之和得到第十一数据,将第十一数据和椭圆曲线上的基点的阶进行模运算得到第十二数据;
步骤108-4、个人化设备根据第八数据、第十二数据、椭圆曲线的基点以及发卡行公钥计算椭圆曲线点;
具体的,将第八数据记为S,计算椭圆曲线上基点的S倍点,将第十二数据记为T,计算发卡行公钥的T倍点,将S倍点与T倍点相加得到椭圆曲线点。
步骤108-5、个人化设备计算第四杂凑值与椭圆曲线点的横坐标之和得到第十三数据,将第十三数据与椭圆曲线上基点的阶进行模运算得到第十四数据;
步骤108-6、个人化设备判断第十四数据与第三数据是否相等,是则执行步骤109,否则验签失败,结束。
步骤109、个人化设备根据预设的数据分组标识符和静态签名数据生成数据分组;
具体的,个人化设备计算静态签名数据长度,将数据分组标识符、静态数据长度和静态数据顺序拼接得到数据分组;
步骤110、个人化设备根据数据分组创建个人化指令,并将创建的个人化指令写入个人化文件;
具体的,个人化指令的数据格式为CLA+INS+P1+P2+Lc+DGI+Length +Data;
其中,CLA为命令报文的类别字节、INS为命令报文的指令字节、P1和P2 为引用控制参数和块编号、Lc为数据DGI+Length+Data的长度、DGI为数据分组标识符;Length为静态签名数据长度;Data为静态签名数据;
本实施例中个人化指令具体为0X80 E2 00 04
A02054770459313DAC59BABD0781722AC9D1AA73E3EED30A5B91FA1BA3CE6E51B492FFF4FDF810C607AF738D73B359659BA8F755E0BF38B9F1289E0FC2B84F518A60C852FB01290E61A;其中OX80为CLA,E2为INS即存储数据命令的指令字节,00为 P1,05为P2,4A为Lc,其后的数据为DATA,包括静态签名数据的标签OX93和静态签名数据。
当个人化文件完成时,个人化方法还包括:个人化设备选择卡片的主安全域,打开安全通道,并将个人化文件中的个人化指令发送给当前操作的卡片。
个人化设备等待接收智能卡返回的响应数据,若响应数据中包括0X9000则表明静态签名数据成功写入智能卡,否则静态签名数据写入失败。
当卡片的卡面没有预先印刷卡片信息时,则该方法还包括:个人化设备从静态数据中获取应用主账号印刷到卡面。
实施例3
本实施例提供一种脱机认证数据的个人化方法,具体为脱机认证中的IC卡公钥证书的个人化方法;如图2所示,具体包括:
步骤201、个人化设备确定当前操作的卡片,并获取所述当前操作的卡片的静态数据;
具体的,静态数据包括应用主账号、应用生效日期、应用失效日期和应用版本号等智能卡静态数据;
本实施例中,需认证的静态数据具体为:
0X 5A086228000100001117 5F2403301231 5F25039507019F08020030,其中第一个字节至第十个字节为应用主账号;第十一字节至第十六字节为应用生效日期;第十七字节至第二十二字节为应用失效日期;第二十三字节至第二十七字节为应用版本号。
步骤201具体为:个人化设备确定当前操作的卡片,并获取与当前操作的卡片相关联的静态数据;
更进一步的,个人化设备读取当前操作的卡片表面预先印刷的卡片信息,例如***,并从静态数据文件中获取与所述卡片信息相关联的静态信息。
更为详细的,从静态数据文件中获取与所述卡片信息相关联的静态数据具体为:从静态数据文件中获取应用主账号与卡片信息一致的静态数据。
或者步骤201具体为:个人化设备确定当前操作的卡片,并从静态数据文件中获取一条静态数据。;
步骤202、个人化设备判断静态数据是否包括静态数据认证标签列表,是则执行步骤203,否则执行步骤204;
本实施例中静态数据为TLV格式,即静态数据认证标签列表是由标签、数据长度以及数据组成的。
具体的,判断静态数据是否包含静态数据认证标签列表的标签,即判断静态数据中是否包含0X4A;是则判定静态数据中包括静态数据认证标签列表;否则判定静态数据中不包括静态数据认证标签列表;
步骤203、判断静态数据认证标签列表中是否只包含应用交互特征的标签,是则执行步骤204,否则IC卡公钥证书生成失败;
步骤203具体包括:
步骤203-1、判断静态数据认证标签列表的数据长度是否为1是则执行步骤 203-2;否则IC卡公钥证书生成失败;
步骤203-2、判断静态数据认证标签列表的数据是否为应用交互特征的标签即判断静态数据认证标签列表的数据是否为0X82,是则执行步骤204;否则IC 卡公钥证书生成失败。
步骤204、根据IC卡公钥数据和静态数据生成待签名数据。
具体的,将个人化数据中的证书格式、应用主账号、证书失效日期、证书序列号、IC卡公钥签名算法标识、IC卡公钥加密算法标识、IC卡公钥参数标识、 IC卡公钥长度和IC卡公钥顺序拼接作为IC卡公钥数据,将IC卡公钥数据以及静态数据顺序拼接得到待签名数据。
本实施例中获取到的待签名数据具体为0X14 6228000100001117FFFF 1230000001 04 00 11 40
C3AC12B81B9D175936B5BF72BB8FE3A2266BC013B2E94F5837F16AA1C01AA7323B75626AB64D02AED20CC6F440841F10EE6873BCBEA3F41D6869D0FEADD71154
5A0862280001000011175F24033012315F25039507019F08020030
其中待签名数据的第一个字节0X14为证书格式,第二个字节至第十一字节0X6228000100001117FFFF为应用主账号;第十二个字节至第十三字节OX1230为证书失效日期,第十四字节至第十六字节0X000001为证书序列号;第十七字节 0X04为IC卡公钥签名算法标识;第十八字节0X00为IC卡公钥加密算法标识;第十九字节0X11为IC卡公钥参数标识,用于标识椭圆曲线;第二十字节0X40 为IC卡公钥长度;第二十一字节至第六十字节为IC卡公钥,其后的二十七个字节为静态数据;
步骤205、个人化设备生成随机数,并使用发卡行私钥对待签名数据和随机数进行签名得到IC卡数字签名;
步骤205具体为:个人化设备生成随机数,并使用发卡行私钥对待签名数据和随机数通过SM2算法进行签名得到IC卡数字签名;
本实施例中得到的IC卡数字签名具体为0X AF3A6E51AC91005CDD6136497793091D8A52EA3AD49D8C215FB25A9E3B9E110511D0 089A7450147553147BF4144E435CC55DE8C8C0D0BFE34115DE19804333A5
具体的,步骤205中使用发卡行私钥对待签名数据和随机数进行签名得到 IC卡数字签名与实施例1中提到的使用发卡行私钥对待签名数据和随机数进行签名得到静态数字签名的过程类似在此不再赘述;
步骤206、个人化设备根据IC卡公钥数据和IC卡数字签名生成IC卡公钥证书。
具体的,将个人化数据中的证书格式、应用主账号、证书失效日期、证书序列号、IC卡公钥签名算法标识、IC卡公钥加密算法标识、IC卡公钥参数标识、 IC卡公钥长度和IC卡公钥顺序拼接作为IC卡公钥数据,将IC卡公钥数据与 IC卡数字签名顺序拼接得到IC卡公钥证书。
本实施例中生成IC卡公钥证书具体为:
0X 6228000100001117FFFF 1230 000001 04 00 11 40
C3AC12B81B9D175936B5BF72BB8FE3A2266BC013B2E94F5837F16AA1C01AA7323B75626AB64D02AED20CC6F440841F10EE6873BCBEA3F41D6869D0FEADD71154
DD956D186252EE711398B339270CB1839DAF4A15B7F907E0AD334470CB83F0E 3,0XFD395978A5A0FFD2A2055A986522368E6F3A6BE34E0C416EB69FA7A08C89DFF 2,其中前60字节为IC卡公钥数据;其后的64字节为步骤210中得到的IC 卡数字签名。
步骤207、个人化设备判断IC卡公钥证书中的证书格式的值是否为预设值,是则执行步骤208、否则IC卡公钥证书生成失败;
预设值具体为OX14;
步骤208、个人化设备根据IC卡公钥证书中的证书失效日期,判断证书是否过期,是则执行步骤209,否则IC卡公钥证书生成失败;
步骤209、个人化设备判断IC卡公钥证书中的IC卡公钥签名算法是否为 SM2算法,是则执行步骤210、否则IC卡公钥证书生成失败;
具体的,个人化设备判断IC卡公钥数据中的IC卡公钥签名算法的值是否为0X04,是则判定IC卡公钥签名算法为SM2算法,否则判定IC卡公钥签名算法不是SM2算法。
步骤210、个人化设备使用发卡行公钥对IC卡公钥证书中的IC卡数字签名进行验证;判断验证是否通过,是则执行步骤211,否则IC卡公钥证书生成失败;
步骤210具体为:个人化设备使用发卡行公钥对IC卡公钥证书中的IC卡数字签名通过SM2算法进行验证,判断验证是否通过,若验证通过则执行步骤 211,否则IC卡公钥证书生成失败;
具体的,步骤210中使用发卡行私钥对IC卡公钥证书中的IC卡数字签名通过SM2算法进行验证与步骤108中使用发卡行公钥对静态签名数据中的静态数字签名进行验证的过程类似在此不再赘述;
步骤211、个人化设备根据预设的数据分组标识符和IC卡公钥证书生成数据分组;
具体的,个人化设备计算IC卡公钥证书长度,将数据分组标识符、IC卡公钥证书长度和静态数据顺序拼接得到数据分组;
步骤212、个人化设备根据数据分组创建个人化指令;并将创建的个人化指令写入个人化文件;
具体的,个人化指令的数据格式为CLA+INS+P1+P2+Lc+DGI+Length +Data;
具体的,向智能卡发送写入IC卡公钥证书,并等待接收智能卡返回的响应数据,若响应数据中包括0X9000则表明IC卡公钥证书成功写入智能卡,否则 IC卡公钥证书写入失败。
当个人化文件完成时,个人化方法还包括:个人化设备选择卡片的主安全域,打开安全通道,并将个人化文件中的个人化指令发送给卡片。
个人化设备等待接收智能卡返回的响应数据,若响应数据中包括0X9000则表明静态签名数据成功写入智能卡,否则静态签名数据写入失败。
当卡片的卡面没有预先印刷卡片信息时,则该方法还包括:个人化设备从静态数据中获取应用主账号印刷到卡面。
实施例4
本实施例提供一种脱机认证数据的个人化设备,参见图3,包括:
获取模块11,用于确定当前操作的卡片,并获取所述当前操作的卡片的静态数据;
获取模块11获取到的静态数据中具体包括:应用主账户、应用生效日期、应用失效日期和应用版本号。
待签名数据组织模块12,用于根据预设格式组织包含获取模块11获取到的静态数据的待签名数据;
随机数生成模块13,用于生成随机数;
签名模块14,用于使用发卡行私钥对待签名数据组织模块12组织的待签名数据和随机数生成模块13生成的随机数进行签名得到数字签名;
具体的,签名模块14,用于使用发卡行私钥对随机数生成模块13生成的随机数和待签名数据组织模块12组织的待签名数据通过SM2算法进行签名得到数字签名。
更进一步的,签名模块14具体包括:
拼接子模块,用于将用户可辨别标识比特长度、用户可辨别标识、椭圆曲线参数和发卡行公钥顺序拼接得到第一数据;还用于将待签名数据和SM3子运算模块得到的第一杂凑值顺序拼接得到第二数据;
相应的,SM3运算子模块,用于将拼接子模块得到的第一数据进行SM3密码杂凑算法得到第一杂凑值;还用于将拼接模块得到的第二数据进行SM3密码杂凑算法得到第二杂凑值;
计算椭圆曲线点模块,用于根据随机数生成模块13生成的第一随机数计算椭圆曲线点;
模运算模块,用于计算计算椭圆曲线点模块得到的椭圆曲线点的横坐标和 SM3运算子模块得到的第二杂凑值之和,将计算得到的结果与椭圆曲线上基点的阶进行模运算得到第三数据;还用于计算第三数据与发卡行私钥之积得到第五数据,计算第一随机数与第五数据之差得到第六数据,将第六数据与椭圆曲线上基点的阶进行模运算得到第七数据;
第一判断子模块,用于判断模运算模块得到的第三数据与第一预设值是否相等;
第二判断子模块,用于当第一判断子模块判定第三数据与第一预设值不相等时判断模运算模块得到的第三数据与随机数生成模块13生成的第一随机数之和是否等于椭圆曲线上基点的阶;
模逆运算子模块,用于第二判断模块判定模运算模块得到的第三数据与随机数生成模块13生成的第一随机数之和等于椭圆曲线上基点的阶时,计算1与发卡行私钥之和的模逆得到第四数据;
第三判断模块,用于计算模逆运算子模块得到的第四数据与模运算模块得到的第七数据之积得到第八数据,判断第八数据是否等于第二预设值;
数字签名子模块,用于当第三判断模块判定第八数据不等于第二预设值时将模运算模块得到的第三数据与第八数据顺序拼接得到数字签名;
随机数生成模块13,具体用于生成随机数作为第一随机数;还用于当第一判断子模块判定第三数据与第一预设值相等时生成随机数,更新第一随机数,触发计算椭圆曲线点模块;还用于当第三判断模块判定第八数据与第二预设值相等时生成随机数,更新第一随机数,触发计算椭圆曲线点模块。
签名数据生成模块15,用于根据签名模块14生成的数字签名以及待签名数据中除去静态数据的其余数据生成签名数据;
数据分组组合模块16,用于根据预设数据分组标识符和签名数据生成模块 15生成的签名数据组合为数据分组;
具体的,数据分组组合模块16,用于计算签名数据长度,将预设数据分组标识符、签名数据长度和签名数据生成模块15生成的签名数据顺序拼接生成数据分组。
创建个人化指令模块17,用于根据数据分组组合模块16组合的数据分组创建个人化指令;
具体的,创建个人化指令模块17,用于根据数据分组组合模块16组合的数据分组织APDU指令;数据分组为APDU指令的命令数据域。
写入模块18,用于将创建个人化指令模块17创建的个人化指令写入个人化文件;
发送模块19,用于当个人化文件完成时选择卡片的主安全域,打开安全通道,并将个人化文件中的个人化指令发送给当前操作的卡片。
具体的,待签名数据组织模块12,用于将签名数据格式、数据验证代码和获取模块11获取到的静态数据顺序拼接生成待签名数据;
相应的,签名数据生成模块15,具体用于将签名数据格式、数据验证代码和签名模块14得到的数字签名顺序拼接生成签名数据,签名数据即为静态签名数据。
具体的,待签名数据组织模块12,用于将IC卡公钥数据与获取模块11获取到的静态数据顺序拼接得到待签名数据;
相应的,签名数据生成模块15,具体用于将IC卡公钥数据和签名模块14 得到的数字签名顺序拼接生成签名数据,签名数据即为IC卡公钥证书。
优选的,个人化设备还包括:
第一判断模块,用于判断签名数据组织模块组织的签名数据是否满足预设条件;
具体的,第一判断模块,用于判断签名数据组织模块组织的签名数据的格式是否正确。
验签模块,用于若第一判断模块判定签名数据满足预设条件时使用发卡行公钥对签名数据中的数字签名进行验证,并判断验证是否成功;
具体的,验签模块,用于若第一判断模块判定签名数据满足预设条件时使用发卡行公钥对签名数据中的数字签名通过SM2算法进行验证,并判断验证是否成功。
相应的,数据分组组合模块16,具体用于当验证成功模块判定验证成功时根据预设数据分组标识符和签名数据组合为数据分组。
更进一步的,验签模块,具体包括:
拼接子模块,用于将用户可辨别标识比特长度、用户可辨别标识、椭圆曲线参数和发卡行公钥顺序拼接生成第九数据;还用于将SM3子运算模块的第三杂凑值和待签名数据生成模块15生成的待签名数据顺序拼接生成第十数据;
SM3运算子模块,用于将拼接模块生成的第九数据进行SM3运算生成第三杂凑值;还用于将拼接子模块生成的第十数据进行SM3运算生成第四杂凑值;
模运算模块,用于从签名数据生成模块15生成的签名数据中获取第三数据和第八数据,计算第三数据与第八数据之和得到第十一数据,将第十一数据和椭圆曲线上的基点的阶进行模运算得到第十二数据;还用于计算SM3运算子模块得到的第四杂凑值与计算椭圆曲线模块得到的椭圆曲线点的横坐标之和得到第十三数据,将第十三数据与椭圆曲线上基点的阶进行模运算得到第十四数据;
计算椭圆曲线模块,用于根据第八数据、模运算模块得到的第十二数据、椭圆曲线的基点以及发卡行公钥计算椭圆曲线点;
判断子模块,用于判断模运算模块得到的第十四数据与第三数据是否相等;
数据分组组合模块16,用于当判断子模块判定第十四数据与第三数据相等时,根据预设数据分组标识符和签名数据生成模块15生成的签名数据组合为数据分组。
优选的,个人化设备,还包括:第一判断模块,用于判断获取模块11获取到的静态数据中是否包括静态数据认证标签列表;
第二判断模块,用于当第一判断模块判定静态数据中包括静态数据认证标签列表时判断静态数据认证标签列表中是否只包含应用交互特征的标签;
相应的,待签名数据组织模块12,用于当第一判断模块判定静态数据中不包括静态数据认证标签列表时,根据预设格式组织包含获取模块11获取到的静态数据的待签名数据;还用于当第二判断模块判定静态数据认证标签列表中只包含应用交互特征的标签时,根据预设格式组织包含获取模块11获取到的静态数据的待签名数据。
以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (26)
1.一种脱机认证数据的个人化方法,其特征在于,包括:
步骤S1、个人化设备确定当前操作的卡片,并获取所述当前操作的卡片的静态数据,根据预设格式组织包含所述静态数据的待签名数据;
步骤S2、个人化设备生成随机数,使用发卡行私钥对所述随机数和所述待签名数据进行签名得到数字签名;根据所述数字签名以及所述待签名数据中除去所述静态数据的其余数据生成签名数据;
步骤S3、个人化设备根据预设数据分组标识符和签名数据组合为数据分组;根据所述数据分组创建个人化指令,并将个人化指令写入个人化文件;
当个人化文件完成时,所述个人化方法还包括:个人化设备选择卡片的主安全域,打开安全通道,并将个人化文件中的个人化指令发送给所述当前操作的卡片。
2.如权利要求1所述的方法,其特征在于,所述静态数据具体包括:应用主账户、应用生效日期、应用失效日期和应用版本号。
3.如权利要求1所述的方法,其特征在于,所述步骤S1具体为:个人化设备确定当前操作的卡片,并获取所述当前操作的卡片的静态数据,将签名数据格式、数据验证代码和所述静态数据顺序拼接生成待签名数据;
所述根据所述数字签名以及所述待签名数据除去所述静态数据的其余数据生成签名数据具体为:将所述签名数据格式、所述数据验证代码和所述数字签名顺序拼接生成签名数据,所述签名数据即为静态签名数据。
4.如权利要求1所述的方法,其特征在于,所述步骤S1具体为:个人化设备确定当前操作的卡片,并获取所述当前操作的卡片的静态数据,并将IC卡公钥数据与所述静态数据顺序拼接生成待签名数据;
所述根据所述数字签名以及所述待签名数据除去所述静态数据的其余数据生成签名数据具体为:将所述IC卡公钥数据和所述数字签名顺序拼接生成签名数据,所述签名数据即为IC卡公钥证书。
5.如权利要求1所述的方法,其特征在于,所述使用发卡行私钥对所述随机数和所述待签名数据进行签名得到数字签名具体为:使用发卡行私钥对所述随机数和所述待签名数据通过SM2算法进行签名得到数字签名。
6.如权利要求1所述的方法,其特征在于,所述使用发卡行私钥对所述随机数和所述待签名数据进行签名得到数字签名具体包括:
步骤A-1、个人化设备将用户可辨别标识比特长度、用户可辨别标识、椭圆曲线参数和发卡行公钥顺序拼接得到第一数据;将所述第一数据进行SM3密码杂凑算法得到第一杂凑值;
步骤A-2、个人化设备将所述待签名数据和所述第一杂凑值顺序拼接得到第二数据,将所述第二数据进行SM3密码杂凑算法得到第二杂凑值;
步骤A-3、个人化设备用随机数发生器生成第一随机数;根据所述第一随机数计算椭圆曲线点;
步骤A-4、个人化设备计算椭圆曲线点的横坐标和所述第二杂凑值之和,将计算得到的结果与椭圆曲线上基点的阶进行模运算得到第三数据;
步骤A-5、个人化设备判断所述第三数据与第一预设值是否相等,是则返回步骤A-3,否则执行步骤A-6;
步骤A-6,个人化设备判断所述第三数据与所述第一随机数之和是否等于椭圆曲线上基点的阶,是则返回步骤A-3,否则执行步骤A-7;
步骤A-7、个人化设备计算1与发卡行私钥之和的模逆得到第四数据,计算所述第三数据与发卡行私钥之积得到第五数据,计算所述第一随机数与所述第五数据之差得到第六数据,将所述第六数据与椭圆曲线上基点的阶进行模运算得到第七数据,计算所述第四数据和所述第七数据之积得到第八数据;
步骤A-8、个人化设备判断所述第八数据是否等于第二预设值,是则返回步骤A-3,否则执行步骤A-9;
步骤A-9、个人化设备将所述第三数据与所述第八数据顺序拼接得到数字签名。
7.如权利要求1所述的方法,其特征在于,所述个人化设备根据预设的数据分组标识符和签名数据为数据分组具体为:个人化设备计算签名数据长度,将预设数据分组标识符、签名数据长度和所述签名数据顺序拼接生成数据分组。
8.如权利要求1所述的方法,其特征在于,根据所述数据分组创建个人化指令具体为:根据数据分组组织APDU指令;所述数据分组为APDU指令的命令数据域。
9.如权利要求1所述的方法,其特征在于,所述步骤S2之后,所述S3之前还包括:
步骤B1、个人化设备检查签名数据是否满足预设条件,是则执行步骤B2,否则签名数据生成失败;
步骤B2、个人化设备使用发卡行公钥对签名数据中的数字签名进行验证,判断验证是否通过,是则执行步骤S3,否则签名数据生成失败。
10.如权利要求9所述的方法,其特征在于,所述步骤B1具体为:个人化设备判断所述签名数据的格式是否正确,是则判定所述签名数据满足预设条件,否则判定签名数据不满足预设条件。
11.如权利要求9所述的方法,其特征在于,所述步骤B2具体为:个人化设备使用发卡行公钥对签名数据中的数字签名通过SM2算法进行验证,判断验证是否通过,是则执行步骤S3,否则签名数据生成失败。
12.如权利要求9所述的方法,其特征在于,所述步骤B2具体包括:
步骤C1、个人化设备将用户可辨别标识比特长度、用户可辨别标识、椭圆曲线参数和发卡行公钥顺序拼接生成第九数据;将第九数据进行SM3运算生成第三杂凑值;
步骤C2、个人化设备将第三杂凑值和待签名数据顺序拼接生成第十数据;将第十数据进行SM3运算生成第四杂凑值;
步骤C3、个人化设备从数字签名中获取第三数据和第八数据,计算第三数据与第八数据之和得到第十一数据,将第十一数据和椭圆曲线上的基点的阶进行模运算得到第十二数据;
步骤C4、个人化设备根据第八数据、第十二数据、椭圆曲线的基点以及发卡行公钥计算椭圆曲线点;
步骤C5、个人化设备计算第四杂凑值与椭圆曲线点的横坐标之和得到第十三数据,将第十三数据与椭圆曲线上基点的阶进行模运算得到第十四数据;
步骤C6、个人化设备判断第十四数据与第三数据是否相等,是则执行步骤S3,否则验签失败,结束。
13.如权利要求1所述的方法,其特征在于,所述获取静态数据之后,所述根据预设格式组织包含静态数据的待签名数据之前,还包括:
步骤D1、个人化设备判断静态数据中是否包括静态数据认证标签列表,是则执行步骤D2,否则执行所述根据预设格式组织包含静态数据的待签名数据;
步骤D2、个人化设备判断静态数据认证标签列表中是否只包含应用交互特征的标签,是则执行所述根据预设格式组织包含静态数据的待签名数据,否则静态签名数据生成失败。
14.一种脱机认证数据的个人化设备,其特征在于,包括:
获取模块,用于确定当前操作的卡片,并获取所述当前操作的卡片的静态数据;
待签名数据组织模块,用于根据预设格式组织包含所述获取模块获取到的所述静态数据的待签名数据;
随机数生成模块,用于生成随机数;
签名模块,用于使用发卡行私钥对所述待签名数据组织模块组织的所述待签名数据和所述随机数生成模块生成的所述随机数进行签名得到数字签名;
签名数据生成模块,用于根据所述签名模块生成的所述数字签名以及所述待签名数据中除去所述静态数据的其余数据生成签名数据;
数据分组组合模块,用于根据预设数据分组标识符和所述签名数据生成模块生成的所述签名数据组合为数据分组;
创建个人化指令模块,用于根据所述数据分组组合模块组合的所述数据分组创建个人化指令;
写入模块,用于将所述创建个人化指令模块创建的所述个人化指令写入个人化文件;
发送模块,用于当所述个人化文件完成时选择卡片的主安全域,打开安全通道,并将个人化文件中的个人化指令发送给所述当前操作的卡片。
15.如权利要求14所述的个人化设备,其特征在于,所述获取模块获取到的所述静态数据中具体包括:应用主账户、应用生效日期、应用失效日期和应用版本号。
16.如权利要求14所述的个人化设备,其特征在于,
所述待签名数据组织模块,具体用于将签名数据格式、数据验证代码和所述获取模块获取到的所述静态数据顺序拼接生成待签名数据;
所述签名数据生成模块,具体用于将所述签名数据格式、所述数据验证代码和所述签名模块得到的所述数字签名顺序拼接生成签名数据,所述签名数据即为静态签名数据。
17.如权利要求14所述的个人化设备,其特征在于,
所述待签名数据组织模块,具体用于将IC卡公钥数据与所述获取模块获取到的所述静态数据顺序拼接生成待签名数据;
所述签名数据生成模块,具体用于将IC卡公钥数据和所述签名模块得到的所述数字签名顺序拼接生成签名数据,所述签名数据即为IC卡公钥证书。
18.如权利要求14所述的个人化设备,其特征在于,所述签名模块,具体用于使用发卡行私钥对所述随机数生成模块生成的所述随机数和所述待签名数据组织模块组织的所述待签名数据通过SM2算法进行签名得到数字签名。
19.如权利要求14所述的个人化设备,其特征在于,所述签名模块具体包括:
拼接子模块,用于将用户可辨别标识比特长度、用户可辨别标识、椭圆曲线参数和发卡行公钥顺序拼接得到第一数据;还用于将所述待签名数据和SM3子运算模块得到的所述第一杂凑值顺序拼接得到第二数据;
所述SM3运算子模块,用于将所述拼接子模块得到的所述第一数据进行SM3密码杂凑算法得到第一杂凑值;还用于将所述拼接模块得到的第二数据进行SM3密码杂凑算法得到第二杂凑值;
计算椭圆曲线点模块,用于根据所述随机数生成模块生成的所述第一随机数计算椭圆曲线点;
模运算模块,用于计算所述计算椭圆曲线点模块得到的所述椭圆曲线点的横坐标和所述SM3运算子模块得到的所述第二杂凑值之和,将计算得到的结果与椭圆曲线上基点的阶进行模运算得到第三数据;还用于计算所述第三数据与发卡行私钥之积得到第五数据,计算所述第一随机数与所述第五数据之差得到第六数据,将所述第六数据与椭圆曲线上基点的阶进行模运算得到第七数据;
第一判断子模块,用于判断所述模运算模块得到的所述第三数据与第一预设值是否相等;
第二判断子模块,用于当所述第一判断子模块判定所述第三数据与第一预设值不相等时判断所述模运算模块得到的所述第三数据与所述随机数生成模块生成的所述第一随机数之和是否等于椭圆曲线上基点的阶;
模逆运算子模块,用于当所述第二判断子模块判定计算所述模运算模块得到的所述第三数据与所述随机数生成模块生成的所述第一随机数之和等于椭圆曲线上基点的阶时计算1与发卡行私钥之和的模逆得到第四数据;
第三判断模块,用于计算所述模逆运算子模块得到的所述第四数据与所述模运算模块得到的所述第七数据之积得到第八数据,判断所述第八数据是否等于第二预设值;
数字签名子模块,用于当所述第三判断模块判定所述第八数据不等于第二预设值时,将所述模运算模块得到的所述第三数据与所述第八数据顺序拼接得到数字签名;
所述随机数生成模块,具体用于生成随机数作为第一随机数;还用于当所述第一判断子模块判定所述第三数据与所述第一预设值相等时生成随机数,更新第一随机数,触发所述计算椭圆曲线点模块;还用于当所述第三判断模块判定所述第八数据与所述第二预设值相等时生成随机数,更新第一随机数,触发所述计算椭圆曲线点模块。
20.如权利要求14所述的个人化设备,其特征在于,所述数据分组组合模块,具体用于计算签名数据长度,将预设数据分组标识符、签名数据长度和所述签名数据生成模块生成的所述签名数据顺序拼接生成数据分组。
21.如权利要求14所述的个人化设备,其特征在于,所述创建个人化指令模块,具体用于根据所述数据分组组合模块组合的所述数据分组织APDU指令;所述数据分组为APDU指令的命令数据域。
22.如权利要求14所述的个人化设备,其特征在于,还包括:
第一判断模块,用于判断所述签名数据组织模块组织的所述签名数据是否满足预设条件;
验签模块,用于若所述第一判断模块判定所述签名数据满足预设条件时使用发卡行公钥对签名数据中的数字签名进行验证,并判断验证是否通过;
所述数据分组组合模块,具体用于当所述验证成功模块判定验证成功时根据预设数据分组标识符和签名数据组合为数据分组。
23.如权利要求22所述的个人化设备,其特征在于,所述第一判断模块,具体用于判断所述签名数据组织模块组织的所述签名数据的格式是否正确。
24.如权利要求22所述的个人化设备,其特征在于,所述验签模块,具体用于若所述第一判断模块判定所述签名数据满足预设条件时使用发卡行公钥对签名数据中的数字签名通过SM2算法进行验证,并判断验证是否成功。
25.如权利要求22所述的个人化设备,其特征在于,所述验签模块,具体包括:
拼接子模块,用于将用户可辨别标识比特长度、用户可辨别标识、椭圆曲线参数和发卡行公钥顺序拼接生成第九数据;还用于将SM3子运算模块的第三杂凑值和所述待签名数据生成模块生成的所述待签名数据顺序拼接生成第十数据;
所述SM3运算子模块,用于将所述拼接模块生成的第九数据进行SM3运算生成第三杂凑值;还用于将所述拼接子模块生成的第十数据进行SM3运算生成第四杂凑值;
模运算模块,用于从所述签名数据生成模块生成的所述签名数据中获取所述第三数据和所述第八数据,计算所述第三数据与所述第八数据之和得到第十一数据,将所述第十一数据和椭圆曲线上的基点的阶进行模运算得到第十二数据;还用于计算所述SM3运算子模块得到的所述第四杂凑值与所述计算椭圆曲线模块得到的所述椭圆曲线点的横坐标之和得到第十三数据,将第十三数据与椭圆曲线上基点的阶进行模运算得到第十四数据;
所述计算椭圆曲线模块,用于根据所述第八数据、所述模运算模块生成的所述第十二数据、椭圆曲线的基点以及发卡行公钥计算椭圆曲线点;
判断子模块,用于判断所述模运算模块得到的所述第十四数据与所述第三数据是否相等;
所述数据分组组合模块,用于当所述判断子模块判定所述第十四数据与所述第三数据相等时,根据预设数据分组标识符和所述签名数据生成模块生成的所述签名数据组合为数据分组。
26.如权利要求14所述的个人化设备,其特征在于,还包括:第一判断模块,用于判断所述获取模块获取到的所述静态数据中是否包括静态数据认证标签列表;
第二判断模块,用于当所述第一判断模块判定所述静态数据中包括静态数据认证标签列表时判断静态数据认证标签列表中是否只包含应用交互特征的标签;
所述待签名数据组织模块,用于当所述第一判断模块判定所述静态数据中不包括静态数据认证标签列表时,根据预设格式组织包含所述获取模块获取到的所述静态数据的待签名数据;还用于当所述第二判断模块判定所述静态数据认证标签列表中只包含应用交互特征的标签时,根据预设格式组织包含所述获取模块获取到的所述静态数据的待签名数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710637779.1A CN107302437B (zh) | 2017-07-31 | 2017-07-31 | 一种脱机认证数据的个人化方法及个人化设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710637779.1A CN107302437B (zh) | 2017-07-31 | 2017-07-31 | 一种脱机认证数据的个人化方法及个人化设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107302437A true CN107302437A (zh) | 2017-10-27 |
CN107302437B CN107302437B (zh) | 2019-10-08 |
Family
ID=60134142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710637779.1A Active CN107302437B (zh) | 2017-07-31 | 2017-07-31 | 一种脱机认证数据的个人化方法及个人化设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107302437B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108039947A (zh) * | 2017-12-05 | 2018-05-15 | 飞天诚信科技股份有限公司 | 一种利用协处理器抗攻击的sm2签名方法 |
CN108197690A (zh) * | 2017-12-28 | 2018-06-22 | 金邦达有限公司 | 支付卡、开票***及开票方法 |
CN109167788A (zh) * | 2018-09-07 | 2019-01-08 | 飞天诚信科技股份有限公司 | 一种具有动态验证码的金融ic卡的个人化方法和*** |
CN110768799A (zh) * | 2019-12-30 | 2020-02-07 | ***股份有限公司 | 数字签名方法、装置、设备及介质、*** |
CN111083691A (zh) * | 2019-12-12 | 2020-04-28 | 恒宝股份有限公司 | 一种eSIM卡的初始化方法及其初始化*** |
CN111444242A (zh) * | 2020-03-27 | 2020-07-24 | 苏州链原信息科技有限公司 | 用于数据等价性校验的方法、电子设备及计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610153A (zh) * | 2008-06-20 | 2009-12-23 | 航天信息股份有限公司 | 基于椭圆曲线签名算法的电子签章认证方法 |
CN103580850A (zh) * | 2013-11-13 | 2014-02-12 | 成都卫士通信息产业股份有限公司 | 一种基于任务机制的数据准备管理方法 |
CN104282096A (zh) * | 2013-07-08 | 2015-01-14 | ***股份有限公司 | 实现数字签名的方法以及用于实现数字签名的pos终端 |
CN104639329A (zh) * | 2015-02-02 | 2015-05-20 | 浙江大学 | 基于椭圆曲线码的用户身份相互认证方法 |
CN105205423A (zh) * | 2015-10-27 | 2015-12-30 | 成都卫士通信息产业股份有限公司 | 一种金融ic卡制卡数据生成方法 |
-
2017
- 2017-07-31 CN CN201710637779.1A patent/CN107302437B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610153A (zh) * | 2008-06-20 | 2009-12-23 | 航天信息股份有限公司 | 基于椭圆曲线签名算法的电子签章认证方法 |
CN104282096A (zh) * | 2013-07-08 | 2015-01-14 | ***股份有限公司 | 实现数字签名的方法以及用于实现数字签名的pos终端 |
CN103580850A (zh) * | 2013-11-13 | 2014-02-12 | 成都卫士通信息产业股份有限公司 | 一种基于任务机制的数据准备管理方法 |
CN104639329A (zh) * | 2015-02-02 | 2015-05-20 | 浙江大学 | 基于椭圆曲线码的用户身份相互认证方法 |
CN105205423A (zh) * | 2015-10-27 | 2015-12-30 | 成都卫士通信息产业股份有限公司 | 一种金融ic卡制卡数据生成方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108039947A (zh) * | 2017-12-05 | 2018-05-15 | 飞天诚信科技股份有限公司 | 一种利用协处理器抗攻击的sm2签名方法 |
CN108039947B (zh) * | 2017-12-05 | 2020-10-13 | 飞天诚信科技股份有限公司 | 一种利用协处理器抗攻击的sm2签名方法 |
CN108197690A (zh) * | 2017-12-28 | 2018-06-22 | 金邦达有限公司 | 支付卡、开票***及开票方法 |
CN108197690B (zh) * | 2017-12-28 | 2021-07-13 | 金邦达有限公司 | 支付卡、开票***及开票方法 |
CN109167788A (zh) * | 2018-09-07 | 2019-01-08 | 飞天诚信科技股份有限公司 | 一种具有动态验证码的金融ic卡的个人化方法和*** |
CN111083691A (zh) * | 2019-12-12 | 2020-04-28 | 恒宝股份有限公司 | 一种eSIM卡的初始化方法及其初始化*** |
CN110768799A (zh) * | 2019-12-30 | 2020-02-07 | ***股份有限公司 | 数字签名方法、装置、设备及介质、*** |
CN110768799B (zh) * | 2019-12-30 | 2020-04-14 | ***股份有限公司 | 数字签名方法、装置、设备及介质、*** |
CN111444242A (zh) * | 2020-03-27 | 2020-07-24 | 苏州链原信息科技有限公司 | 用于数据等价性校验的方法、电子设备及计算机存储介质 |
CN111444242B (zh) * | 2020-03-27 | 2023-11-14 | 苏州链原信息科技有限公司 | 用于数据等价性校验的方法、电子设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107302437B (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107302437B (zh) | 一种脱机认证数据的个人化方法及个人化设备 | |
CN107276754B (zh) | 一种基于区块链大量生成私钥的方法及装置 | |
CN106407814A (zh) | 烧片镜像签名认证方法与终端以及烧录方法与*** | |
CN103778374B (zh) | 可信终端、双信道卡、抗克隆芯片、芯片指纹和抗信道攻击的方法 | |
CN104200153A (zh) | 一种启动验证方法和*** | |
CN108805538A (zh) | 一种数字货币交易方法和装置 | |
CN104811310A (zh) | 一种展示方法及穿戴设备 | |
CN108009445A (zh) | 一种半中心化的可信数据管理*** | |
CN108876605A (zh) | 数字资产交易方法及装置 | |
CN109067544A (zh) | 一种软硬结合的私钥验证方法、装置及*** | |
CN106547648A (zh) | 一种备份数据处理方法及装置 | |
CN104504567A (zh) | 一种小额支付卡的充值方法及装置 | |
CN106296177A (zh) | 基于银行移动应用的数据处理方法和设备 | |
CN113450092A (zh) | 一种基于区块链网络的物品安全高效交易方法、***及存储介质 | |
JP2997483B2 (ja) | 検証用データ生成装置 | |
CN106251143B (zh) | 一种基于nfc识别的安全验证方法及装置 | |
CN106096700A (zh) | 电子标签加密方法及其数据读取方法 | |
CN102685121A (zh) | 一种数字签名方法和装置 | |
DE19920744A1 (de) | Verfahren zur Sicherung der Echtheit von Produkten | |
CN112258317A (zh) | 基于人工智能的线上信贷方法、装置、计算机设备及介质 | |
CN108830616A (zh) | 基于区块链的产品防伪方法、电子设备、存储介质及*** | |
CN108111507A (zh) | 一种设备远程升级的方法及*** | |
CN107093078A (zh) | 芯片卡发卡***及方法 | |
CN106790237A (zh) | 一种基于生物特征识别的认证装置及方法 | |
CN106557450A (zh) | 一种快递提取设备身份认证方法及快递提取设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |