CN108833094A - 基于Java卡的身份认证方法 - Google Patents
基于Java卡的身份认证方法 Download PDFInfo
- Publication number
- CN108833094A CN108833094A CN201810623051.8A CN201810623051A CN108833094A CN 108833094 A CN108833094 A CN 108833094A CN 201810623051 A CN201810623051 A CN 201810623051A CN 108833094 A CN108833094 A CN 108833094A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- card
- encryption
- java card
- 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.)
- Pending
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/3226—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 using a predetermined code, e.g. password, passphrase or PIN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于Java卡的身份认证方法,包括Java卡片与卡外实体,分别含有加密数据和密钥,对加密数据和密钥拆进行拆分、混合和重组处理,以及重复进行以上处理,将使用的多个加密数据和密钥进行以上操作,在某两步操作之间可将发送至发片的指令的一部分的存放位置由卡外实体改至卡中,仅当某一步正确执行才会将该部分指令发至卡外实体,以组成完整的指令。本发明将解密验证过程中使用的密钥切分为多段并分别存放在Java卡与卡外实体上,减少或消除一方数据泄露对另一方产生影响。
Description
技术领域:
本发明属于Java卡身份认证技术领域,具体涉及一种在Java卡上实现的身份认证中的密钥存储方法。
背景技术:
当前Java卡的使用在生活中越来越多,且在多应用的支持方面比Native卡更稳定,部分领域已经有替代Native卡的趋势,其中便有身份验证方面的应用;身份验证的功能使得Java卡可作为门禁卡使用,在身份验证的Applet(Java卡中的应用程序)中,根据不同情况,有很多种算法可以被采用,常见的有DES算法、3DES算法、RSA算法、或者使用MAC值的签名验签算法等;若使用DES算法,常规步骤为卡上生成随机数并将随机数发至卡外实体,卡与卡外实体均将随机数加密,然后卡将加密后的数据再发至卡外实体进行对比,然后再有后续的验证通过等指令,这就需要卡上和卡外实体中均有相同的密钥才能通过对比这一步骤;同样的密钥放置在卡上和卡外实体中,若一方的数据由于某些原因造成泄露,另一方的安全也无法保证。
发明内容:
为了使Java卡和卡外实体中数据的安全能得到更好的保障,本发明根据Java卡中Applet编程的特点,提供一种密钥的存放方法,减少或消除一方的数据泄露对另一方造成的影响。
本发明采用的技术方案是:一种基于Java卡的身份认证方法,包括Java卡片与卡外实体,分别含有加密数据和密钥,对加密数据和密钥拆进行如下操作步骤:
(1)拆分:分别将加密数据和密钥拆分为多段数据,由于常规生成的加密数据和密钥的字节数均为8的倍数,拆分出的数据的字节位数也应是8或8的倍数,例如32字节的加密数据拆为两个8字节和一个16字节,24字节密钥拆为三个8字节,之后将某一段或两段密钥存放在卡中,剩余密钥存放在卡外实体中,之后由卡外实体中的程序进行混合。
(2)混合:卡外实体中的程序会将拆分并分配过来的密钥和拆分后的加密数据进行混合;若放置两段密钥Key1和Key2在卡外实体中,则与拆分过后的三段加密数据EnData1、EnData2、EnData3进行混合交叉放置,形成一串新的数据,较为简单仅进行加密数据和密钥间的交叉放置的一种情况为:
EnData1-Key1-EnData2-Key2-EnData3;
稍加打乱顺序的一种放置的情况为:
EnData3-Key2-EnData1-Key1-EnData2。
每段数据在混合数据中存放的偏移位和数据的长度是重组数据的关键,在将加密数据和密钥进行重组时会用到。
(3)重组:混合数据发至Java卡片后,由Java卡片中的程序对该数据进行重组,来重新得到所需数据;利用每段数据的偏移量和数据长度将三段加密数据从混合数据中提取出来并重组,用同样的方法将两段密钥提取出来并和卡中存放的另一部分密钥组合成为完整的密钥,加密数据和密钥均得到之后便可进行加解密的验证。
(4)重复:将使用的多个加密数据和密钥进行以上操作,在某两步操作之间可将发送至发片的指令的一部分的存放位置由卡外实体改至卡中,仅当某一步正确执行才会将该部分指令发至卡外实体,以组成完整的指令。
本发明的有益效果是:本发明将解密验证过程中使用的密钥切分为多段并分别存放在Java卡与卡外实体上,减少或消除一方数据泄露对另一方产生影响。
本发明将Java卡与卡外实体两个对象在验证过程中使用的密钥分为多个部分,分别存放在两个对象中,仅在满足一定条件的情况下密钥才在一个对象中凑齐并在解密验证中使用,且密钥和验证步骤均可以有多个,在完成一个验证之后下一个验证步骤所需要的数据才会被提供。
附图说明
图1是卡外实体实现所设定的功能框图。
图2是加密数据和部分密钥的混合形式框图。
具体实施方式
实施例1:如图1 所示,本实施例包含两个对象,Java卡与卡外实体。
卡外实体一般为读卡器等可与Java卡片进行通信的设备,发送的指令符合GP规范,为APDU指令。
卡外实体内有预设程序,编程使其具备的功能有:
1. 发送所需调用应用的AID。
2. 发送调用解密功能的INS1指令Data1,数据内容为已加密数据Enc1和部分密钥Exkey1的混合,密钥参杂在加密数据中,Java卡片接收后,然后进行解密和验证。
3. 保存有不完整的指令Data2,包含混合的加密数据Enc2与部分密钥Exkey2,但缺少启动下一步验证的INS2指令,需要在前一步验证通过后由Java卡片发送来获得,取得之后组成完整的Data2指令,发送给Java卡片后执行具体的INS2指令,提取加密数据和卡外实体内的密钥,组合成完整密钥,进行解密验证,通过后Java卡片会发送相应指令以完成预设的功能。
卡片为常规Java卡,卡内有解密所需要的应用和部分密钥,应用由不同INS对应多段程序。
编程使其具备的功能有:
1. 接收卡外实体发送的指令,AID正确才能调用卡中的Applet应用。
2. 接收调用解密功能的INS1指令Data1,接收后将指令所含的混合数据进行提取并放置到对应数组中,混合数据由加密数据Enc1和一部分密钥ExKey1组成,另一部分密钥InKey1即在该程序中,接收Data1之后将加密数据Enc1提取并单独放置一个数组EnData1,提取ExKey1并和InKey1合并成完整的密钥Key1,即可用密钥Key1来对加密数据EnData1来进行解密,并验证结果,通过后会向卡外实体发送一条指令,该指令包含有卡外实体中Data2所需的INS2数据。
3. 接收到完整的Data2指令后,卡内后续INS2程序即可被调用,Data2中也包含了由加密数据Enc2和一部分密钥ExKey2组成的混合数据,由程序提取出后生成加密数组EnData2,和与Inkey2合并成的完整密钥Key2,再由Key2将EnData2进行解密,通过验证后Java卡片会发送最终的指令给卡外实体,使得卡外实体可以实现所设定的功能。
加密数据和部分密钥的混合是预设,由于加密算法的特殊性,密钥和加密内容长度都为8的倍数,在实施例中,EnData1和EnData2都为64字节,Key1和Key2都为64字节,ExKey1和InKey1,ExKey2和InKey2都为32字节,Data1为EnData1与ExKey1的混合,即为96字节,同理,Data2为96字节EnData2与ExKey2的混合,与数据开头5字节的INS合并一共为101字节,数据混合形式如图2所示。
如图2中,当卡中程序从收到的指令中提取密钥时,需将数据中的30至37位、54至61位、78至85位和94至101位进行提取(前面有5字节的INS指令),然后与卡内的数据重组即可,按照剩余数据的位数提取出加密数据即可进行解密验证。
实施例2:一种基于Java卡的身份认证方法,包括Java卡片与卡外实体,分别含有加密数据和密钥,操作步骤如下:
分别将加密数据和密钥拆分为多段数据,由于常规生成的加密数据和密钥的字节数均为8的倍数,拆分出的数据的字节位数也应是8或8的倍数,例如32字节的加密数据拆为两个8字节和一个16字节,24字节密钥拆为三个8字节,之后将某一段或两段密钥存放在卡中,剩余密钥存放在卡外实体中,之后由卡外实体中的程序进行混合。
卡外实体中的程序会将拆分并分配过来的密钥和拆分后的加密数据进行混合;若放置两段密钥Key1和Key2在卡外实体中,则与拆分过后的三段加密数据EnData1、EnData2、EnData3进行混合交叉放置,形成一串新的数据。
例如:进行加密数据和密钥间的交叉放置的一种情况为:
EnData1-Key1-EnData2-Key2-EnData3;
稍加打乱顺序的一种放置的情况为:
EnData3-Key2-EnData1-Key1-EnData2。
每段数据在混合数据中存放的偏移位和数据的长度非常重要,是重组数据的关键,在将加密数据和密钥进行重组时会用到;
混合数据发至Java卡片后,由Java卡片中的程序对该数据进行重组,来重新得到所需数据;利用每段数据的偏移量和数据长度将三段加密数据从混合数据中提取出来并重组,用同样的方法将两段密钥提取出来并和卡中存放的另一部分密钥组合成为完整的密钥,加密数据和密钥均得到之后便可进行加解密的验证;
将使用的多个加密数据和密钥进行以上操作,在某两步操作之间可将发送至发片的指令的一部分的存放位置由卡外实体改至卡中,仅当某一步正确执行才会将该部分指令发至卡外实体,以组成完整的指令。
Claims (4)
1.一种基于Java卡的身份认证方法,包括Java卡片与卡外实体,分别含有加密数据和密钥,其特征在于,对加密数据和密钥拆进行如下操作步骤:
(1)拆分:分别将加密数据和密钥拆分为多段数据,之后将某一段或两段密钥存放在卡中,剩余密钥存放在卡外实体中,之后由卡外实体中的程序进行混合;
(2)混合:卡外实体中的程序会将拆分并分配过来的密钥和拆分后的加密数据进行混合;若放置两段密钥Key1和Key2在卡外实体中,则与拆分过后的三段加密数据EnData1、EnData2、EnData3进行混合交叉放置,形成一串新的数据,每段数据在混合数据中存放的偏移位和数据的长度是重组数据的关键,在将加密数据和密钥进行重组时会用到;
(3)重组:混合数据发至Java卡片后,由Java卡片中的程序对该数据进行重组,来重新得到所需数据;利用每段数据的偏移量和数据长度将三段加密数据从混合数据中提取出来并重组,用同样的方法将两段密钥提取出来并和卡中存放的另一部分密钥组合成为完整的密钥,加密数据和密钥均得到之后便可进行加解密的验证;
(4)重复:将使用的多个加密数据和密钥进行以上操作,在某两步操作之间可将发送至发片的指令的一部分的存放位置由卡外实体改至卡中,仅当某一步正确执行才会将该部分指令发至卡外实体,以组成完整的指令。
2.根据权利要求1所述的基于Java卡的身份认证方法,其特征在于,步骤(1)中,将加密数据和密钥拆分为多段数据时,生成的加密数据和密钥的字节数均为8的倍数,拆分出的数据的字节位数为8或8的倍数。
3.根据权利要求2所述的基于Java卡的身份认证方法,其特征在于,32字节的加密数据拆为两个8字节和一个16字节,24字节密钥拆为三个8字节。
4.根据权利要求1所述的基于Java卡的身份认证方法,其特征在于,
进行加密数据和密钥间的交叉放置为:
EnData1-Key1-EnData2-Key2-EnData3;
打乱顺序的一种放置的情况为:
EnData3-Key2-EnData1-Key1-EnData2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810623051.8A CN108833094A (zh) | 2018-06-15 | 2018-06-15 | 基于Java卡的身份认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810623051.8A CN108833094A (zh) | 2018-06-15 | 2018-06-15 | 基于Java卡的身份认证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108833094A true CN108833094A (zh) | 2018-11-16 |
Family
ID=64142147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810623051.8A Pending CN108833094A (zh) | 2018-06-15 | 2018-06-15 | 基于Java卡的身份认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108833094A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1299497A (zh) * | 1998-05-07 | 2001-06-13 | 德国捷德有限公司 | 在消息传输网内鉴别智能卡的方法 |
US7111173B1 (en) * | 1998-09-01 | 2006-09-19 | Tecsec, Inc. | Encryption process including a biometric unit |
CN103312494A (zh) * | 2012-03-14 | 2013-09-18 | 中国人民银行印制科学技术研究所 | 数据分散存储方法、数据还原方法及数据卡 |
CN103490875A (zh) * | 2013-09-30 | 2014-01-01 | 上海新储集成电路有限公司 | 一种大容量智能卡密钥的保护方法 |
CN104699559A (zh) * | 2013-12-04 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 分布式数据备份方法和系统 |
CN107666382A (zh) * | 2016-07-28 | 2018-02-06 | 湖南移商动力网络技术有限公司 | 一种基于Java卡的应用密钥管理系统 |
-
2018
- 2018-06-15 CN CN201810623051.8A patent/CN108833094A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1299497A (zh) * | 1998-05-07 | 2001-06-13 | 德国捷德有限公司 | 在消息传输网内鉴别智能卡的方法 |
US7111173B1 (en) * | 1998-09-01 | 2006-09-19 | Tecsec, Inc. | Encryption process including a biometric unit |
CN103312494A (zh) * | 2012-03-14 | 2013-09-18 | 中国人民银行印制科学技术研究所 | 数据分散存储方法、数据还原方法及数据卡 |
CN103490875A (zh) * | 2013-09-30 | 2014-01-01 | 上海新储集成电路有限公司 | 一种大容量智能卡密钥的保护方法 |
CN104699559A (zh) * | 2013-12-04 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 分布式数据备份方法和系统 |
CN107666382A (zh) * | 2016-07-28 | 2018-02-06 | 湖南移商动力网络技术有限公司 | 一种基于Java卡的应用密钥管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102322118B1 (ko) | 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법 | |
CN109921894B (zh) | 数据传输加密方法、装置及存储介质、服务器 | |
US9672385B2 (en) | Method of improving FPGA security using authorization codes | |
CN105429761B (zh) | 一种密钥生成方法及装置 | |
CN109359601A (zh) | 身份验证识别方法、电子装置及计算机可读存储介质 | |
EP3732609A1 (en) | Secure crypto system attributes | |
CN106452770B (zh) | 一种数据加密方法、解密方法、装置和系统 | |
CN101488858A (zh) | 需要采用穷举法解密的随机加密方法 | |
EP1977552A2 (en) | Method and system for personalizing smart cards using asymmetric key cryptography | |
EP3320646B1 (en) | Biometric security for cryptographic system | |
CN108848058A (zh) | 智能合约处理方法及区块链系统 | |
CN104283668A (zh) | 基于移动终端获得应用密码的方法及装置 | |
CN112787813B (zh) | 一种基于可信执行环境的身份认证方法 | |
CN111404682A (zh) | 一种Android环境密钥分段处理方法及装置 | |
CN107273723A (zh) | 一种基于so文件加壳的Android平台应用软件保护方法 | |
US20220284112A1 (en) | System and method for securely transferring data | |
US9571273B2 (en) | Method and system for the accelerated decryption of cryptographically protected user data units | |
CN117240625A (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
CN110880965A (zh) | 一种外发电子文档加密方法、系统、终端及存储介质 | |
CN110113475A (zh) | 基于联发科mtk处理器通信协议的安卓系统手机屏幕锁破解方法 | |
CN107278357B (zh) | 密码系统和方法 | |
EP1725939A1 (en) | Storing of encrypted data in the memory of a portable electronic device | |
CN108833094A (zh) | 基于Java卡的身份认证方法 | |
CN110110504A (zh) | 基于联发科mtk处理器通信协议的安卓系统手机应用锁破解方法 | |
CN106650342A (zh) | 一种Jar包加固方法及系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181116 |