一种安全的java卡密钥存储方法_2

文档序号:9767657阅读:来源:国知局
Code)密钥;
[0033]S104、使用DEK密钥加密它本身来设置发行方安全域的安全通道初始密钥中的DEK密钥;
[0034]S105、将PUT KEY命令中的加密后的安全通道密钥直接存储在keyEncrypt1n接口类型的密钥对象中;所述安全通过密钥为除发行方安全域的安全通道初始密钥以外的发行方安全域的其他安全通道密钥和其他安全域的安全通道密钥;
[0035]S106、将PUT KEY命令中的公钥值直接存放到公钥对象中。
[0036]具体地说,在步骤SlOl中,在卡片初始化时,使用初始化脚本将发行方安全域的安全通道初始密钥写入卡内,为了保证密钥传输过程中的安全性,发行方安全域的安全通道初始密钥中的ENC密钥和MAC密钥的密钥值采用密文的方式存储到卡内,用于加密ENC密钥和MAC密钥的密钥是DEK密钥,由于在安全通道的安全通信过程中,只会使用到ENC密钥和MAC密钥,所以保证了这两个密钥的安全性,就保证了安全通道的安全通信过程的安全性,DEK密钥采用明文方式存储到卡内;
[0037]在步骤S102中,创建发行方安全域的实例,在此过程中,创建发行方安全域的安全通道初始密钥,初始密钥包括三个:ENC密钥、MAC密钥和DEK密钥,为了保证这三个密钥的存储安全,将这三个密钥都存放在密钥对象中,在创建密钥对象存储这三个密钥时,需要将这三个密钥都创建为是KeyEncrypt1n接口类型的,这样可以保证密钥在传输过程中是加密的,从而保证安全性:
[0038]在步骤S103中,由于发行方安全域的ENC密钥、MAC密钥和DEK密钥被创建为是KeyEncrypt1n接口类型的,所以在设置密钥时,要首先设置用于加密ENC密钥和MAC密钥的密钥,ENC密钥和MAC密钥的密文值是通过使用DEK密钥对ENC密钥和MAC密钥进行加密得到的,使用DEK密钥来设置ENC密钥和MAC密钥这两个KeyEncrypt1n接口类型密钥对象的keyCipher,保证密钥在底层存储时被正确的解密;
[0039]在步骤S104中,设置用于加密DEK密钥的密钥,通过使用DEK密钥对DEK密钥本身进行加密得到的密文值,使用DEK密钥来设置DEK密钥KeyEncrypt1n接口类型密钥对象的keyCipher,保证密钥在底层存储时被正确的解密;
[0040]在步骤S105中,除发行方安全域的安全通道初始密钥以外的发行方安全域的其他安全通道密钥和其他安全域的安全通道密钥都是通过PUT KEY命令由卡外发送到卡上的,在发送过程中,命令中的安全通道初始密钥是使用当前安全通道的会话密钥S-DEK被加密的,在命令处理时,保持安全通道密钥的加密状态,直接将命令中的加密后的ENC密钥、MAC密钥和DEK密钥分别存储在三个密钥对象中,这三个密钥对象都是KeyEncrypt1n接口类型的,使用当前安全通道的会话密钥S-DEK来设置这三个KeyEncrypt1n接口类型密钥对象的keyCipher,保证密钥在底层存储时被正确的解密;
[0041]在步骤S106中,在使用HJT KEY命令向卡片存放非对称密钥中的公钥时,由于公钥是公开的,所以在命令中公钥是以明文的方式出现在命令中的,在卡内对其进行存储时,也不需要对其进行加密后再存储,将其直接存放到一个公钥对象中,这样在使用过程中,可以直接使用该公钥对象,不需要重复设置公钥对象的模数和指数,提高程序的执行效率。
[0042]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明涉及的技术范围内,可以轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【主权项】
1.一种安全的JAVA卡密钥存储方法,其特征在于包括以下步骤: 卡片初始化,写入发行方安全域的安全通道初始密钥,并创建安全通道初始密钥对象; 使用加密的ENC密钥和MAC密钥设置安全通道初始密钥中的ENC密钥和MAC密钥; 使用DEK密钥加密安全通道初始密钥中的DEK密钥; 将PUT KEY命令中加密后的安全通道密钥值存储在密钥对象中,并将公钥值存至公钥对象中。2.根据权利要求1所述的方法,其特征在于,所述卡片初始化,写入发行方安全域的安全通道初始密钥,包括: 使用初始化脚本将发行方安全域的安全通道初始密钥写入卡内,发行方安全域的安全通道初始密钥中的ENC密钥和MAC密钥的密钥值采用密文的方式存储到卡内,DEK密钥采用明文方式存储到卡内;其中,DEK密钥用于加密ENC密钥和MAC密钥。3.根据权利要求2所述的方法,其特征在于,所述创建安全通道初始密钥对象包括: 创建发行方安全域的安全通道初始密钥,初始密钥包括三个:ENC密钥、MAC密钥和DEK密钥,创建安全通道初始密钥对象,保存这三个密钥。4.根据权利要求4所述的方法,其特征在于,所述使用加密的ENC密钥和MAC密钥设置安全通道初始密钥中的ENC包括: 在设置密钥时,要首先设置用于加密ENC密钥和MAC密钥的密钥,ENC密钥和MAC密钥的密文值是通过使用DEK密钥对ENC密钥和MAC密钥进行加密得到的。5.根据权利要求1至4任一所述的方法,其特征在于,所述将PUTKEY命令中加密后的安全通道密钥值存储在密钥对象中,包括: PUT KEY命令中的安全通道初始密钥通过安全通道的会话密钥S-DEK被加密的,在PUTKEY命令处理时,保持安全通道密钥的加密状态,直接将HJT KEY命令中的加密后的ENC密钥、MAC密钥和DEK密钥分别存储在三个密钥对象中,使用安全通道的会话密钥S-DEK来设置这三个密钥对象的keyCipher。6.根据权利要求5所述的方法,其特征在于,所述将公钥值存至公钥对象中,包括: 在使用PUT KEY命令向卡片存放非对称密钥中的公钥时,公钥以明文的方式出现在PUTKEY命令中,在卡内对其进行存储时,将其直接存放到一个公钥对象中。
【专利摘要】本发明公开了一种安全的JAVA卡密钥存储方法,包括以下步骤:卡片初始化,写入发行方安全域的安全通道初始密钥,并创建安全通道初始密钥对象;使用加密的ENC密钥和MAC密钥设置安全通道初始密钥中的ENC密钥和MAC密钥;使用DEK密钥加密安全通道初始密钥中的DEK密钥;将PUT?KEY命令中加密后的安全通道密钥值存储在密钥对象中,并将公钥值存至公钥对象中。采用本发明所述的方法,提高密钥存储时的封装性和安全性,并节省密钥使用时的时间。
【IPC分类】H04L9/08, G06K19/07, G06F21/34
【公开号】CN105530088
【申请号】CN201510555329
【发明人】毛云娟
【申请人】北京中电华大电子设计有限责任公司
【公开日】2016年4月27日
【申请日】2015年9月1日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1