CN103580872B - 一种用于密钥生成与管理的系统及方法 - Google Patents

一种用于密钥生成与管理的系统及方法 Download PDF

Info

Publication number
CN103580872B
CN103580872B CN201310556462.7A CN201310556462A CN103580872B CN 103580872 B CN103580872 B CN 103580872B CN 201310556462 A CN201310556462 A CN 201310556462A CN 103580872 B CN103580872 B CN 103580872B
Authority
CN
China
Prior art keywords
key
card
data
unit
hardware 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.)
Active
Application number
CN201310556462.7A
Other languages
English (en)
Other versions
CN103580872A (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.)
Beijing Huada Zhibao Electronic System Co Ltd
Original Assignee
Beijing Huada Zhibao Electronic System 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 Beijing Huada Zhibao Electronic System Co Ltd filed Critical Beijing Huada Zhibao Electronic System Co Ltd
Priority to CN201310556462.7A priority Critical patent/CN103580872B/zh
Publication of CN103580872A publication Critical patent/CN103580872A/zh
Application granted granted Critical
Publication of CN103580872B publication Critical patent/CN103580872B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提出一种用于密钥生成与管理的系统及方法,系统启动时需要通过智能设备进行身份识别;输入多组初始数据;各数据之间相互独立;初始数据存储在安全硬件设备中;安全硬件设备具有防伪造、防破解功能;使用安全硬件设备根据某种计算规则生成系统根密钥;将系统根密钥加密存储在安全硬件设备中;将根密钥通过密钥分散因子进行分散,得到所需的应用密钥;应用密钥存储在安全硬件设备中;从安全硬件设备中恢复根密钥。在整个系统中,密钥的明文数值仅保存在安全硬件设备中;系统在访问所有安全硬件设备前,均对安全设备进行真伪鉴别;系统在启动、操作的各流程中均对操作人员进行识别;密钥的生成规则外界无法得知;运算过程中需要的密钥数据均以密文的方式存在;系统安全性高。

Description

一种用于密钥生成与管理的系统及方法
技术领域
本发明属于信息安全领域,尤其涉及一种用于进行密钥生成及管理的系统及方法。
背景技术
密钥生成及管理系统(以下简称密管系统)被广泛应用于信息安全领域,是现代社会中信息安全的基础系统之一。在各种使用密钥的领域,都需要通过不同层级的密钥分散过程得到整个系统中的所有密钥。在这一过程中,最顶级的密钥,即系统根密钥,是整个密管系统中最重要、最核心的密钥。根密钥生成、管理过程中的安全性、可靠性直接决定了整个系统的安全性和可靠性。系统中的其它密钥都是由系统根密钥经过若干次密钥分散得到的。
由于使用于信息安全领域,因此对于密管系统来说,安全性是其最重要的评价指标。通常来说,即使采用专用安全性设计,软件系统的安全性也不如专门采用安全硬件设备(例如智能卡)。因此,在密管系统中引入专用安全硬件设备将极大的提高整个系统的安全性。
在通常的密管系统中,经常采用特定的运算方法得到系统根密钥,作为密管系统的起点,但在这一过程中,都是采用纯软件的方式进行运算。这就意味着,在软件工作的某一瞬间,运行该软件的电脑内存中保存有该系统根密钥的明文数据。因此,如果攻击者使用特定手段监控该电脑内存,就可以获知该根密钥。这将会极大地威胁密管系统的安全性。此外,由于该软件必须运行于操作系统(例如Windows、Linux)之上,操作系统的漏洞以及恶意软件都会成为系统安全性的隐患。因此,使用纯软件方式进行密钥产生和管理存在相当大的系统风险。因此,如果在生成系统根密钥的过程中引入安全硬件设备,可以确保电脑内存中不保存系统根密钥,从而提高系统的安全性。
此外,尽管大多数密管系统在启动前都需要识别操作者身份,确保只有合法操作者可以控制该软件,但大都采用软件模式进行身份识别。例如,密管系统将操作者身份识别信息存放于数据库中,在识别时通过访问数据库进行身份确认;很多密管软件尽管采用硬件识别模式,但是在访问硬件时并不确认该硬件的真伪,例如,不进行内部认证过程,而仅仅依靠读取硬件内保存的身份信息进行身份识别。这些都给攻击者实施攻击提供的机会。
在很多密管系统中,存储初始输入数据的信息存储于安全硬件设备中,但是在读取这些设备时,系统并不鉴别该设备的真伪。这样,攻击者就可能通过伪造该设备,向系统中注入非法信息,从而到达对系统进行攻击的目的。
因此,本发明提供了一种新的用于密钥生成及管理的系统。通过将多种硬件设备应用于本系统中,可以大大提高系统的安全性。
发明内容
本发明提供一种密钥生成和管理的方法和系统,通过由初始数据根据密钥计算规则在安全硬件设备中生成各密钥,并存储于加密机中,解决了密钥生成和管理的问题。
一种用于密钥生成与管理的系统,其包括身份验证装置,用于在系统启动时,利用存储操作者身份信息的安全硬件设备对操作者的身份进行识别;密钥初始数据生成装置,用于将多组任意且相互独立的数据存储在多台不同的安全硬件设备中,作为生成根密钥的初始数据;根密钥生成装置,通过用于得到系统根密钥的安全硬件设备,根据密钥计算规则,对初始数据进行运算,生成系统的根密钥,并安全导入用于存储密钥的加密机中;根密钥备份装置,将加密机中保存的系统根密钥备份到另外的安全硬件设备中;根密钥恢复装置,将存储在另外的安全硬件设备中的备份根密钥,导入到加密机内部,同时在恢复过程中对该另外的安全硬件设备进行验证,防止非法的备份设备的使用。
其中,身份验证装置,通过对该装置的验证确保非法装置无法通过身份验证,并通过输入验证码验证使用者的身份是否合法,从而防止其他人员的非法操作;
其中,密钥初始数据生成装置,通过将N组任意且相互独立的数据保存在不同的安全硬件设备中,从而防止在获得其中部分数据的情况下生成根密钥的可能;
其中,根密钥生成装置,通过安全硬件设备,根据密钥计算规则,生成系统的根密钥,并安全导入用于存储密钥的加密机中,其中密钥计算规则包括,密钥计算参数和密钥计算方法;
其中,根密钥备份装置,通过密钥计算规则,将加密机中保存的系统根密钥备份到另外的安全硬件设备中,其中密钥计算规则包括,备份的机制及备份时需要的参数,从而确保系统根密钥在系统发生故障的情况下可以被恢复;
其中,根密钥恢复装置,通过密钥计算规则,将存储在安全硬件设备中的备份的根密钥,导入到密管系统的加密机内部,同时在恢复过程中对安全硬件设备进行验证,防止非法的备份设备的使用。
下面对该密钥生成和管理的方法和系统,作进一步具体描述:在系统启动前,必须对操作者进行身份验证;在对系统进行操作前,必须确保有两名合法操作者进行操作;产生N组(N>=3)独立数据(称之为初始数据),存储于安全硬件设备内部特殊的区域;由另一台专用安全硬件设备对这初始数据计算,得到根密钥;根密钥在通过传输密钥的加密保护后导入加密机;根密钥可以备份在备份母卡中,并由母卡认证卡进行保护;备份母卡中的密钥可以恢复到加密机中。
其中,身份验证装置,包括:内部认证单元和身份验证单元;
所述内部认证单元,用于验证该安全硬件设备是否是属于密管系统中的设备,其中验证所依据的计算规则,包括计算所需密钥的获取和计算方法;
所述身份验证单元,用于检测使用该安全硬件设备的人员的身份是否合法,防止非法人员使用不正确的验证码进入系统,其中验证规则包括验证输入参数和验证计算方法。
密钥初始数据生成装置,包括:双角色认证单元、初始数据生成单元和初始数据存储单元;
所述双角色认证单元,用于进行两种不同身份的认证,包括密钥管理员和系统管理员的认证,校验插入的安全硬件设备类型是否合法及输入的校验码是否正确,其中校验参数包括安全硬件设备的PIN值和设备的类型参数;
所述初始数据生成单元,用于在成功执行完所述双角色认证后,依次输入指定长度M(M >= 16)的任意数据,重复N(N>=3)次,得到N组互相独立的初始数据,其中的数据,包括初始数据参数,初始数据编号;
所述初始数据存储单元,用于将N组数据各自独立保存到N台不同的安全硬件设备内部的特殊区域,这些存储了初始数据的安全硬件设备称之为初始数据存储器。
根密钥生成方法,包括:
从N(N>=3)台不同的安全硬件设备中获取初始数据,将初始数据发送到安全硬件设备中,由安全硬件设备通过某种计算规则,在其内部生成根密钥,然后将计算后的结果以密文的方式导入到加密机内部,安全硬件设备内部不保存计算结果,其中计算规则外界无法得知。
根密钥生成的装置,包括:双角色认证单元,初始数据校验单元,内部认证单元,卡类型检查单元,密钥计算单元,密钥传输单元。
所述双角色认证单元,用于进行两种不同身份的认证,包括密钥管理员和系统管理员的认证,校验插入的安全硬件设备类型是否匹配及输入的校验码是否正确,其中校验参数包括安全硬件设备的PIN值和设备的类型参数;
所述初始数据校验单元,用于校验计算根密钥的所需的初始数据长度及数据是否合法,初始数据从存储初始密钥数据的安全硬件设备中获得,作为计算根密钥的输入;
所述内部认证单元,用于验证该安全硬件设备是否是属于密管系统中所需要的设备,其中验证所依据的计算规则,包括计算所需要的密钥的获取和计算方法;
所述卡类型检查单元,用于检查当前插入到密管系统中的安全硬件设备,是否为计算根密钥的设备,其中检查的规则包括卡类型参数;
所述密钥计算单元,用于计算生成系统的根密钥,由安全硬件设备通过根密钥计算规则,在其内部生成,然后将计算后的结果以密文的方式导入到加密机内部,安全硬件设备内部不保留计算结果,其中计算规则外界无法得知;其中根密钥计算规则,包括根密钥计算方法和根密钥计算因子参数;
所述密钥传输单元,用于将所述密钥计算单元的计算结果根据数据加密规则,以密文的方式导入到加密机内部,其中数据加密规则,包括根密钥数据参数、加密机的传输密钥参数和计算方法。
根据本发明的上述系统,根密钥计算规则,包括:种子密钥生成规则和根密钥计算规则;
所述种子密钥生成规则,用于根据初始数据计算得到种子密钥,其规则如下:1,将N组(N>=3)长度为M的初始数据顺序排列,得到一组长度为N*M的总初始数据;2,若数据总长度N*M不是16的整数倍,则在数据之后添加十六进制数字“0x80”,如仍不是16的整数倍,则继续添加“0x00”直至补齐至16的整数倍;3,将第2步得到的数据循环左移3位;第3步得到的数据即为种子密钥;
所述根密钥计算规则,用于根据种子密钥计算得到根密钥,其规则如下:1,将种子密钥按照16字节分组,得到L组长度为16字节的数据;2,使用第一组数据对剩余数据进行3DES CBC方式加密;3,加密之后得到的最后16字节数据即为根密钥。
根密钥备份方法包括:根据用户发送的数据,创建相应的母卡和母卡认证卡的文件结构,保存母卡和母卡认证卡的卡类型数据和匹配数据;向母卡发送指令,产生16字节的随机数M1;用加密机原来的导入密钥将随机数M1导入到加密机内部,作为加密机的保护密钥;同时将随机数M1装载到母卡中,替换母卡的主控密钥;将随机数M1装载到母卡认证卡中,作为加密和计算的MAC的计算密钥;向母卡发送指令,产生16字节的随机数M2;同时将随机数M2装载到母卡中,作为母卡的外部认证密钥,对母卡中保存的密钥进行操作前需要通过本外部认证密钥的认证;将随机数M2装载到母卡认证卡中,作为加密和计算的MAC的计算密钥;加密机使用新的保护密钥M1,将加密机内部的系统根密钥导出;用母卡新的主控密钥将导出的系统根密钥导入到备份母卡中;向母卡发送指令,产生16字节的随机数M4;将随机数M4装载到母卡认证卡中,替换认母卡认证卡的主控密钥。
根密钥备份装置,包括:接收单元、存储单元、随机数生成单元、计算单元、密钥更新单元、传输单元;
所述接收单元,用于接收用户发送的备份母卡和母卡认证卡的数据;
所述存储单元,用于存储母卡及母卡认证卡的文件结构数据,以及接收到数据,其中,文件结构数据包括文件结构的大小,卡类型数据,母卡和母卡认证卡的匹配数据;
所述随机数生成单元,用于产生指定长度的任意的数据;
所述计算单元,用于获取所述随机数生成单元产生的任意数据,作为计算单元的输入,利用加密机中的传输密钥作为计算的密钥,根据相应计算规则,计算出密文数据和MAC;
所述密钥更新单元,用于更新母卡和母卡认证卡中相应的密钥;
所述传输单元,用于将所述计算单元计算后的结果以密文的方式导入到加密机内部。
根密钥恢复方法,包括:通过外部认证,由母卡认证卡对母卡进行认证,获取母卡的相关权限;向母卡发送指令,产生16字节的随机数,用于替换母卡中的导出密钥;用加密机的导入密钥将上述产生的16字节的随机数导入到加密机中,作为加密机的新的保护密钥;母卡使用被替换后的新的导出密钥,导出保存在母卡中的系统根密钥;加密机使用新的保护密钥将母卡中导出的系统根密钥以密文和MAC的方式,导入到加密机内部。
根密钥恢复装置,包括:内部认证单元、卡类型检查单元、卡匹配检查单元、外部认证单元、随机数生成单元、密钥更新单元、计算单元和传输单元;
所述内部认证单元,用于检查当前所插入到系统中的卡片是否是密管系统所要求的卡片,认证规则,包括认证方法和认证所需的密钥参数;
所述卡类型检查单元,用于检查当前所插入到系统中的卡片是否为母卡或者母卡认证卡,卡类型数据存储在卡片内部文件中;
所述卡匹配检查单元,用于检查母卡和母卡认证卡之间是否能相互匹配,卡片匹配数据存储在卡片内部文件中;
所述外部认证单元,用于在所述卡匹配检查单元后,母卡认证卡对母卡进行认证,获得母卡的相关权限,然后进行相应的操作;
所述随机数生成单元,用于产生指定长度的任意的数据;
所述计算单元,用于获取所述随机数生成单元产生的任意数据,作为计算单元的输入,利用加密机中的传输密钥作为计算的密钥,根据某种计算规则,计算出密文数据和MAC;
所述传输单元,用于将所述计算单元计算后的结果以密文的方式导入到加密机内部;
所述密钥更新单元,用于更新母卡和母卡认证卡中相应的密钥。
一种根据上述密管系统进行密钥生成与管理的方法的流程如图1所示,
系统启动时,需要对操作者进行身份识别;
进行身份识别的过程依赖于存储操作者身份信息的安全硬件设备;
进行身份识别的过程中,软件系统鉴别安全硬件设备的真伪;
由多组互相独立的初始数据输入作为系统的总输入;
初始数据存储于安全硬件设备中,作为未来系统恢复时所需的备份;
使用安全硬件设备对初始数据进行运算,得到系统根密钥;
系统根密钥使用加密密钥进行加密后,从安全硬件设备传入软件系统中;
将加密后的系统根密钥保存至硬件加密机,由硬件加密机解密后加以保存;
操作硬件加密机,对系统根密钥进行若干次密钥分散后得到应用密钥;
在进行根密钥恢复时,将存储在另外的安全硬件设备中的备份根密钥,导入到加密机内部,同时在恢复过程中对该另外的安全硬件设备进行验证,防止非法的备份设备的使用。
本发明提供的密钥生成和管理的方法和系统,根据计算规则对安全硬件设备进行内部认证验证设备的真伪,获取存储在卡内部文件中的卡类型数据,判断卡片的合法性,通过输入PIN值校验持卡人的身份;生成N组(N>=3)相互独立的任意的数据,并存储在N个相互独立的安全硬件设备中;从这N组相互独立的安全硬件设备中获取用于计算根密钥的计算因子,根据计算规则由专门的安全硬件设备对根密钥计算因子进行计算,得到系统的根密钥,并导入到加密机中;通过备份机制将加密机中的系统根密钥备份到母卡中,更新母卡中的密钥数据,同时生成对母卡认证的认证卡;然后根据密钥恢复机制,由母卡认证卡对母进行认证,获得母卡的相关权限,将存储在母卡中的系统根密钥导入到加密机中,采用这些方法和装置,实现了对密钥的生成和管理,防止了非法设备对系统的入侵,同时也防止了非法人员的随意破坏,增加了攻击者对密钥生成的攻击难度,解决了密钥生成和管理的困难。
附图说明
图1是本发明实施例中密钥管理系统流程图;
图2是本发明实施例中密钥生成流程图;
图3是本发明实施例中双角色认证示意图;
图4是本发明实施例中密钥备份机制流程图。
具体实施方式
本发明实施例提供一种密钥管理系统的方法和装置。在本实施例中,使用智能卡作为安全硬件设备,具体方法包括:
系统启动时,检查两个读卡器是否正确连接、加密机是否正确连接,否则提供出错信息,并在提供出错信息后退出系统。
系统中使用的加密机的配置信息存放在数据库中。
系统启动时,检查系统管理员卡是否在读卡器中插好(包括是否连接好、是否为系统中所需的卡片、PIN是否已经被锁定),否则提供出错信息,并允许操作者重复尝试或退出系统。在此自检过程中,可能出现以下的异常情况:
(1)未检测到卡;
(2)检测到了卡片,但不是系统所需的卡片,或发现伪卡(在此过程中,系统要对系统操作员卡发送内部认证命令,系统操作员卡中的内部认证单元应响应此命令,并作出正确答复,否则即被系统认为是伪卡);
(3)检测到了卡片,但是该卡片的PIN已经锁定。
对于上述异常情况,系统均立即停止后续操作,并发出提示信息。
系统启动时,提醒用户输入系统管理员的PIN。
在用户输入PIN之后,则由系统检查PIN值是否正确。
如果PIN值错误,在给出明确提示信息后,允许操作者重复输入PIN。在本发明实施例中所有需要操作者输入PIN 的环节都要进行这样的操作。
在启动过程中,如果PIN已被锁定,应在给出明确提示信息并待操作者确认后,退出程序。
在本实施例的密管系统中,在创建各智能卡内部的文件结构时,都会在特定的位置装载一个密钥(称之为内部认证密钥),同时这个密钥也会存储在密管系统的内部,当有智能卡插入读卡器中时,首先需要对其进行内部认证,本发明实施例提供的内部认证的方法,其具体为:
密管系统向智能卡发送内部认证命令及数据;
智能卡收到命令和数据后,使用创建时装载的内部认证密钥,对数据进行3DESECB加密,然后将结果返回;
密管系统在收到返回的密文数据后,使用相同的内部认证密钥,对密文数据进行3DES ECB解密,将解密后的结果与之前发送给卡片的内部认证的数据进行比较,如果一致,则成功,否则内部认证失败。
在执行与密钥有关的操作前,都需要成功地完成一次双角色认证,本发明实施例中用于完成双角色认证功能的智能卡设备为:密钥管理员卡和系统管理员卡,分别由两位操作者持有,其身份分别为密钥管理员和系统管理员。其流程如图3所示:
将系统管理员卡插入到读卡器中;
按照本发明实施例提供的内部认证方法对卡片执行一次内部认证过程,如果内部认证失败,则证明发现伪卡,系统将直接退出,否则,继续往下执行;
然后向卡片发送命令,获取存储在卡片内部文件中的卡类型数据;
密管系统在收到成功返回的卡类型数据后,通过与系统内部存储的卡类型数据逐一做比较,判断此种类型的卡片是否属于该系统,如果遍历完所有卡类型,发现该卡类型不存在,则表明该卡是不属于本发明实施例所需类型的智能卡,那么就终止对卡接下来的所有操作,系统将直接退出;否则,继续往下执行;
接着由持有该系统管理员卡的操作者(即系统管理员)输入PIN,系统将向卡片发送校验PIN命令和PIN值;
卡片在收到校验PIN命令后,对PIN值进行校验,如果校验成功,则继续往下执行,否则,系统将直接退出,对密钥管理员卡的认证也不执行;
如果系统管理员卡的验证成功,那么接下来将对密钥管理员卡进行验证;
对密钥管理员卡的验证步骤与对系统管理员的验证步骤相同;
在验证密钥管理员卡和系统管理员卡的过程中,如果其中的任何一个步骤出现问题,都将导致双角色认证不能正确执行,只有在两者都成功地完成后,双角色认证才算完成。通过此过程,保证在操作本系统时有两位操作者同时在场,以确保系统的安全性。
在执行完双角色认证后,可以执行与密钥相关的操作,本发明实施例提供的密钥初始数据的方法,可以生成用于计算系统根密钥的初始数据(本实施例中,使用智能卡作为初始数据存储器,称之为初始数据卡)。其具体流程如下:
准备好三张空白的初始数据卡,并分别交给三位专人(称之为初始数据卡持有人)负责管理和保存;
将第一张空白的初始数据卡插入到读卡器中;
在密管系统中,在系统管理员与密钥操作员的监督下,由初始数据卡持有人输入一组初始数据,总长度为16字符,由大小写字母、数字组成。同时,初始数据卡持有人应输入该卡片的PIN(必须为数字,长度在8~16个字符)。待所有数据准备好之后,系统将这些数据发送给插入到读卡器中的卡片,创建卡片文件结构、存储初始数据,生成第一张初始数据卡;
至此,保存第一组初始数据的初始数据卡已经生成,接下来按照此方法,重复两遍,生成第二张,第三张初始数据卡;
生成的三张初始数据卡中存储着三组相互独立的16字节的初始数据,可组合成新的数据用于生成系统的根密钥。
本发明实施例提供的密钥生成的方法,采用专门的智能卡设备对输入的数据进行计算,然后将得到的结果以密文的方式直接导入到加密机中,计算的结果并不保留在系统的内存中,其具体的流程如图2所示:
将第一张初始数据卡插入到读卡器中;
由初始数据卡持卡人输入该初始数据卡的PIN值,同时验证PIN值输入是否成功;
获取保存在初始数据卡内的初始数据A;
在成功获得完第一张初始数据卡的初始数据A后,依次插入第二张、第三张的初始数据卡到读卡器中,并依次获得每张卡内相应的初始数据B、C;
将获得的三组的初始数据A、B、C按照生成初始数据卡的顺序编号依次连接在一起,组成完整的密钥初始数据;
将用于计算根密钥的专门的智能卡设备(称之为根密钥计算卡)插入到读卡器中;
密管系统同样对根密钥计算卡采用本发明实施例所述的内部认证方法进行内部认证,如果认证不成功,则终止接下来对密钥的生成,否则,继续往下进行;
接着对根密钥计算卡进行类型检查,如果不成功,也同样终止接下来对密钥的生成,否则,继续往下进行;
将密钥初始数据和密钥头属性数据发送给根密钥计算卡;
根密钥计算卡在收到48字节(3组相互独立的16字节数据组合而成)的密钥初始数据后,将其暂时保存在内存中;
将48字节的数据循环左移3位,将得到的数据分为三组16字节的数据,使用第一组数据作为3DES运算的密钥,对剩余32字节数据进行3DES CBC加密,加密结果的后16字节作为系统的根密钥,至此,系统的根密钥已经生成;
根密钥计算卡中存储有与加密机中传输密钥相同的密钥,利用此密钥对上面生成的系统根密钥进行3DES ECB加密;
然后由根密钥计算卡产生8字节的随机数,作为计算MAC的初值;
对密钥头属性数据和加密后的系统根密钥数据计算MAC;
根密钥计算卡将上述产生的8字节的随机数、加密后的系统根密钥数据和MAC值组合在一起,返回出来;
密管系统在收到根密钥计算卡发送过来的数据后,直接与加密机连接,并将数据发送给加密机,密管系统内部不保留系统根密钥的计算结果;
至此,系统根密钥已经成功生成并写入加密机。
在整个生成过程中,系统根密钥的生成在根密钥计算卡内部完成,完成之后从读卡器中拔出智能卡,之前生成的系统根密钥也随之消失。密管系统对于系统根密钥的生成规则完全不知,系统根密钥的明文也不会保留在密管系统中。
在生成系统的根密钥之后,可以将其备份到一张安全的智能卡中,以防止因系统故障或灾难而导致系统根密钥的遗失。本发明实施例提供的系统根密钥的备份方法,需要用到两张智能卡,一张称之为母卡,用于存储备份的系统根密钥,一张称之为母卡认证卡,用于对母卡进行外部认证使用,其具体流程如图4所示:
将两张空白的智能卡同时插入到两台读卡器中;
首先在两张空白的智能卡上创建母卡和母卡认证卡所需要的文件结构,并装载初始数据,包括本卡的卡类型数据,母卡和母卡认证卡的相互匹配数据,密钥数据;
向母卡发送命令,产生16字节的随机数M1;
向加密机发送命令,将随机数M1用加密机的传输密钥加密,导入到加密机内部,替换加密机中原来的保护密钥;
接着将随机数M1装载到母卡中,替换母卡中原来的主控密钥;
同时将随机数M1装载到母卡认证中,作为加密和计算MAC的计算密钥使用;
向母卡发送命令,产生16字节的随机数M2;
接着将随机数M2装载到母卡中,作为母卡的外部认证密钥使用,对母卡中保存的密钥进行操作前需要通过本外部认证密钥的认证;
同时将随机数M2装载到母卡认证卡中,作为加密和计算的MAC的计算密钥使用;
加密机使用新的保护密钥M1,将存储在加密机内部的系统根密钥以密文和MAC的方式导出;
用母卡新的主控密钥将上面导出的系统根密钥导入到备份母卡中;
向母卡发送指令,产生16字节的随机数M4;
同时将随机数M4装载到母卡认证卡中,替换认母卡认证卡的主控密钥。
至此,加密机中存储的系统根密钥已经备份到母卡中,同时也生成了对备份母卡认证的母卡认证卡。
本实施例中,在恢复整个密管系统时,需要将母卡中已经备份好的系统根密钥重新导入到加密机中,即密钥恢复机制,本发明实施例提供的密钥恢复的方法,其具体流程如下所示:
将母卡和母卡认证同时插入到两台不同的读卡器中;
首先采用本发明实施例所述的内部认证方法对插入到读卡器中的母卡进行内部认证,如果认证不成功,则终止接下来密钥恢复的步骤,否则,继续往下进行;
接着对插入到读卡器中的母卡进行类型检查,如果不成功,则终止接下来密钥恢复的步骤,否则,继续往下进行;
对插入到读卡器中的母卡认证卡按照操作母卡的步骤,进行一次内部认证和卡类型检查的操作;
上述成功之后,对母卡和母卡认证卡进行是否匹配的检查,如果母卡和母卡认证卡不能匹配,则终止接下来密钥恢复的步骤,否则,继续往下进行;
接着由母卡认证卡对母进行认证,成功后获得操作母卡的相关权限;
向母卡发送指令,产生16字节的随机数,用于替换母卡中的导出密钥;
向加密机发送命令,将上述产生的16字节的随机数用加密机的传输密钥加密,导入到加密机内部,替换加密机中原来的保护密钥;
母卡使用被替换后的新的导出密钥,导出保存在母卡中的系统根密钥;
加密机使用新的保护密钥将母卡中导出的系统根密钥以密文和MAC的方式,导入到加密机内部;
至此,母卡中存储的系统根密钥成功恢复到加密机中。
以上所述仅是本发明优选实施方式,应当指出,对于本技术领域的普通技术员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应该视为本发明的保护范围。

Claims (10)

1.一种用于密钥生成与管理的系统,其特征在于 :包括
身份验证装置,用于在系统启动时,利用存储操作者身份信息的安全硬件设备对操作者的身份进行识别 ;
密钥初始数据生成装置,用于将多组任意且相互独立的数据存储在多台不同的安全硬件设备中,作为生成根密钥的初始数据;
根密钥生成装置,通过用于得到系统根密钥的安全硬件设备,根据密钥计算规则,对初始数据进行运算,生成系统的根密钥,并安全导入用于存储密钥的加密机中 ;
所述根密钥计算规则,用于根据种子密钥计算得到根密钥,其规则如下 :1,将种子密钥按照16字节分组,得到L组长度为16字节的数据 ;2,使用第一组数据对剩余数据进行3DES CBC 方式加密 ;3,加密之后得到的最后16 字节数据即为根密钥;
所述生成系统的根密钥的方法:将密钥初始数据和密钥头属性数据发送给根密钥计算卡 ;
根密钥计算卡在收到48字节的密钥初始数据后,将其暂时保存在内存中 ;所述48字节由3组相互独立的16字节数据组合而成;
将48字节的数据循环左移3位,将得到的数据分为三组16字节的数据,使用第一组数据作为3DES运算的密钥,对剩余32字节数据进行3DES CBC加密,加密结果的后16字节作为系统的根密钥,至此,系统的根密钥已经生成 ;
根密钥备份装置,将加密机中保存的系统根密钥备份到另外的安全硬件设备中 ;
根密钥恢复装置,将存储在另外的安全硬件设备中的备份根密钥,导入到加密机内部,同时在恢复过程中对该另外的安全硬件设备进行验证,防止非法的备份设备的使用。
2.根据权利要求 1 所述的用于密钥生成与管理的系统,其中,用于存储操作者身份信息的安全硬件设备,其存储有操作者身份信息 ;其具备访问控制权限,在读取操作者身份信息之前必须通过校验码的校验;其具有防伪能力。
3.根据权利要求 1 所述的用于密钥生成与管理的系统,其中,用于存储初始数据的安全硬件设备,其存储有初始数据 ;其具备访问控制权限,在读取初始数据之前必须通过校验码的校验;其具有防伪能力。
4.根据权利要求 1 所述的用于密钥生成与管理的系统,其中,用于得到系统根密钥的安全硬件设备,其具有输入、输出接口,能够接收传入的初始输入数据;其具备运算功能,能够将接收的输入数据进行运算,得到根密钥 ;根密钥仅存在于其易失性存储器中 ;其在导出根密钥时使用密文方式 ;该设备具有防伪能力。
5.根据权利要求 1 所述的用于密钥生成与管理的系统,其中,所述身份验证装置,包括 :内部认证单元和身份验证单元;所述内部认证单元,用于验证该安全硬件设备是否是属于系统中的设备,其中验证所依据的计算规则,包括计算所需密钥的获取和计算方法;
所述身份验证单元,用于检测使用相应安全硬件设备的人员的身份是否合法,防止非法人员使用不正确的验证码进入系统,其中验证规则包括验证输入参数和验证计算方法。
6.根据权利要求 1 所述的用于密钥生成与管理的系统,其中,所述密钥初始数据生成装置,包括:双角色认证单元、初始数据生成单元和初始数据存储单元 ;
所述双角色认证单元,用于进行两种不同身份的认证,包括密钥管理员和系统管理员的认证,校验插入的安全硬件设备类型是否合法及输入的校验码是否正确,其中校验参数包括安全硬件设备的 PIN 值和设备的类型参数 ;
所述初始数据生成单元,用于在成功执行完所述双角色认证后,依次输入指定长度 M的数据,其中,M为大于等于16的任意值,重复N次,其中,N大于等于3,得到N组互相独立的初始数据,其中的数据包括初始数据参数,初始数据编号 ;
所述初始数据存储单元,用于将 N 组数据各自独立保存到 N 台不同的安全硬件设备内部的特殊区域。
7.根据权利要求 1 所述的用于密钥生成与管理的系统,其中,所述根密钥生成装置包括 :双角色认证单元,初始数据校验单元,内部认证单元,卡类型检查单元,密钥计算单元,密钥传输单元 ;
所述双角色认证单元,用于进行两种不同身份的认证,包括密钥管理员和系统管理员的认证,校验插入的安全硬件设备类型是否匹配及输入的校验码是否正确,其中校验参数包括安全硬件设备的 PIN 值和设备的类型参数 ;
所述初始数据校验单元,用于校验计算根密钥的所需的初始数据长度及数据是否合法,初始数据从存储初始密钥数据的安全硬件设备中获得,作为计算根密钥的输入 ;
所述内部认证单元,用于验证该安全硬件设备是否是属于系统中所需要的设备,其中验证所依据的计算规则,包括计算所需要的密钥的获取和计算方法;
所述卡类型检查单元,用于检查当前插入到系统中的安全硬件设备,是否为计算根密钥的设备,其中检查的规则包括卡类型参数 ;
所述密钥计算单元,用于计算生成系统的根密钥,由安全硬件设备通过根密钥计算规则,在其内部生成,然后将计算后的结果以密文的方式导入到加密机内部,安全硬件设备内
部不保留计算结果,其中计算规则外界无法得知 ;其中根密钥计算规则,包括根密钥计算方法和根密钥计算因子参数 ;
所述密钥传输单元,用于将所述密钥计算单元的计算结果根据数据加密规则,以密文的方式导入到加密机内部,其中数据加密规则,包括根密钥数据参数、加密机的传输密钥参数和计算方法。
8.根据权利要求 1 所述的用于密钥生成与管理的系统,其中,所述根密钥备份装置包括 :接收单元、存储单元、随机数生成单元、计算单元、密钥更新单元、传输单元 ;所述接收单元,用于接收用户发送的备份母卡和母卡认证卡的数据 ;
所述存储单元,用于存储母卡及母卡认证卡的文件结构数据,以及接收到数据,其中,文件结构数据包括文件结构的大小,卡类型数据,母卡和母卡认证卡的匹配数据 ;
所述随机数生成单元,用于产生指定长度的任意的数据 ;
所述计算单元,用于获取所述随机数生成单元产生的任意数据,作为计算单元的输入,
利用加密机中的传输密钥作为计算的密钥,根据相应计算规则,计算出密文数据和MAC ;
所述密钥更新单元,用于更新母卡和母卡认证卡中相应的密钥;
所述传输单元,用于将所述计算单元计算后的结果以密文的方式导入到加密机内部。
9.根据权利要求 1 所述的用于密钥生成与管理的系统,其中,所述根密钥恢复装置包括:内部认证单元、卡类型检查单元、卡匹配检查单元、外部认证单元、随机数生成单元、密钥更新单元、计算单元和传输单元 ;
所述内部认证单元,用于检查当前所插入到系统中的卡片是否是系统所要求的卡片,
认证规则,包括认证方法和认证所需的密钥参数 ;
所述卡类型检查单元,用于检查当前所插入到系统中的卡片是否为母卡或者母卡认证卡,卡类型数据存储在卡片内部文件中;
所述卡匹配检查单元,用于检查母卡和母卡认证卡之间是否能相互匹配,卡片匹配数据存储在卡片内部文件中 ;
所述外部认证单元,用于在所述卡匹配检查单元后,母卡认证卡对母卡进行认证,获得母卡的相关权限,然后进行相应的操作;
所述随机数生成单元,用于产生指定长度的任意的数据 ;
所述密钥更新单元,用于更新母卡和母卡认证卡中相应的密钥 ;
所述计算单元,用于获取所述随机数生成单元产生的任意数据,作为计算单元的输入,利用加密机中的传输密钥作为计算的密钥,根据相应计算规则,计算出密文数据和 MAC ;
所述传输单元,用于将所述计算单元计算后的结果以密文的方式导入到加密机内部。
10.一种根据权利要求1-9之一所述的系统进行密钥生成与管理的方法,其特征在于,系统启动时,需要对操作者进行身份识别 ;
进行身份识别的过程依赖于存储操作者身份信息的安全硬件设备;
进行身份识别的过程中,软件系统鉴别安全硬件设备的真伪 ;
由多组互相独立的初始数据输入作为系统的总输入 ;
初始数据存储于安全硬件设备中,作为未来系统恢复时所需的备份;
使用安全硬件设备对初始数据进行运算,得到系统根密钥 ;
系统根密钥使用加密密钥进行加密后,从安全硬件设备传入软件系统中;
将加密后的系统根密钥保存至硬件加密机,由硬件加密机解密后加以保存;
操作硬件加密机,对系统根密钥进行若干次密钥分散后得到应用密钥;
在进行根密钥恢复时,将存储在另外的安全硬件设备中的备份根密钥,导入到加密机内部,同时在恢复过程中对该另外的安全硬件设备进行验证,防止非法的备份设备的使用。
CN201310556462.7A 2013-11-11 2013-11-11 一种用于密钥生成与管理的系统及方法 Active CN103580872B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310556462.7A CN103580872B (zh) 2013-11-11 2013-11-11 一种用于密钥生成与管理的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310556462.7A CN103580872B (zh) 2013-11-11 2013-11-11 一种用于密钥生成与管理的系统及方法

Publications (2)

Publication Number Publication Date
CN103580872A CN103580872A (zh) 2014-02-12
CN103580872B true CN103580872B (zh) 2016-12-07

Family

ID=50051864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310556462.7A Active CN103580872B (zh) 2013-11-11 2013-11-11 一种用于密钥生成与管理的系统及方法

Country Status (1)

Country Link
CN (1) CN103580872B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105590124B (zh) * 2014-10-27 2018-08-07 中国银联股份有限公司 一种借助外部终端验证的安全智能卡及其验证方法
CN104579644A (zh) * 2015-01-12 2015-04-29 浪潮软件集团有限公司 一种密钥生成与恢复方法
CN104579692A (zh) * 2015-02-09 2015-04-29 四川量迅科技有限公司 一种基于智能卡的信息处理方法
CN106161402B (zh) * 2015-04-22 2019-07-16 阿里巴巴集团控股有限公司 基于云环境的加密机密钥注入系统、方法及装置
WO2017031674A1 (zh) * 2015-08-24 2017-03-02 华为技术有限公司 一种安全认证方法、配置方法以及相关设备
CN105426772B (zh) * 2015-10-29 2019-07-02 厦门雅迅网络股份有限公司 一种在flash安全存储加密认证所需根密钥的方法
CN105427478B (zh) * 2015-11-02 2018-03-09 东方通信股份有限公司 一种atm机鉴伪仪主板程序安全处理方法
CN105893830B (zh) * 2016-03-31 2018-08-21 成都银事达信息技术有限公司 学生ic卡业务管理方法
CN106779706A (zh) * 2016-12-14 2017-05-31 新开普电子股份有限公司 智能卡密钥下的权限管理方法
CN106712935A (zh) * 2016-12-14 2017-05-24 新开普电子股份有限公司 密钥的分级控制体系
CN107707347B (zh) * 2017-10-27 2020-10-23 深圳市文鼎创数据科技有限公司 用户密钥的备份方法及装置、用户密钥的导入方法及装置
US10965453B2 (en) * 2018-09-14 2021-03-30 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for authenticated encryption based on device fingerprint
CN109525389A (zh) * 2018-10-16 2019-03-26 航天信息股份有限公司 一种税控设备秘钥的产生方法及系统
CN109684129B (zh) * 2018-11-20 2020-05-05 北京深思数盾科技股份有限公司 数据备份恢复方法、存储介质、加密机、客户端和服务器
CN109687959B (zh) 2018-12-29 2021-11-12 上海唯链信息科技有限公司 密钥安全管理系统和方法、介质和计算机程序
CN110417544B (zh) * 2019-06-28 2021-10-22 腾讯科技(深圳)有限公司 一种根密钥的生成方法、装置和介质
CN114258018B (zh) * 2021-11-12 2024-04-09 中国南方电网有限责任公司 密钥管理方法、装置、计算机设备及存储介质
CN114302258A (zh) * 2021-12-21 2022-04-08 广东纬德信息科技股份有限公司 一种智能燃气表安全抄表方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557289A (zh) * 2009-05-13 2009-10-14 大连理工大学 基于身份认证的存储安全密钥管理方法
CN102238003A (zh) * 2011-03-17 2011-11-09 中国电力科学研究院 一种根密钥的产生方法
CN102355351A (zh) * 2011-07-21 2012-02-15 华为技术有限公司 一种基于可信计算的密钥生成、备份和迁移方法及系统
CN102752635A (zh) * 2012-02-23 2012-10-24 中央电视台 一种可下载可替换条件接收系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060133607A1 (en) * 2004-12-22 2006-06-22 Seagate Technology Llc Apparatus and method for generating a secret key

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557289A (zh) * 2009-05-13 2009-10-14 大连理工大学 基于身份认证的存储安全密钥管理方法
CN102238003A (zh) * 2011-03-17 2011-11-09 中国电力科学研究院 一种根密钥的产生方法
CN102355351A (zh) * 2011-07-21 2012-02-15 华为技术有限公司 一种基于可信计算的密钥生成、备份和迁移方法及系统
CN102752635A (zh) * 2012-02-23 2012-10-24 中央电视台 一种可下载可替换条件接收系统

Also Published As

Publication number Publication date
CN103580872A (zh) 2014-02-12

Similar Documents

Publication Publication Date Title
CN103580872B (zh) 一种用于密钥生成与管理的系统及方法
CN108521418B (zh) 一种融合区块链及生物特征识别的身份认证方法和系统
CN107220820A (zh) 资源转移方法、装置及存储介质
JP6408549B2 (ja) Rfidセキュア認証
EP3564846A1 (en) Methods and systems for automatic object recognition and authentication
CN106060796B (zh) 终端的备份销毁方法和装置
CN103227776B (zh) 配置方法、配置设备、计算机程序产品和控制系统
US20060101047A1 (en) Method and system for fortifying software
CN105243314B (zh) 一种基于USB‑key的安全系统及其使用方法
CN105162797B (zh) 一种基于视频监控系统的双向认证方法
CN107690791A (zh) 用于使电子通信中的认证安全的方法
CN109840430A (zh) Plc的安全处理单元及其总线仲裁方法
US20120213368A1 (en) Authentication and data integrity protection of a token
CN101567055B (zh) 人证密码互锁装置、人证核实装置及系统和人证密码互锁与人证核实方法
CN102281138A (zh) 一种提高验证码安全性的方法和系统
CN106161442A (zh) 一种系统控制用户登录方法
CN105447937A (zh) 核电站人员出入口的控制系统及控制方法
US20170046673A1 (en) Automatic transaction device and automatic transaction system
CN102456102A (zh) 用Usb key技术对信息系统特殊操作进行身份再认证的方法
CN106682905B (zh) 一种应用解锁方法
US20110060920A1 (en) Distributed data storage device
CN101488256B (zh) 柜员身份认证系统及方法
CN106100854A (zh) 基于权威主体的终端设备的逆向认证方法及系统
CN107609427A (zh) 一种eeprom数据的存储方法及系统
CN104680054A (zh) 一种rfid数据处理方法

Legal Events

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