防失败的密钥保存模块的制作方法

文档序号:6362667阅读:235来源:国知局
专利名称:防失败的密钥保存模块的制作方法
技术领域
本发明涉及IC卡安全领域,特别是涉及一种防失败的密钥保存模块。
背景技术
当前,在涉及安全的应用系统中,会使用到密钥。密钥通常是保存在硬件设备内,一般是专用的密码机或密码卡。在硬件设备内保存密钥的介质是EEPR0M(电可擦除可编程只读存储器)或FLASH(闪存)。EEPROM和FLASH都有一定的写寿命,也有一定的故障率。如果保存密钥的介质出现问题,会导致严重的事故。目前通常的做法是为密钥增加一个奇偶校验防止错误,但增加奇偶校验只能发现部分数据被修改的问题,不能解决所有的数据失败问题。另外,如果介质损坏,则安全装置也不能继续使用。

发明内容
本发明要解决的技术问题是提供一种防失败的密钥保存模块,可以有效的防止保存在FLASH或EEPROM等存储介质中的密钥失败。为解决上述技术问题,本发明的防失败的密钥保存模块是采用如下技术方案实现的:所述密钥保存模块保存在存储介质中,由四个独立密钥空间组成,分别为第一密钥空间、第二密钥空间、第三密钥空间和第四密钥空间;为密钥数据计算海明码和CRC16编码;在每个密钥空间保存密钥数据、纠错码和校验码。采用本发明在保存密钥时,使用四倍的空间保存一个密钥,每个空间还保留存放纠错码和校验码的区域,能提高使用密钥设备的可靠性。本发明是使用安全芯片实现的PSAM(Purchase Secure Access Module销售终端安全管控模块)卡。通常安全芯片会有32K以上的可用存储介质空间,采用本发明,每个密钥的保存空间需要160字节,这样安全芯片能保存200个密钥。本发明可以用软件的方法实现,也可以用硬件实现。本发明提供四路密钥备份和两种数据(纠错和校验)完整性机制,这两种方式可以结合使用,能更好的防止密钥失败。本发明可以用于商密项目中。


下面结合附图与具体实施方式
对本发明作进一步详细的说明:附图是防失败的密钥保存模块结构示意图。
具体实施例方式结合附图所示,所述防失败的密钥保存模块保存在存储介质中(FLASH或EEPR0M),由四个独立密钥空间组成,分别为第一密钥空间、第二密钥空间、第三密钥空间和第四密钥空间。为密钥数据(密钥数据包含密钥值和针对密钥的一些必要描述,如密钥类型等)计算海明码和CRC16编码,并在每个密钥空间保存密钥数据。其中,第一密钥空间和第二密钥空间保存在存储介质的前面,第三密钥空间和第四密钥空间保存在存储介质的后面。四个密钥空间分开保存在存储介质中,是为了防止存储介质的大规模损坏。所述密钥保存模块提供了密钥备份、数据纠错和数据校验三种防错机制,从而了提高系统的可靠性。所述四个独立密钥空间保存相同的内容。在正常使用过程中,只使用前两个密钥空间,即第一密钥空间和第二密钥空间。第三密钥空间用于处理数据异常,第四密钥空间用于处理物理异常。在每个密钥空间,密钥数据的纠错码使用海明码。在每个密钥空间,密钥数据的校验码使用CRC16编码。即海明码是纠错码,CRC16编码是校验码。根据应用的要求,所述防失败的密钥保存模块有多种读取密钥的方式:方式一、读取第一密钥空间和第三密钥空间中的密钥数据,如果两组密钥数据相同,则使用第一密钥空间中的密钥数据;如果两组密钥数据不相同,则读取第二密钥空间中的密钥数据;如果第二密钥空间中的密钥数据与第一密钥空间中的密钥数据或第三密钥空间中的密钥数据的其中一组相同,则使用第二密钥空间中的密钥数据;如果第二密钥空间中的密钥数据和第一密钥空间中的密钥数据或第三密钥空间中的密钥数据都不相同,则采用其它的方法;如果第一密钥空间中的密钥数据、第二密钥空间中的密钥数据或第三密钥空间中的密钥数据有损坏,则损坏的密钥数据由第四密钥空间中的密钥数据代替。在通常情况下,这种方法读取密钥数据速度最快,但最坏情况下的时间最长。方式二、读取第一密钥空间中的密钥数据和CRC16值,如果CRC16编码验证正确,则使用第一密钥空间中的密钥数据;如果CRC16编码错误,读取第一密钥空间中的海明码并验证,如果海明码能纠错,则采用纠错后的密钥数据,如果海明码不能纠错,则依次用同样的方法使用第二密钥空间 第四密钥空间的密钥数据。这种方法读取密钥数据速度较快,但最坏情况下的时间也较长。方式三、读取第一密钥空间中的密钥数据和海明码,并使用海明码验证密钥数据,如果密钥数据正确,则使用第一密钥空间中的密钥数据;如果海明码验证密钥数据出错,并可以纠错,则对第一密钥空间中的密钥数据纠错,采用纠错后的数据;如果海明码不能纠错,则依次用同样的方法使用第二密钥空间 第四密钥空间的密钥数据。这种方法读取密钥数据速度较慢,但读密钥数据的时间稳定,最坏情况下的时间最短。方式四、读取第一密钥空间中的密钥数据、海明码和CRC16编码,并同时使用CRC16和海明码验证密钥数据,如果验证都通过,则使用第一密钥空间中的密钥数据,如果出错,则依次用同样的方法使用第二密钥空间 第四密钥空间的密钥数据。这种方法读取密钥速度最慢,但读密钥数据的时间稳定,可靠性最好。本发明可以大大提高密钥保存的可靠性。以上通过具体实施方式
对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
权利要求
1.一种防失败的密钥保存模块,其特征在于:所述密钥保存模块保存在存储介质中,由四个独立密钥空间组成,分别为第一密钥空间、第二密钥空间、第三密钥空间和第四密钥空间;为密钥数据计算海明码和CRC16编码,在每个密钥空间均保存密钥数据、纠错码和校验码。
2.如权利要求1所述的密钥保存模块,其特征在于:所述四个密钥空间分开保存在存储介质中;所述第一密钥空间和第二密钥空间保存在存储介质的前面,第三密钥空间和第四密钥空间保存在存储介质的后面。
3.如权利要求2所述的密钥保存模块,其特征在于:所述四个独立密钥空间中,保存相同的内容;在正常使用过程中,只使用前两个密钥空间;所述第三密钥空间用于处理数据异常,第四密钥空间用于处理物理异常。
4.如权利要求1-3任一所述的密钥保存模块,其特征在于:在每个密钥空间,密钥数据的纠错码使用海明码。
5.如权利要求1-3任一所述的密钥保存模块,其特征在于:在每个密钥空间,密钥数据的校验码使用CRC16编码。
6.如权利要求1-3任一所述的密钥保存模块,其特征在于:该密钥保存模块读取密钥的方式是,读取第一密钥空间和第三密钥空间中的密钥数据,如果两组密钥数据相同,则使用第一密钥空间中的密钥数据;如果两组密钥数据不相同,则读取第二密钥空间中的密钥数据;如果第二密钥空间中的密钥数据与第一密钥空间中的密钥数据或第三密钥空间中的密钥数据的其中一组相同,则使用第二密钥空间中的密钥数据;如果第二密钥空间中的密钥数据和第一密钥空间中的密钥数据或第三密钥空间中的密钥数据都不相同,则采用其它的方法;如果第一密钥空间中的密钥数据、第二密钥空间中的密钥数据或第三密钥空间中的密钥数据有损坏,则损坏的密钥数据由第四密钥空间中的密钥数据代替。
7.如权利要求1-3任一所述的密钥保存模块,其特征在于:该密钥保存模块读取密钥的方式是,取第一密钥空间中的密钥数据和CRC16值,如果CRC16编码验证正确,则使用第一密钥空间中的密钥数据;如果CRC16编码错误,读取第一密钥空间中的海明码并验证,如果海明码能纠错,则采用纠错后的密钥数据,如果海明码不能纠错,则依次用同样的方法使用第二密钥空间 第四密钥空间的密钥数据。
8.如权利要求1-3任一所述的密钥保存模块,其特征在于:该密钥保存模块读取密钥的方式是,读取第一密钥空间中的密钥数据和海明码,并使用海明码验证密钥数据,如果密钥数据正确,则使用第一密钥空间中的密钥数据;如果海明码验证密钥数据出错,并可以纠错,则对第一密钥空间中的密钥数据纠错,采用纠错后的数据;如果海明码不能纠错,则依次用同样的方法使用第二密钥空间 第四密钥空间的密钥数据。
9.如权利要求1-3任一所述的密钥保存模块,其特征在于:该密钥保存模块读取密钥的方式是,读取第一密钥空间中的密钥数据、海明码和CRC16编码,并同时使用CRC16和海明码验证密钥数据,如果验证都通过,则使用第一密钥空间中的密钥数据,如果出错,则依次用同样的方法使用第二密钥空间 第四密钥空间的密钥数据。
全文摘要
本发明公开了一种防失败的密钥保存模块,其中,所述密钥保存模块保存在存储介质中,由四个独立密钥空间组成,分别为第一密钥空间、第二密钥空间、第三密钥空间和第四密钥空间;为密钥数据计算海明码和CRC16编码,并在每个密钥空间保存密钥数据、纠错码和校验码。本发明可以有效的防止保存在FLASH或EEPROM等存储介质中的密钥失败。
文档编号G06F21/77GK103198269SQ20121000409
公开日2013年7月10日 申请日期2012年1月6日 优先权日2012年1月6日
发明者赫松龄, 陈星 , 杨寅, 田涛 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1