一种密钥管理装置及管理方法

文档序号:7597410阅读:127来源:国知局
专利名称:一种密钥管理装置及管理方法
技术领域
本发明涉及密钥管理技术,具体涉及一种密钥管理装置及管理方法。
背景技术
为了保障通信的安全,特别是移动通信、计算机通信等的安全,密钥技术应运而生并且得到了快速的发展。例如在移动终端中,随着移动终端功能的扩展和移动终端的普及,人们对移动终端的依赖越来越强,因此希望有更多的业务可以通过移动终端来实现,例如移动支付就是其中的一种。而移动支付的开展在很大程度上依赖于移动通信的安全性,为此,要求对移动终端和金融交易系统之间传送的信息使用密钥进行加密。
在使用密钥来提高移动支付的安全性的情况下,需要在移动终端中保存专门用于移动支付的金融密钥,在银行侧的金融交易系统中为对应的移动终端用户保存该金融密钥,这样通过金融密钥,移动终端和银行交易系统能够产生用于移动支付交互信息传送的通信密钥,然后发送方使用该通信密钥对移动支付交互信息进行加密,接收方使用该通信密钥对所接收的移动支付交互信息进行解密,从而保证例如用户账号、密码等移动支付交互信息不会被外界所窃取。
在现实生活中,一个用户可能在多个银行开设有账户,这样一个移动终端用户在使用移动支付时可能需要在不同的场合使用不同的银行账户,为此对于这个移动终端用户来说就有多个金融密钥,并且这些金融密钥需要保存在移动终端内并能进行有效的管理。而现有技术中并没有在移动终端中保存多个密钥并且还能对它们进行管理的技术。
另外,除了移动支付之外,用户经常希望在端到端的通信中对通信信息进行加密,这样端到端通信的双方就需要保存和对方通信使用的端到端密钥。在这种情况下,如果一个移动终端用户希望和多个用户进行端到端通信,那么就需要在移动终端中保存多个这样的端到端密钥。同样,如何保存多个端到端密钥并对它们进行有效管理也是一个迫切需要解决的问题。

发明内容
有鉴于此,本发明的主要目的在于提供一种密钥管理装置,该装置可以保存多个密钥并能对所保存的多个密钥实行有效的管理。
本发明的另一个目的是提供一种根据该密钥管理装置对多个密钥进行管理的密钥管理方法。
本发明的上述目的是通过如下的技术方案予以实现的一种密钥管理装置,包括一个密钥管理模块和一个通信接口,其中密钥管理模块用于保存大于等于一个密钥,并用于控制对所保存的密钥的访问,通信接口用于转发密钥管理模块和外界的交互消息。
该装置可以进一步包括一个加解密算法模块,用于通过逻辑开关电子件实现大于等于一种加解密算法。并可以进一步包括一个摘要算法模块,用于通过逻辑开关电子件实现大于等于一种摘要算法。
或者,该装置可以进一步包括一个CPU和一个非易失性存储器,其中CPU用于执行来自外部访问者的访问命令,并根据该命令调用内部模块完成对应的访问操作;非易失性存储器用于存储所述CPU的相关指令供CPU调用。除此之外,可以进一步包括一个标准加解密算法模块,用于通过逻辑开关电子件实现大于等于一种标准加解密算法,此时CPU进一步实现非标准加解密算法。还可以进一步包括一个摘要算法模块,用于通过逻辑开关电子件实现大于等于一种摘要算法,此时CPU进一步实现非标准摘要算法。在这种情况下,通信接口是串行接口。
较佳地,密钥管理装置通过一个集成电路芯片实现。
一种密钥管理方法,至少包括
a.建立一个至少包含密钥管理模块和通信接口的密钥管理装置,并在密钥管理模块上保存大于等于一个的密钥;b.通信接口在接收到外部访问者的操作指令后将该指令发送给密钥管理模块;c.密钥管理模块根据该操作指令对密钥进行对应操作,并将操作结果经过通信接口发送到外部访问者。
其中步骤a中大于等于一个密钥是通过密钥对象的形式进行保存的,密钥对象至少包括用于区别不同密钥对象的密钥标识和用于生成其它密钥或者直接对信息进行加解密处理的原始密钥。
密钥对象可以进一步包括用来对传送的数据进行加解密的通信密钥或用来验证传送的数据的完整性的校验密钥中,或者同时包含通信密钥和校验密钥。
密钥对象可以进一步包括用于标识加解密计算的算法或者摘要计算的算法的算法标识或者算法组标识。
较佳地,该方法进一步包括为密钥管理装置设置一般访问密码或者为每一个密钥对象分别设置一般访问密码,步骤b中密钥管理模块在接收到来自外部访问者的操作指令后进一步包括判断来自外部访问者的一般访问密码是否和所设置的对应一般访问密码相同,如果是,执行步骤c;否则结束本流程。
或者,该方法进一步包括为密钥管理装置设置或者为每一个密钥对象分别设置一般访问密码、一般访问失败次数和最大限制一般访问失败次数,步骤b中密钥管理模块在接收到来自外部访问者的操作指令后进一步包括判断来自外部访问者的一般访问密码是否和自己保存的对应一般访问密码相同,如果是,执行步骤c;否则将一般访问失败次数加1,并比较一般访问失败次数是否等于最大限制一般访问失败次数,如果是,结束本流程,否则提示外部访问者重新输入一般访问密码,并再次执行判断来自外部访问者的一般访问密码是否和自己保存的一般访问密码相同的判断步骤。
除了设置一般访问密码之外,还可以进一步设置一个无密码访问控制开关,在判断来自外部访问者的一般访问密码是否和自己保存的一般访问密码相同之前进一步包括判断无密码访问控制开关的状态是否为打开,如果是,直接执行步骤c;否则执行所述判断步骤。
另外,该方法进一步包括修改一般访问密码的步骤。此时密钥对象进一步包括一个超级访问密码,在修改一般访问密码之前进一步包括判断来自外部访问者的超级访问密码是否和自己保存的超级访问密码相同,如果是,执行修改一般访问密码的步骤;否则结束本流程。或者,密钥对象进一步包括一个超级访问密码、一个超级访问失败次数和一个最大限制超级访问失败次数,在修改一般访问密码之前进一步包括判断来自外部访问者的超级访问密码是否和自己保存的超级访问密码相同,如果是,执行修改一般访问密码的步骤;否则将超级访问失败次数加1,并比较超级访问失败次数是否等于最大限制超级访问失败次数,如果是,结束本流程,否则提示外部访问者重新输入超级访问密码,并再次执行判断来自外部访问者的超级访问密码是否和自己保存的超级访问密码相同的判断步骤。
如果对密钥对象的操作是添加密钥对象,则包括密钥管理模块在接收到来自外部访问者的密钥信息后,给该密钥对象分配一个密钥标识;密钥管理模块将所述密钥标识和密钥信息组合在一起形成一个新的密钥对象并保存该密钥对象,然后将该密钥对象的相关信息返回给外部访问者。
如果对密钥对象的操作是删除密钥对象,则包括清除该密钥对象的所有信息。
如果对密钥对象的操作是修改密钥对象中的信息,则包括密钥管理模块在接收到来自外部访问者的修改信息的命令后,根据接收自外部访问者的新信息更新原有信息。
如果对密钥对象的操作是获取密钥对象中的信息,则包括密钥管理模块在接收到来自外部访问者的获取密钥信息的命令后,将对应的密钥信息返回给外部访问者。
如果对密钥对象的操作是对信息进行加解密,则包括密钥管理模块在接收到来自外部访问者的明文或者密文后,使用对应的加解密算法进行加密或者解密,并将加密后形成的密文或者解密后形成的明文返回给外部访问者。
从本发明的技术方案可以看出,通过建立一个至少包括密钥管理模块和一个通信接口的密钥管理装置,并且在密钥管理模块上保存多个密钥,从而实现对多个密钥的保存,并且通过通信接口转发密钥管理模块和外界访问者之间的交互消息,可以实现外界访问者对密钥管理模块内保存的密钥的操作,也就是可以实现有效的管理。这样,根据本发明的装置和方法可以保存多个密钥,并能对多个密钥实行有效管理,从而消除了现有技术中不能有效地保存多个密钥和进行相应管理的缺陷。
另外,根据本发明的装置可以包括通过逻辑开关电子件实现的加解密算法模块和摘要算法模块,从而可以实现算法的加载和选择。或者可以包括CPU和非易失性存储器,CPU可以调用非易失性存储器的算法指令实现更灵活的加解密算法和摘要算法及其相应的加载和选择。因此,除了可以保存和管理多个密钥之外,还可以实现算法的动态加载,从而使本发明的应用更加灵活。


图1是根据本发明第一实施例的密钥管理芯片的模块结构示意图。
图2是根据本发明第二实施例的密钥管理芯片的模块结构示意图。
图3是根据本发明的密钥管理方法的流程图。
具体实施例方式
下面结合附图和具体实施例对本发明进行详细说明。
为了保存和管理多个密钥,在移动终端中首先设置一个密钥管理芯片,该密钥管理芯片至少包括密钥管理模块和通信接口两部分,其中密钥管理模块用于保存多个密钥,并用于控制对所保存的多个密钥的访问,包括对密钥的添加、删除和修改,而通信接口用于密钥管理芯片和外界的通信联系的接口,通过该接口,密钥管理芯片和外界之间进行消息交互,也即,外界通过通信接口可以对密钥管理芯片进行各种操作。这里的密钥管理芯片可以通过一个集成电路(IC)芯片来实现。在移动终端中,密钥管理芯片可以和移动终端的CPU通过电路连接,这样移动终端的CPU就可以实现对密钥管理芯片中密钥的访问。在下文中,将移动终端的CPU称为外部访问者CPU。
在本发明中,由于需要对多个密钥进行管理,而每一个密钥具有多个相关信息,因此将每一个密钥及其相关信息设置为一个密钥对象。每一个密钥对象至少包括密钥标识、原始密钥两项信息,其中密钥标识用来区别不同的密钥对象,以方便对密钥的管理和操作;原始密钥是这个密钥对象的基本组成部分,用来生成其它密钥,或者直接用于信息的加解密处理等。
为了提高密钥管理的安全性,在密钥管理装置中还可以设置一个一般访问密码,一般访问密码用于验证对密钥进行管理的访问者是否具有管理权限。一般来说,访问者在需要对密钥对象进行相关访问时,密钥管理装置需要判断访问者是否合法,如果合法,则允许访问者对密钥对象进行相关访问,否则,禁止访问者对密钥对象进行相关访问,而这种判断可以通过设置一个一般访问密码来实现。具体地说,可以在密钥管理装置设置一个一般访问密码,在访问者对密钥对象进行相关访问时,密钥管理装置根据所得到的一般访问密码和自己保存的一般访问密码是否一致判断访问者是否合法,如果两者一致,访问者合法,允许访问,否则,禁止访问密钥对象。访问者在访问密钥对象之前,可以先输入一般访问密码,由密钥管理装置判断访问者输入的一般访问密码是否正确来判断其合法性,也可以在访问者的访问命令中携带该一般访问密码,密钥管理装置根据该密码正确性来判断是否响应这条访问命令。这里的访问者可以是一个程序模块,比如,在移动终端中设置了这样的密钥管理装置的情况下,对该密钥箱的访问一般是由移动终端程序来完成。
当然,也可以为不同密钥对象分别设置一个一般访问密码,在需要输入和该密钥对象中的一般访问密码相同的密码才可以进行操作,否则密钥管理装置认为该访问者不是该密钥对象的一个合法访问者,从而将不允许该访问者对该密钥对象进行相应的访问操作。
除了这三项信息之外,一个密钥对象还可以包含通信密钥、校验密钥和算法组标识或算法标识等信息。其中通信密钥和校验密钥是由原始密钥和随机数根据相应的算法生成的,该算法可以是一个摘要算法或一个加解密算法。通信密钥用来对传送的数据进行加解密;校验密钥用来验证传送的数据的完整性。
算法组标识用来区别不同的算法组,一个算法组可以包括由原始密钥和随机数生成通信密钥和校验密钥的算法、通过通信密钥对消息进行加解密运算的算法以及通过校验密钥对消息进行校验运算的算法。通过一个算法组标识,可以确定一个密钥对象在进行相关运算时所使用的算法类型。算法组标识可以只有一个,也可以有多个,例如在一共有三种加解密算法和四种摘要算法的情况下,算法组1可能采用第一种加解密算法和第一种摘要算法,而算法组2可能采用第一种加解密算法和第三种摘要算法,不同的加解密算法和不同的摘要算法的组合就构成了不同的算法组。一个密钥对象也可以不使用算法组标识来指定相应的算法,而是使用算法标识来指定各个相应的算法,这时一个密钥对象可以有多个算法标识,比如,针对加解密算法,有一个加解密算法标识,针对校验算法,有一个校验算法标识。一般地用于校验目的的算法采用摘要算法,因此,后中用摘要算法代替校验算法。
当然可以理解,密钥对象中可以包含通信密钥而不包含校验密钥,在这种情况下算法组中只包含加解密算法;或者密钥对象包含校验密钥而不包含通信密钥,在这种情况下算法组中只包含摘要算法。
一个密钥对象在设置了一般访问密码后,需要验证访问者输入的一般访问密码是否和密钥管理芯片中保存的该密钥对象的一般访问密码相同,如果相同,则表明对该密钥对象进行管理的访问者是一个合法用户,否则可以判断其是一个非法访问者。但是在实际情况下不排除合法访问因为疏忽而输入错误的情况,因此可以在密钥对象中进一步设置一般访问失败次数和最大限制一般访问失败次数。一般访问失败次数的初始值为零,最大限制一般访问失败次数根据需要而设定。例如可以将最大限制一般访问失败次数设置为3次,这样如果访问者第一次输入错误,一般访问失败次数的值加1,这时可以允许访问者进行第二次输入。如果访问者第二次输入也错误,一般访问失败次数的值再次加1,这时可以允许访问者进行第三次输入。而如果访问者第三次输入也错误,一般访问失败次数的值再次加1而变为3,由于达到了最大限制一般访问失败次数,则不允许访问者再次输入,并锁定该密钥对象,禁止后续再次通过任何一般访问密码对该密钥对象进行访问。当然,在访问者尚未达到最大限制一般访问失败次数即输入正确的情况下,一般访问失败次数被清零。例如最大限制一般访问失败次数设置为3次的情况下,如果访问者第一次输入错误,一般访问失败次数的值加1,这时可以允许访问者进行第二次输入。如果访问者第二次输入正确,此时可以允许访问者进行访问操作,而一般访问失败次数则被清零。
除了一般访问密码之外,还可以设置一个超级访问密码。通过该超级访问密码可以修改一般访问密码,从而使用户可以对自己的一般访问密码进行灵活的修改,进一步提高密钥的安全性。和一般访问密码类似,也可以针对超级访问密码设置超级访问失败次数和最大限制超级访问失败次数。
在本发明的具体实施例中,密钥管理装置可以通过逻辑电路来实现,也可以通过片上系统(SOC)实现,下面分别对此进行说明。
图1是根据本发明第一实施例的密钥管理芯片的结构示意图。如图1所示,这里的密钥管理芯片是通过逻辑电路实现的,具体地说,包括密钥管理模块、加解密算法模块、摘要算法模块和通信接口四部分。
在图1所示的结构中,密钥管理模块用于存储密钥对象,并且用于根据外部访问者CPU的指令对密钥对象进行操作。具体地说,外部访问者CPU根据配置的原始密钥对密钥对象进行初始化,在用户输入一般访问密码/超级访问密码后修改一般/超级访问失败次数。在拒绝用户输入之后还可以对一般/超级访问失败次数进行清零。密钥管理模块还可以对原始密钥进行加密,然后将经过加密的原始密钥保存在移动终端中的存储单元上。
加解密算法模块可以实现多种相互独立的算法,每一种算法由用于实现加解密计算的逻辑开关电子件组成,用于对传输的信息进行加密或解密,也就是对明文进行计算得到密文或者根据密文解密得到明文。同样,摘要算法模块可以实现多种相互独立的算法,每一种算法由用于实现摘要计算的逻辑开关电子件组成,摘要计算结果用于对数据的完整性进行检查。在有多种算法的情况下,通过CPU配置或者数据报文中携带的信息来选择其中一种算法。例如在有两种算法的情况下,CPU的配置为对于某些密钥对象采用第一种算法来进行计算,对于另一些密钥对象采用第二种算法来进行计算等等,也就是说,在多个密钥对象中,通过密钥对象的算法标识或算法组标识中指定所使用的算法是第一种算法还是第二种算法,也即,具体使用哪种算法是通过密钥对象的密钥标识确定算法标识或者算法组标识得到的,并由算法标识或者算法组标识来确定相应的算法。实际当中,可以通过不同的算法标识指示出不同的算法指令地址,CPU根据不同的算法标识读取不同的算法指令。而通过数据报文中携带的信息则是用数据报文的一个字段专门用来表示所希望的算法,例如希望采用第一种算法还是采用第二种算法。当然,对于一个密钥对象也可以不采用其算法标识或算法组标识中指定的算法,而是在数据报文中携带一个字段专门用来指定所希望的另一种算法。
对于加解密算法模块而言,虽然它可以同时具有多种算法,但是这些算法毕竟是有限的,在某些情况下可能希望改变当前的算法,以适应新的加解密的需要。此时,外部访问者CPU可以选择加载不同的算法到加解密算法模块,从而改变加解密算法模块中的当前算法。常见的加载方式包括串行加载和并行加载,由外部访问者CPU通过通用输入输出(IO)端口产生加载时钟和数据输入来将加载文件加载到加解密算法模块,从而实现逻辑的升级和算法的更新。这里的加载文件可以使用DES算法进行加密。对于摘要算法模块而言,可以进行同样的算法加载操作。密钥管理芯片根据加载的文件来改变逻辑电路配置,从而达到实现不同的算法目的。
通信接口用于充当密钥管理芯片和外界访问者的通信联系的接口,传送密钥管理芯片和外界的往来消息,外部访问者CPU通过该通信接口配置密钥管理模块中的原始密钥,并且处理明文和密文的输入输出等。
图2是根据本发明第二实施例的密钥管理芯片的结构示意图。如图2所示,这里的密钥管理芯片是通过片上系统(SOC)实现的,具体地说,包括密钥管理模块、标准加解密算法模块、标准摘要算法模块、CPU、非易失性存储器和通信接口六部分。
在图2所示的结构中,和第一实施例相似,密钥管理模块用于存储密钥对象,并且用于根据外部访问者CPU的指令对密钥对象进行操作。对于移动终端来说,这里的外部访问者为移动终端的CPU。具体地说,根据移动终端CPU为密钥管理芯片配置的原始密钥对密钥进行初始化,在用户输入一般访问密码/超级访问密码后修改一般/超级访问失败次数,在输入正确的一般访问密码/超级访问密码或者重新设置一般访问密码/超级访问密码之后对一般/超级访问失败次数进行清零。密钥管理模块还可以对原始密钥进行加密,但和第一实施例不同,经过加密的原始密钥保存在密钥管理芯片内部的非易失性存储器上,而不是保存在密钥管理芯片外部的移动终端的存储单元上。
标准加解密算法模块可以包含多种相互独立的标准算法,每一种算法由用于实现加解密计算的逻辑开关电子件组成,用于对传输的信息进行标准加密或解密,也就是对明文进行计算得到密文或者根据密文解密得到明文。同样,标准摘要算法模块可以包含多种相互独立的标准算法,每一种算法由用于实现摘要计算的逻辑开关电子件组成,用于对数据的完整性进行检查。在有多种算法的情况下,可以通过和第一实施例类似的外部访问者CPU配置或者数据报文中携带的信息来选择其中一种算法。
密钥管理芯片中的CPU模块在下文中称为内部CPU,它用于解析来自密钥管理芯片外界访问者的存取或管理命令,并根据该命令调用内部模块完成相应的操作。除此之外,内部CPU还用于实现加解密算法和摘要算法。通过对内部CPU内部程序的修改,可以实现不同的加解密算法和摘要算法,并可以对密钥实现不同的安全访问控制。内部CPU采用的操作系统为芯片操作系统(COS),COS用于实现基本的控制指令,通过这些控制指令,可以加载相应的业务应用,例如加载相应的加解密算法和摘要算法等等。COS还用于管理密钥以及对加解密算法、摘要算法进行管理,例如控制密钥的访问以及控制加解密算法的加载等等。
非易失性存储器存储内部CPU的相关指令以及各种用户专用的加解密和摘要算法,该算法以CPU的指令实现,而且用户可以通过安全受控的方式对加解密和摘要算法程序进行添加、删除、修改等操作。通过修改该算法程序用户可以达到修改加解密算法和摘要算法的目的。非易失性存储器是诸如电可擦可编程只读存储器(EEPROM)、闪存(Flash)等掉电后还能保存数据并且可以重新编程的存储器。
这里的通信接口是一个串行借口,该串行接口用于和外界通信,也就是转发密钥管理芯片和外界之间的来往消息,外部访问者CPU通过串行接口将密钥存取或管理命令发送到内部CPU,内部CPU在进行了相应的存取操作或管理操作之后,将相应的操作结果返回给外部CPU。
在第二实施例中,和第一实施例不同的是,这里的标准加解密算法模块和标准摘要算法模块中的算法都是预先设定的标准算法,因此这些算法在使用过程中不需要进行更新。对于用户自定义的算法而言,则通过CPU指令的形式存储在非易失性存储器上,在需要使用时由内部CPU来进行调用。也就是说,对于标准算法和用户自定义算法区别处理,标准算法通过逻辑电子间来实现,用户自定义算法通过CPU的指令调用来实现,这样既保证了标准计算的高速度,又保证了用户自定义计算的灵活性。
上述说明了根据本发明的密钥管理装置,可以理解,在密钥对象中不包括通信密钥的情况下,也就是不需要对数据进行加解密的情况下,可以省略加解密算法模块或者标准加解密算法模块;同样,如果在密钥对象中不包括校验密钥,也就是不需要对数据进行摘要计算的情况下,可以省略摘要算法模块或者标准摘要算法模块。
在本发明中,对密钥的管理的总体处理步骤如图3所示。在步骤301,外部访问者CPU在希望对密钥对象进行管理操作时,将操作指令发送给密钥管理芯片的通信接口。在步骤302,密钥管理芯片的通信接口在接收到该操作指令后,将该操作指令发送给密钥管理模块。在步骤303,密钥管理模块根据该指令进行密钥管理操作。在步骤304,密钥管理模块将操作结果发送给通信接口。在步骤305,通信接口将操作结果发送给外部访问者CPU。这样即完成一次密钥管理操作。
由于密钥对象存储在一个单独设置的密钥管理芯片上,因此该密钥管理芯片可以存储多个密钥对象并且可以分别对它们进行灵活管理。和现有技术相比,使得本发明的使用更灵活,应用更广泛。
具体地说,对密钥的管理操作包括四个部分,也就是添加密钥对象、删除密钥对象、修改密钥对象和获取密钥对象。
在添加密钥对象时,密钥管理模块在接收到来自外部访问者CPU的密钥信息后,例如原始密钥、访问密钥等,则给该密钥对象分配一个密钥标识,然后将它们组合在一起形成一个新的密钥对象保存起来,然后将该密钥对象的信息返回给外部访问者CPU,例如告知外部访问者CPU该密钥对象的密钥标识信息等信息。
在删除密钥对象时,密钥管理模块在接收到对于每一个密钥标识的删除指令后,将该密钥的密钥标识、原始密钥、通信密钥、校验密钥、一般访问密码、超级访问密码、一般访问失败次数、最大限制一般访问失败次数、超级访问失败次数、最大制超级访问失败次数等信息全部清除。具体执行这个操作时,可以先删除原始密钥,然后删除通信密钥和校验密钥,最后删除密钥对象的其他相关信息。然后将删除结果通知外部访问者CPU。
在修改或获取密钥对象中的某一项或多项信息时,密钥管理模块在接收到来自外部访问者CPU的指令后,根据外部访问者CPU的指令根据所接收的新信息更新原来的密钥信息,或者将对应的密钥信息发送给外部访问者CPU。
为了提高密钥管理的安全性,有必要设置一个一般访问密码。在接收到来自外部CPU的指令后和进行相应操作之前,较佳地检查用户输入的一般访问密码是否正确,如果正确,则执行相应操作;否则相应操作失败。这里设置一般访问密码可以针对密钥管理装置设置,密钥管理装置判断所接收的一般访问密码是否正确,如果正确可以对任何密钥对象进行操作。或者,设置一般访问密码可以针对每一个密钥对象分别设置,在对其中一个特定密钥对象进行操作时,密钥管理装置判断所接收的一般访问密码是否和该密钥对象对应的一般访问密码相同,如果相同则可以对该密钥对象进行操作。当然,这两种设置方式可以组合使用。
另外,还可以设置一般访问失败次数和最大限制一般访问失败次数,当用户输入错误的一般访问密码后,允许用户在最大限制一般访问失败次数之内重新输入一般访问密码,如果在该限制次数之内用户输入成功,则执行相应操作,否则相应操作失败。
上述修改或获取操作可以针对原始密钥,也可以针对通信密钥和校验密钥。
如果用户确实忘记一般访问密码,在本发明中可以设置一个超级访问密码,用户可以通过超级访问来重新初始化一般访问密码,包括重新设置最大限制一般访问失败次数。在重新初始化一般访问密码的同时,将同时对一般访问失败次数清零。和一般访问类似,还可以设置超级访问失败次数和最大限制超级访问失败次数,当用户输入错误的超级访问密码后,允许用户在最大限制超级访问失败次数之内重新输入超级访问密码,如果在该限制次数之内用户输入成功,则执行相应操作,否则相应操作失败。
在本发明中,最大限制一般访问失败次数除了可以通过超级访问来设置,也可以通过一般访问来进行设置,也就是只要用户输入正确的一般访问密码,就可以重新设置最大限制一般访问失败次数。同样,最大限制超级访问失败次数也可以由超级访问来进行设置,也就是只要用户输入正确的超级访问密码,就可以重新设置最大限制超级访问失败次数。除此之外,最大限制超级访问失败次数也可以由密钥管理模块统一设置。
在密钥管理芯片中包含加解密算法的情况下,无论是第一实施例还是第二实施例,都可以进行加解密算法的加载,在进行加载之前,密钥管理模块首先判断接收自外部CPU的一般访问密码是否和该密钥对象所对应的一般访问密码一致,如果一致,允许进行加载,否则不允许进行加载。同样,在密钥管理芯片中包含摘要算法的情况下,可以进行摘要算法的加载。但在进行加载之前,同样需要确定接收自外部CPU的一般访问密码是否正确。
在密钥对象不包括通信密钥的情况下,可以使用原始密钥对消息明文进行加密,从而得到消息密文。也就是使用密钥对象中的原始密钥和该消息明文作为参数,通过调用相应的加密算法得到消息密文。在进行加密操作之前,密钥管理模块首先判断接收自外部CPU的一般访问密码是否和该密钥对象所对应的一般访问密码一致,如果一致,允许进行加密,否则不允许进行加密。与此相似,也可以使用原始密钥对消息密文进行解密,从而得到消息明文。也就是使用密钥对象中的原始密钥和该消息密文作为参数,通过调用相应的解密算法得到消息明文。在进行解密操作之前,密钥管理模块首先判断接收自外部CPU的一般访问密码是否和该密钥对象所对应的一般访问密码一致,如果一致,允许进行解密,否则不允许进行解密。
在密钥对象不包括校验密钥的情况下,可以使用原始密钥对消息进行摘要运算,得到消息的摘要。也就是使用密钥对象中的原始密钥和该消息作为参数,通过调用相应的摘要算法进行摘要运算得到该消息的摘要。在进行摘要运算之前,密钥管理模块首先判断接收自外部CPU的一般访问密码是否和该密钥对象所对应的一般访问密码一致,如果一致,允许进行摘要运算,否则不允许进行摘要运算。
在密钥对象包括通信密钥的情况下,可以使用一个随机数初始化通信密钥。也就是使用密钥对象中的原始密钥和一个随机数作为参数,通过调用相应的算法,比如是加解密算法,或者摘要算法等等,计算出对应的通信密钥。当然,在初始化通信密钥之前,密钥管理模块首先判断接收自外部CPU的一般访问密码是否和该密钥对象所对应的一般访问密码一致,如果一致,允许初始化通信密钥,否则不允许初始化通信密钥。与此类似,在密钥对象包括校验密钥的情况下,可以使用一个随机数初始化校验密钥。也就是使用密钥对象中的原始密钥和一个随机数作为参数,通过调用相应的算法,计算出对应的校验密钥。当然,在初始化校验密钥之前,密钥管理模块首先判断接收自外部CPU的一般访问密码是否和该密钥对象所对应的一般访问密码一致,如果一致,允许初始化校验密钥,否则不允许初始化校验密钥。
当然,在上述情况下,如果用户第一次输入的一般访问密码有误,也可以要求用户再次输入一般访问密码,直到用户输入错误的一般访问密码次数达到最大限制一般访问失败次数,则不允许用户再次输入一般访问密码,也就不允许对密钥对象进行进一步的操作。
在本发明中,还可以针对一般访问密码设置一个无密码访问控制开关。无论一般访问密码是针对密钥管理装置设置的还是针对每一个密钥对象分别设置的,当设置该无密码访问控制开关打开时,对该密钥对象的操作不需要一般访问密码即可进行,也就是相应的一般访问密码可以是空或者是零。而当设置该无密码访问控制开关关闭时,对密钥对象的操作仍然需要一般访问密码。该无密码访问控制开关可以通过一般访问密码来进行设置。也就是用户可以先输入一个正确的一般访问密码,然后可以设置该无密码访问控制开关打开或关闭。通过设置无密码访问控制开关,可以使本发明的应用更加灵活。
在本发明中可以为密钥管理装置设置一个一般访问密码,也可以为每一个密钥对象分别设置一个一般访问密码。可以理解,这两种设置可以各自单独执行,也可以结合起来执行。在结合起来执行的情况下,可以设置用户必须同时输入正确两个一般访问密码才可以对该密钥对象进行操作,也可以设置如果用户不能输入正确的密钥管理装置的一般访问密码而可以输入正确的该密钥对象的一般访问密码时也可以对该密钥对象进行操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换和改进,均应包含在本发明的保护范围之内。
权利要求
1.一种密钥管理装置,其特征是,包括一个密钥管理模块和一个通信接口,其中所述密钥管理模块用于保存大于等于一个密钥,并用于控制对所保存的密钥的访问,所述通信接口用于转发密钥管理模块和外界的交互消息。
2.根据权利要求1所述的密钥管理装置,其特征是,该装置进一步包括一个加解密算法模块,用于通过逻辑开关电子件实现大于等于一种加解密算法。
3.根据权利要求1或2所述的密钥管理装置,其特征是,该装置进一步包括一个摘要算法模块,用于通过逻辑开关电子件实现大于等于一种摘要算法。
4.根据权利要求1所述的密钥管理装置,其特征是,该装置进一步包括一个CPU和一个非易失性存储器,所述CPU用于执行来自外部访问者的访问命令,并根据该命令调用内部模块完成对应的访问操作;所述非易失性存储器用于存储所述CPU的相关指令供CPU调用。
5.根据权利要求4所述的密钥管理装置,其特征是,该装置进一步包括一个标准加解密算法模块,用于通过逻辑开关电子件实现大于等于一种标准加解密算法,所述CPU进一步实现非标准加解密算法。
6.根据权利要求4或5所述的密钥管理装置,其特征是,该装置进一步包括一个摘要算法模块,用于通过逻辑开关电子件实现大于等于一种摘要算法,所述CPU进一步实现非标准摘要算法。
7.根据权利要求4所述的密钥管理装置,其特征是,所述通信接口是串行接口。
8.根据权利要求1所述的密钥管理装置,其特征是,所述密钥管理装置通过一个集成电路芯片实现。
9.一种密钥管理方法,至少包括a.建立一个至少包含密钥管理模块和通信接口的密钥管理装置,并在所述密钥管理模块上保存大于等于一个的密钥;b.通信接口在接收到外部访问者的操作指令后将该指令发送给密钥管理模块;c.密钥管理模块根据该操作指令对密钥进行对应操作,并将操作结果经过通信接口发送到外部访问者。
10.根据权利要求9所述的密钥管理方法,其特征是,步骤a中大于等于一个密钥是通过密钥对象的形式进行保存的,所述密钥对象至少包括用于区别不同密钥对象的密钥标识和用于生成其它密钥或者直接对信息进行加解密处理的原始密钥。
11.根据权利要求10所述的密钥管理方法,其特征是,所述密钥对象进一步包括用来对传送的数据进行加解密的通信密钥或用来验证传送的数据的完整性的校验密钥中,或者同时包含通信密钥和校验密钥。
12.根据权利要求10所述的密钥管理方法,其特征是,所述密钥对象进一步包括用于标识加解密计算的算法或者摘要计算的算法的算法标识或者算法组标识。
13.根据权利要求10所述的密钥管理方法,其特征是,进一步包括为密钥管理装置设置一般访问密码或者为每一个密钥对象分别设置一般访问密码,步骤b中密钥管理模块在接收到来自外部访问者的操作指令后进一步包括判断来自外部访问者的一般访问密码是否和所设置的对应一般访问密码相同,如果是,执行步骤c;否则结束本流程。
14.根据权利要求10所述的密钥管理方法,其特征是,进一步包括为密钥管理装置设置或者为每一个密钥对象分别设置一般访问密码、一般访问失败次数和最大限制一般访问失败次数,步骤b中密钥管理模块在接收到来自外部访问者的操作指令后进一步包括判断来自外部访问者的一般访问密码是否和自己保存的对应一般访问密码相同,如果是,执行步骤c;否则将一般访问失败次数加1,并比较一般访问失败次数是否等于最大限制一般访问失败次数,如果是,结束本流程,否则提示外部访问者重新输入一般访问密码,并再次执行判断来自外部访问者的一般访问密码是否和自己保存的一般访问密码相同的判断步骤。
15.根据权利要求13或14所述的密钥管理方法,其特征是,该方法进一步包括设置一个无密码访问控制开关,在判断来自外部访问者的一般访问密码是否和自己保存的一般访问密码相同之前进一步包括判断无密码访问控制开关的状态是否为打开,如果是,直接执行步骤c;否则执行所述判断步骤。
16.根据权利要求13或14所述的密钥管理方法,其特征是,该方法进一步包括修改一般访问密码的步骤。
17.根据权利要求16所述的密钥管理方法,其特征是,所述密钥对象进一步包括一个超级访问密码,在修改一般访问密码之前进一步包括判断来自外部访问者的超级访问密码是否和自己保存的超级访问密码相同,如果是,执行修改一般访问密码的步骤;否则结束本流程。
18.根据权利要求16所述的密钥管理方法,其特征是,所述密钥对象进一步包括一个超级访问密码、一个超级访问失败次数和一个最大限制超级访问失败次数,在修改一般访问密码之前进一步包括判断来自外部访问者的超级访问密码是否和自己保存的超级访问密码相同,如果是,执行修改一般访问密码的步骤;否则将超级访问失败次数加1,并比较超级访问失败次数是否等于最大限制超级访问失败次数,如果是,结束本流程,否则提示外部访问者重新输入超级访问密码,并再次执行判断来自外部访问者的超级访问密码是否和自己保存的超级访问密码相同的判断步骤。
19.根据权利要求10所述的密钥管理方法,其特征是,所述对密钥对象的操作是添加密钥对象,包括密钥管理模块在接收到来自外部访问者的密钥信息后,给该密钥对象分配一个密钥标识;密钥管理模块将所述密钥标识和密钥信息组合在一起形成一个新的密钥对象并保存该密钥对象,然后将该密钥对象的相关信息返回给外部访问者。
20.根据权利要求10所述的密钥管理方法,其特征是,所述对密钥对象的操作是删除密钥对象,包括清除该密钥对象的所有信息。
21.根据权利要求10所述的密钥管理方法,其特征是,所述对密钥对象的操作是修改密钥对象中的信息,包括密钥管理模块在接收到来自外部访问者的修改信息的命令后,根据接收自外部访问者的新信息更新原有信息。
22.根据权利要求10所述的密钥管理方法,其特征是,所述对密钥对象的操作是获取密钥对象中的信息,包括密钥管理模块在接收到来自外部访问者的获取密钥信息的命令后,将对应的密钥信息返回给外部访问者。
23.根据权利要求10所述的密钥管理方法,其特征是,所述对密钥对象的操作是对信息进行加解密,包括密钥管理模块在接收到来自外部访问者的明文或者密文后,使用对应的加解密算法进行加密或者解密,并将加密后形成的密文或者解密后形成的明文返回给外部访问者。
全文摘要
本发明公开了一种密钥管理装置,该装置包括一个密钥管理模块和一个通信接口,其中密钥管理模块用于保存大于等于一个密钥,并用于控制对所保存的密钥的访问,通信接口用于转发密钥管理模块和外界的交互消息。本发明还公开了一种利用上述密钥管理装置进行密钥管理的方法。在该方法中,首先在密钥管理模块上保存大于等于一个的密钥。当通信接口接收到外部访问者的操作指令后,将该指令发送给密钥管理模块。密钥管理模块根据该操作指令对密钥进行对应操作,并将操作结果经过通信接口发送到外部访问者。根据本发明的装置和方法可以保存多个密钥,并能对多个密钥实行有效管理。
文档编号H04L9/28GK1750458SQ20041007801
公开日2006年3月22日 申请日期2004年9月16日 优先权日2004年9月16日
发明者王正伟, 黄勇, 姚慧勇 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1