一种实现密钥保护的方法及系统的制作方法

文档序号:7969270阅读:171来源:国知局
专利名称:一种实现密钥保护的方法及系统的制作方法
技术领域
本发明涉及通信设备的安全技术,特别涉及通信设备中实现密钥保护的方 法及系统。
背景技术
为了保证通信设备之间数据传输的安全性,通常采用现代加密体系中的常 规加密过程来对传输的数据进行加密和解密。换言之,预先确定加密算法,并 在通信系统的存储器中保存所使用的密钥。在加密解密过程开始时,首先确定 密钥在存储器中的存储位置,并从该存储位置处读取密钥,然后再按照该加密
算法对存储器中的数据加密和解密。目前存在多种加密算法,包括数据加密 标准(Data Encryption Standard, DES)算法、3倍数据加密标准(Triple Data Encryption Standard, 3DES )算法、高级力口密标准(Advanced Encryption Standard, AES )算法、信息-摘要(Message-Digest 5, MD5 )算法和安全哈希算法(Secure Hash Algorithm, SHA )等等。
为了防止因密钥泄漏而导致数据传输安全性降低的情况,目前通过对密钥 在通信设备存储器中的存储位置进行保密,来实现密钥保护。但是这种密钥保 护方法的安全性较低。 一旦密钥存储位置被泄漏,所有相同型号的通信设备中 密钥的存放位置都会被破解,那么使用该密钥加密的数据安全性就会受到威胁。

发明内容
有鉴于此,本发明实施例的第一个主要目的在于提供一种实现密钥保护的 方法,该方法可以保证通信设备中密钥的安全性。
本发明实施例的第二个主要目的在于提供一种实现密钥保护的系统,该系 统可以保证通信设备中密钥的安全性。
根据上述第一个主要目的,本发明实施例提供一种实现密钥保护的方法,
该方法包4舌以下步骤
A、 在安全部件内部设置根密钥;
B、 在安全部件内部,使用根密钥对密钥加密。
冲艮据上述第二个主要目的,本发明实施例提供一种实现密钥保护的系统, 该系统包括安全部件,安全部件包括根密钥模块和密钥处理安全引擎; 所述根密钥模块,用于存储根密钥;
所述密钥处理安全引擎,包括一加密模块,用于使用所述根密钥模块中存 储的根密钥对密钥加密。
由上述技术方案可见,本发明实施例提供的实现密钥保护的方法,在安全 部件内部设置根密钥,并在安全部件内部,使用所述根密钥对密钥加密,由于 根密钥设置在安全部件内部,对密钥的加密过程又在安全部件内部进行,保证 了被根密钥加密的密钥的安全性。本发明实施例提供的实现密钥保护的系统, 系统中的安全部件包括根密钥模块和密钥处理安全引擎,密钥处理安全引擎使 用根密钥模块中存储的根密钥对密钥加密。由于根密钥模块与安全部件外部没 用总线连接,无法被安全部件外部的任何部件读出,加密过程又在安全部件内 部进行,由此保证了被根密钥加密的密钥的安全性。


图1为本发明实施例一中实现密钥保护的系统的结构示意图2为本发明基于实施例 一 中系统的密钥加密方法流程图3为本发明基于实施例一中系统的加密后密钥的解密使用方法流程图4为本发明实施例二中实现密钥保护的系统的结构示意图5为本发明基于实施例二中系统的密钥加密方法流程图6为本发明基于实施例二中系统的加密后密钥的解密使用方法流程图。
具体实施例方式
为使本发明实施例的发明目的、技术方案更加清楚明白,下面结合附图 对本发明实施例作进一 步详细的说明。
本发明实施例提供一种用于密钥保护的方法,在安全部件中设置根密钥, 在安全部件内部使用根密钥对密钥加密。所述安全部件是一个设置的模块,存 储在安全部件内部的根密钥无法被安全部件外部读出,在安全部件内部使用该
根密钥对密钥加密,可以保证密钥的安全性。该方法还可以进一步包括在安 全部件内部,使用根密钥对加密后的密钥解密;在安全部件内部,使用解密后 的密钥对数据进行加密或解密。数据加密或解密也在安全部件内部完成,保证 了解密后的密钥的使用范围只在安全部件内部,进而保证了数据加密或解密的 便利性和密钥的安全性。
本发明实施例提供一种用于密钥保护的系统。该系统包括安全部件,安 全部件中包括存储有根密钥的根密钥模块,以及在加密模块中使用根密钥对 密钥加密的密钥处理安全引擎。安全部件还可以进一步包括数据处理安全引 擎、安全密钥控制器和随机数产生器中的任意一个或几个。系统还可以进一 步包括一个控制模块。
下面对本发明实施例用于密钥保护的方法及系统进行详细说明。 实施例一
本实施例中,通信设备可以为手才几。
图1为本发明实施例一中实现密钥保护的系统的结构示意图。 该系统中的安全部件101,包括密钥处理安全引擎105和根密钥模块 103,其中密钥处理安全引擎105包括一个加密模块,还可以进一步包括一 个解密模块。安全部件101可以进一步包括安全密钥控制器102、随机数产 生器106和数据处理安全引擎104。系统中可以进一步包括控制模块即CPU 111。
数据处理安全引擎104中可以采用DES算法,密钥处理安全引擎105
中可以采用AES算法。安全部件101通过CPU总线与CPU 111连接。
CPU 111与安全密钥控制器102连接,用于将系统外部输入的未加密的 密钥送入安全密钥控制器102。当安全部件101需要使用系统外部的加密后 的密钥时,CPU 111将系统外部的加密后的密钥送入安全密钥控制器102。 CPU 111向安全密钥控制器102发送密钥读出的控制命令,并从安全密钥控 制器102中读出加密后的密钥,将此加密后的密钥送入系统外部存储器存储 或送入其他设备使用。CPU 111向安全密钥控制器102发送数据加密或解密 控制命令和待处理数据。CPU 111向安全密钥控制器102发送数据读出控制 命令,从安全密钥控制器102中读出加密或解密后的数据,送入系统外部存 储器存储或送入其他设备使用。CPU 111向安全密钥控制器102发送产生密 钥的控制命令。
根密钥模块103与安全密钥控制器102连接,用于存储设置的根密钥, 安全密钥控制器102将存储的根密钥从根密钥模块103中读出。通常情况下, 存储在根密钥模块103中的根密钥有两种设置方法。第一种可以采用硬连线 的方式,即在芯片设计时就在根密钥模块103中通过硬件连线方式或只读存 储器(ROM)方式设置一个或多个根密钥,芯片生产之后就无法改变。第
器(EPROM)技术等工艺,或者加入一些控制电路,这样芯片生产出来之 后,根密钥模块103具备只能进行一次编程的特性。采用编程的方式,对根 密钥模块103进行一次编程设置一个或多个根密钥, 一次编程完成之后,根 密钥模块103将只能读出不能改写,这种方式产生的根密钥是一次性可编程 (One Time Program, OTP)密钥。本实施例假设,根密钥模块103中存储 的是采用硬件连线方式设置的根密钥。
安全密钥控制器102与CPUlll、根密钥模块103、密钥处理安全引擎 105、数据处理安全引擎104和随机数产生器106连接。安全密钥控制器102 获得未加密的密钥有两种方式,当安全密钥控制器102接收到CPU 111送入
的产生密钥的控制命令时,控制随机数产生器106产生密钥,并从随机^t产
生器106中读出产生的密钥,除了上述方式外,安全密钥控制器102也可以 直接接收CPU 111送入的由系统外部输入的未加密的密钥。当安全密钥控制 器102接收到CPU 111送入的密钥读出控制命令时,从根密钥模块103中读 出根密钥送入密钥处理安全引擎105的加密模块,将产生的密钥或系统外部 输入的未加密的密钥送入密钥处理安全引擎105的加密模块,并启动密钥处 理安全引擎105在加密模块中对密钥加密,在加密结束后读出加密后的密 钥,CPU 111再从安全密钥控制器102中读出该加密后的密钥。当安全密钥 控制器102接收到CPU 111送入的数据加密或解密控制命令和待处理^t据 时,将待处理数据和未加密的密钥、或解密后的密钥、或产生的密钥送入数 据处理安全引擎104,启动数据处理安全引擎104对数据加密或解密。当安 全密钥控制器102接收到CPU 111发送的数据读出的控制命令时,从数据处 理安全引擎104中读出加密或解密后的数据,CPU 111再从安全密钥控制器 102中读出该加密或解密后的数据。当安全密钥控制器102接收到CPU 111 送入的加密后的密钥时,从根密钥模块103中读出根密钥并送入密钥处理安 全引擎105的解密模块,将加密后的密钥送入密钥处理安全引擎105的解密 模块,并启动密钥处理安全引擎105在解密模块中对加密后的密钥进行解 密,解密结束后从密钥处理安全引擎105的解密模块中读出解密后的密钥。 随机数产生器106与安全密钥控制器102连接,用于接受安全密钥控制 器102的控制产生密钥。安全密钥控制器102从随机数产生器106中读出该 产生的密钥。
密钥处理安全引擎105与安全密钥控制器102连接。密钥处理安全引擎 105用于接受安全密钥控制器102的控制,在加密模块中使用安全密钥控制 器102送入的根密钥对未加密的密钥加密,加密结束后,安全密钥控制器 102从密钥处理安全引擎105的加密模块中读出加密后的密钥。密钥处理安 全引擎105接受安全密钥控制器102的控制,在解密模块中使用安全密钥控 制器102送入的根密钥对加密后的密钥解密,解密结束后,安全密钥控制器 102从密钥处理安全引擎105的解密模块中读出解密后的密钥。
数据处理安全引擎104与安全密钥控制器102连接,接受安全密钥控制 器102控制,使用安全密钥控制器102送入的未加密的密钥、或随机数产生 器106产生的密钥、或密钥处理安全引擎105解密后的密钥对待处理数据加 密或解密,加密或解密结束后,安全密钥控制器102从数据处理安全引擎 104中读出加密或解密后的数据。
本实施例中,安全部件101中还可以进一步包含一个存储部件108,与 安全密钥控制器102连接,用于存储安全密钥控制器102送入的解密后的密 钥。当安全部件101需要使用解密后的密钥对数据进行加密或解密时,安全 密钥控制器102从存储部件108中读出解密后的密钥,送入数据处理安全引 擎104。
以上所述为本发明提供的实现密钥保护的系统的 一 个较佳实施例,除了 该较佳实施例之外,还可以存在其他情况。
本实施例中,存储在根密钥模块103中的根密钥是用硬连线方式设置的 根密钥,也可以采用OTP技术实现的根密钥。
本实施例中,在安全部件101内部,安全密钥控制器102直接与除根密 钥模块103外的其他部件连接,安全密钥控制器102也可以通过一个内部总 线与除根密钥模块103外的其他部件分别进行连接,虽然连接方法变化,但 安全部件101内部各部件的连接关系仍然没有改变。在上述连接基础上,进 一步,随机数产生器106还可以分别与密钥处理安全引擎105及数据处理安 全引擎104直接连接,密钥处理安全引擎105还可以与数据处理安全引擎 104直接连接,密钥处理安全引擎105还可以与存储部件108直接连接,数 据处理安全引擎与存储部件108也可以直接连接。随机数产生器106产生密 钥后,如果需要对该产生的密钥进行加密,随机数产生器106直接将产生的 密钥送入密钥处理安全引擎105的加密模块,如果需要使用该产生的密钥对
数据加密或解密,随机数产生器106直接将产生的密钥送入数据处理要全引 擎104。密钥处理安全引擎105在解密模块中完成对加密后的密钥解密后, 可以将解密后的密钥直接送入数据处理安全引擎104使用,也可以先送入存 储部件108中存储,当需要使用该解密后的密钥时,由数据处理安全引擎 104直接从存储部件108中读取解密后的密钥。
本实施例中,如果需要对数据加密或解密,及读出加密或解密后的婆t据 时,CPU 111需要先将相应控制命令发送至安全密钥控制器102,由安全密 钥控制器102控制数据处理安全引擎104进行操作。除了上述方式之外,也 可以在对数据加密或解密,及读出加密或解密后数据的操作中,将安全密钥 控制器102设置成直通或旁路的模式,即CPU 111可以直接访问数据处理安 全引擎104。具体来说,CPU 111向数据处理安全引擎104发送数据加密或 解密控制命令和待处理数据,安全密钥控制器102将产生的密钥、或未加密 的密钥、或解密后的密钥送入数据处理安全引擎104,数据处理安全引擎104 对待处理数据进行加密或解密,在加密或解密完成后,如果需要读出加密或 解密后的数据,CPU 111直接访问数据处理安全引擎104,读出加密或解密 后的数据。
本实施例中,密钥处理安全引擎和数据处理安全引擎的个数分别设置为 一个,也可以设置为一个以上,根据具体需要确定密钥处理安全引擎和数据 处理安全引擎使用的算法。
其次,对基于实施例一所述系统的用于密钥保护的方法进行详细描述。 基于实施例一所述系统,本发明提供的用于密钥保护的方法,为在安全部件 内部,使用根密钥对密钥进行加密的流程,该方法还可以进一步包括在安全 部件内部,对加密后的密钥的解密使用流程,其中在安全部件内部使用根密 钥对密钥进行加密的流程中,密钥可以由安全部件内部直接产生,也可以由 系统外部输入。下面以安全部件内部直接产生密钥为例,说明基于实施例一 所述系统的密钥加密方法流程。
参见图2,图2为本发明基于实施例一所述系统的密钥加密方法流程图,
该流程包括以下步骤
步骤201: CPU向安全密钥控制器发送产生密钥的控制命令。 步骤202:安全密钥控制器控制随机数产生器产生密钥。 步骤203:安全密钥控制器从随机数产生器中读出产生的密钥。 在步骤201 步骤203中,CPU向安全密钥控制器发送产生密钥的控制 命令,随机数产生器在安全密钥控制器的控制下产生密钥。安全密钥控制器 从随机数产生器中读出产生的密钥后,如果接收到CPU发送的密钥读出控 制命令,将此产生的密钥送入密钥处理安全引擎的加密模块,由密钥处理安 全引擎在加密模块中对该密钥进行加密,如果接收到CPU发送的数据加密 或解密的控制命令和待处理数据,将此产生的密钥送入数据处理安全引擎, 由数据处理安全引擎使用该产生的密钥直接对数据加密或解密,也就是说安 全密钥控制器读出随机数产生器产生的密钥后,可以将该密钥送入密钥处理 安全引擎,也可以将该密钥送入数据处理安全引擎。本流程中,以安全密钥 控制器接收到CPU发送的密钥读出控制命令为例,描述后续流程。
步骤204: CPU向安全密钥控制器发送密钥读出的控制命令,安全密钥 控制器将读出的产生的密钥送入密钥处理安全引擎的加密模块。
步骤205:安全密钥控制器从根密钥模块中读出根密钥,将读出的^^艮密 钥送入密钥处理安全引擎的加密模块,启动密钥处理安全引擎。
步骤206:密钥处理安全引擎在加密模块中使用根密钥对密钥加密。 本步骤中,密钥处理安全引擎在加密模块中,使用步骤205中安全密钥 控制器送入的根密钥,对步骤204中安全密钥控制器送入的产生的密钥进行 加密。加密时可以选择不同的算法,本流程选用AES算法。
步骤207:安全密钥控制器从密钥处理安全引擎的加密模块中读出加密 后的密钥,CPU从安全密钥控制器中将此加密后的密钥读出。
本步骤中,CPU将加密后的密钥读出后,可以将加密后的密钥送入系
统外部的存储器存储,也可以送给其他设备使用。
步骤204 步骤207说明,系统外部需要从系统内的安全部件内部读出 密钥时,安全部件中的密钥处理安全引擎将在加密模块中,使用根密钥对密 钥进行加密,安全密钥控制器将加密后的密钥读出,CPU再从安全密钥控制 器中将此加密后的密钥读出,送入系统外部存储或送入其他设备使用。
上述步骤201 步骤207所述流程,为本发明基于实施例一所述系统的 密钥加密方法流程。在需要使用系统外部存储的加密后的密钥时,上述流程 还可以进一 步包括对加密后的密钥的解密使用流程,在接收到由通信接口送 入的加密后的密钥时,实施例一所述系统也包括对加密后的密钥的解密^f吏用 流程。
参见图3,图3为本发明基于实施例一所述系统的对加密后的密钥的解 密使用方法流程,该流程包括以下步骤
步骤301: CPU将数据加密或解密控制命令、加密后的密钥和待处理数 据送入安全密钥控制器,安全密钥控制器将加密后的密钥送入密钥处理安全 引擎的解密模块。
步骤302:安全密钥控制器从根密钥模块中读出根密钥,将读出的^^密 钥送入密钥处理安全引擎的解密模块,启动密钥处理安全引擎。
步骤303:密钥处理安全引擎在解密模块中,使用根密钥对加密后的密 钥进行解密。
本步骤中,密钥处理安全引擎在解密模块中,使用步骤302接收的根密 钥,对步骤301接收的加密后的密钥进行解密。
步骤304:安全密钥控制器从密钥处理安全引擎的解密模块中读出解密 后的密钥。
步骤305:安全密钥控制器将解密后的密钥送入数据处理安全引擎。 在步骤302~步骤305中,安全密钥控制器将根密钥从根密钥模块中读 出,并送入密钥处理安全引擎中的解密模块,密钥处理安全引擎在解密模块 中使用根密钥对歩骤301接收到的加密后的密钥进行解密,供后续步骤使 用。
步骤306:安全密钥控制器将待处理数据送入数据处理安全引擎。
步骤307:安全密钥控制器启动数据处理安全引擎,数据处理安全引擎 使用解密后的密钥,对待处理数据进行加密或解密。
本步骤中,数据处理安全引擎使用步骤305接收的解密后的密钥,对待 处理数据进行加密或解密。
步骤308: CPU向安全密钥控制器发送数据读出控制命令。
步骤309:安全密钥控制器从数据处理安全引擎中读出加密或解密后的 数据,CPU从安全密钥控制器中读出加密或解密后的数据。
在步骤308~步骤309中,CPU读出加密或解密后的数据后,送入系统 外部存储或送入其他设备使用。加密和解密后的数据也可以不被CPU读到 系统外部,而直接在系统内部使用。
当实施例一所述系统中,随机数产生器与密钥处理安全引擎及数据处理 安全引擎分别直接连接,密钥处理安全引擎与数据处理安全引擎也直接连接 时,步骤203中安全密钥控制器将不从随机数产生器中读出产生的密钥,在 步骤205密钥处理安全引擎启动后,由随机数产生器直接将产生的密钥送入 密钥处理安全引擎的加密模块,在步骤304 步骤305中,安全密钥控制器 不从密钥处理安全引擎的解密模块中读出解密后的密钥送入数据处理安全 引擎,而在步骤307中,数据处理安全引擎启动时,由密钥处理安全引擎将 解密后的密钥直接送入数据处理安全引擎使用。
在实施例一所述系统中,如果安全密钥控制器在对数据加密或解密,及 读出加密或解密后数据的操作中设置成直通或旁路的模式,在步骤301中, CPU直接将数据加密或解密控制命令和待处理数据送入数据处理安全引擎, 在步骤308中,CPU直接读出数据处理安全引擎中的加密或解密后的数据。
当实施例一所述的系统中,进一步包括一个存储部件时,在步骤304~
步骤305中,安全密钥控制器读出解密后的密钥后,送入存储部件存储,需 要使用该解密后的密钥时,由安全密钥控制器从存储部件中读出解密后的密 钥送入数据处理安全引擎。进一步,系统中包括存储部件时,密钥处理安全 引擎还可以和存储部件直接连接,数据处理安全引擎也可以和存储部件直接
连接,在步骤304~步骤305中,密钥处理安全引擎将解密后的密钥直接送 入存储部件存储,数据处理安全引擎需要使用解密后的密钥时,从存储部件 读出解密后的密钥使用。
在实施例一所述系统的安全部件中,也可以使用不同的算法对根密钥进 行扩展,具体来说,就是对根密钥模块中存储的根密钥进行一次或多次变形 运算。例如,安全部件中包括一个使用哈希算法的安全引擎,安全密钥控制 器可以将读出的根密钥先送入此安全引擎,安全引擎中使用哈希算法对根密 钥进行一次哈希运算,将变形后的根密钥送入安全密钥控制器,再由安全密 钥控制器送入密钥处理安全引擎,密钥处理安全引擎使用该变形后的根密钥 对密钥进行加密。或者,对进行一次哈希运算后的根密钥再进行一次或多次 哈希运算,得到多级变形后的根密钥,可以根据具体需要选择不同的变形根 密钥对密钥进行加密。根据需要,也可以选择不同的哈希算法,例如MD5 算法、SHA算法等,也可以选择除哈希算法之外的其他算法。
在实施例一所述系统的安全部件中,也可以使用根密钥对密钥进行一次 以上的加密,对应的,解密时使用根密钥对加密后的密钥进行一次以上解密。 实施例二
本实施例中,通信设备可以为手机。
在实施例一中所述的本发明用于密钥保护的系统,可以将安全部件101 内部的密钥处理安全引擎105和数据处理安全引擎104复用为一个安全引 擎,即这个复用的安全引擎既可以对密钥进行加密或解密,也可以对数据进 行加密或解密,由此形成实施例二中的本发明用于密钥保护的系统。
参见图4,图4为本发明实施例二中实现密钥保护的系统的结构示意图。
该系统中的安全部件401包括安全引擎404和4艮密钥冲莫块403,其中安 全引擎401包括一个加密模块,还可以进一步包括一个解密模块。安全部件 401还可以进一步包括安全密钥控制器102和随^/L数产生器405。系统中可 以进一步包4舌CPU 411。
安全引擎404中可以采用DES算法。安全部件101通过CPU总线与 CPU 111连接。
CPU 411与安全密钥控制器402连接,用于将系统外部输入的未加密的 密钥送入安全密钥控制器402。当安全部件401需要使用系统外部的加密后 的密钥时,CPU411将系统外部的加密后的密钥送入安全密钥控制器402。 CPU 411向安全密钥控制器402发送密钥读出的控制命令,并从安全密钥控 制器402中读出加密后的密钥,将此加密后的密钥送入系统外部存储器存储 或送入其他设备使用。CPU411向安全密钥控制器402发送数据加密或解密 控制命令和待处理数据。CPU411向安全密钥控制器402发送数据读出控制 命令,从安全密钥控制器402中读出加密或解密后的数据送入系统外部存储 器存储或送入其他设备使用。CPU411向安全密钥控制器402发送产生密钥 的控制命令。
根密钥模块403与安全密钥控制器402连接,用于存储预先设置的根密 钥。安全密钥控制器402从根密钥模块403中读出存储的根密钥。如实施例 一所述,根密钥的设置方式有两种,本实施例假设采用OTP技术实现的根 密钥。
安全密钥控制器402与CPU411、根密钥模块403、安全引擎404和随 机数产生器405连接。安全密钥控制器402获得未加密的密钥有两种方式, 当安全密钥控制器402接收到CPU411送入的产生密钥的控制命令时,控制 随机数产生器405产生密钥,并从随机数产生器405中读出产生的密钥,除 了上述方式外,安全密钥控制器402也可以直接接收CPU 411送入的由系统 外部输入的未加密的密钥。当安全密钥控制器402接收到CPU 411送入的密
钥读出控制命令时,从根密钥模块403中读出根密钥送入安全引擎404的加 密模块,将随机数产生器405产生的密钥,或系统外部输入的未加密的密钥 送入安全引擎404的加密模块,并启动安全引擎404在加密模块中对密钥进 行加密,在加密结束后读出加密后的密钥,CPU411再从安全密钥控制器402 中读出该加密后的密钥。当安全密钥控制器402接收到CPU411送入的凄t据 加密或解密控制命令和待处理数据时,将待处理数据和系统外部输入的密 钥、或随机数产生器405产生的密钥送入安全引擎404的加密模块或解密模 块,启动安全引擎404对数据加密或解密。当安全密钥控制器402接收到 CPU 411发送的数据读出的控制命令时,从安全引擎404的加密模块或解密 ;f莫块中读出加密或解密后的数据,CPU 411再从安全密钥控制器402中读出 加密或解密后的数据。当安全密钥控制器402接收到CPU411送入的加密后 的密钥时,将加密后的密钥送入安全引擎404的解密模块,从根密钥模块 403中读出根密钥送入安全引擎404的解密模块,启动安全引擎404在解密 模块中对加密后的密钥进行解密,并读出该解密后的密钥。
随机数产生器405与安全密钥控制器402连接,用于接受安全密钥控制 器402的控制产生密钥。安全密钥控制器402从随机数产生器106中读出产 生的密钥。
安全引擎404与安全密钥控制器402连接。安全引擎404接受安全密钥 控制器402的控制,在解密模块中使用安全密钥控制器402送入的根密钥对 加密后的密钥解密,解密结束后,安全密钥控制器402读出该解密后的密钥。 安全引擎404用于接受安全密钥控制器402的控制,在加密模块中使用安全 密钥控制器402送入的根密钥对随机数产生器405产生的密钥,或系统外部 输入的密钥,或解密后的密钥加密,加密结束后,安全密钥控制器402读出 加密后的密钥。安全引擎404接受安全密钥控制器402控制,使用安全密钥 控制器402送入的由系统外部输入的密钥,或随机数产生器405产生的密钥, 或解密后的密钥,在加密模块或解密模块中对待处理数据加密或解密,加密
或解密结束后,安全密钥控制器402读出加密或解密后的数据。
本实施例中,安全部件401中还可以进一步包括一个存储部件407,与 安全密钥控制器402连接,用于接收安全密钥控制器402送入的解密后的密 钥并存储。当安全部件401需要对数据进行加密或解密时,安全密钥控制器 402从存储部件407中读出解密后的密钥,送入安全引擎404。
以上所述为本发明提供的实现密钥保护的系统的一个较佳实施方式,除 了该较佳实施例之外,还可以存在其他情况。
本实施例中,根密钥模块403中存储的根密钥是OTP技术实现的根密 钥,也可以采用硬连线设置的根密钥。
本实施例中,在安全部件401内部,安全密钥控制器402直接与除根密 钥模块403外的其他部件连接,安全密钥控制器402也可以通过一个内部总 线与除根密钥模块403外的其他部件分别进行连接,虽然连接方法变化,但 安全部件401内部各部件的连接关系仍然没有改变。在上迷连接基础上,进 一步,随机数产生器405还可以与安全引擎404直接连接,安全引擎404还 可以与存储部件407直接连接。随机数产生器405产生密钥后,直接将产生 的密钥送入安全引擎404的加密模块或解密模块。安全引擎404完成对加密 后的密钥解密时,可以将解密后的密钥先送入存储部件407中存储,当需要 使用该解密后的密钥时,由安全引擎404直接从存储部件407中读取解密后 的密钥。
本实施例中,如果需要对数据加密或解密,及读出加密或解密后的数据 时,CPU411需要先将相应控制命令发送至安全密钥控制器402,由安全密 钥控制器402控制安全引擎404进行操作。除了上述方式之外,也可以在对 数据加密或解密,及读出加密或解密后数据的操作中,将安全密钥控制器 402设置成直通或旁路的模式,即CPU411在发送数据加密或解密控制命令 和待处理数据,及读出加密或解密后数据时,可以直接访问安全引擎404。 具体来说,CPU 411向安全引擎404发送数据加密和解密控制命令和待处理
数据,安全密钥控制器402将产生的密钥、或未加密的密钥、或解密后的密 钥送入安全引擎404,安全引擎404对待处理数据进行加密或解密,在加密 或解密完成后,如果需要读出加密或解密后的数据,CPU411直接访问安全 引擎404,读出加密或解密后的数据。
本实施例中,复用的安全引擎可以设置为一个,也可以设置为一个以上, 并根据具体需要为复用安全引擎选用不同的算法。
最后,对基于实施例二所述系统的用于密钥保护的方法进行详细描述。 基于实施例二所述系统,本发明提供的用于密钥保护的方法,为在安全部件 内部使用根密钥对密钥进行加密的流程,该方法还可以进一步包括在安全部 件内部对加密后的密钥的解密使用流程,其中在安全部件内部,使用根密钥 对密钥进行加密的流程中,密钥可以由安全部件内部直接产生,也可以由系 统外部输入。下面以安全部件接收系统外部输入密钥为例,说明基于实施例 二所述系统的密钥加密方法流程。
参见图5,图5为本发明基于实施例二所述系统的密钥加密方法流程图, 该流程包括以下步骤
步骤501: CPU向安全密钥控制器发送系统外部输入的密钥。
本方法中,需要安全部件加密的密钥来自系统外部,则CPU首先在本 步骤中将系统外部输入的密钥送入安全密钥控制器。安全密钥控制器接收系 统外部输入的密钥后,如果接收到CPU发送的密钥读出控制命令,将此密 钥送入安全引擎的加密模块,由安全引擎在加密模块中对该密钥进行加密, 如果接收到CPU发送的数据加密或解密的控制命令和待处理数据,将此密 钥送入安全引擎的加密模块或解密模块,由安全引擎在加密模块或解密模块 中使用该密钥直接对数据加密或解密。本流程中,以安全密钥控制器接收到 CPU发送的密钥读出控制命令为例,描述后续流程。
步骤502: CPU向安全密钥控制器发送密钥读出的控制命令,安全密钥 控制器将接收到的密钥送入安全引擎的加密模块。
步骤503:安全密钥控制器从根密钥模块中读出根密钥,将读出的才艮密 钥送入安全引擎的加密模块,启动安全引擎。
步骤504:安全引擎在加密模块中使用根密钥对密钥加密。
本步骤中,安全引擎在加密模块中,使用步骤503中安全密钥控制器送 入的根密钥,对步骤502中安全密钥控制器送入的密钥进行加密。加密时可 以选择不同的算法,本流程选用AES算法。
步骤505:安全密钥控制器从安全引擎的加密模块中读出加密后的密钥, CPU从安全密钥控制器中读出加密后的密钥。
本步骤中,CPU将加密后的密钥读出后,可以将加密后的密钥送入系 统外部的存储器保存,也可以送给其他设备使用。
步骤502 步骤505说明,系统外部需要从系统内的安全部件中读出密 钥时,安全部件中的安全引擎将在加密模块中使用根密钥对密钥进行加密, 安全密钥控制器读出加密后的密钥,CPU再从安全密钥控制器中将加密后的 密钥读出,送入系统外部存储器存储或送入其他设备使用。
上述步骤501 步骤505所述流程,为本发明基于实施例二所述系统的 密钥加密方法流程,在需要使用系统外部存储器中的加密后的密钥时,上述 流程还可以进一步包括对加密后的密钥的解密使用流程,在接收到由通信接 口送入的加密后的密钥时,实施例二所述系统也包括对加密后的密钥的解密 使用流程。
参见图6,图6为本发明基于实施例二所述系统的对加密后的密钥的解 密使用方法流程,该流程包括以下步骤
步骤601: CPU将数据加密或解密控制命令、加密后的密钥和待处理数 据送入安全密钥控制器,安全密钥控制器将加密后的密钥送入安全引擎的解 密模块。
步骤602:安全密钥控制器从根密钥模块中读出根密钥,将读出的根密 钥送入安全引擎的解密模块,启动安全引擎。
步骤603:安全引擎在解密模块中使用根密钥,对加密后的密钥进4亍解密。
本步骤中,安全引擎在解密模块中使用步骤602接收的根密钥,对步骤 601接收到的加密后的密钥进行解密。
步骤604:安全密钥控制器读出解密后的密钥。
步骤605:安全密钥控制器将待处理数据和解密后的密钥送入安全引擎。 本步骤中,当需要对数据加密时,安全密钥控制器将步骤601接收的待 处理数据和步骤604读出的解密后的密钥,送入安全引擎的加密模块,当需 要对数据解密时,安全密钥控制器将步骤601接收的待处理数据和步骤604 读出的解密后的密钥送入安全引擎的解密模块。
步骤606:安全引擎使用解密后的密钥,对待处理数据进行加密或解密。 本步骤中,当需要对数据加密时,安全引擎在加密模块中对待处理数据 加密,当需要对数据解密时,安全引擎在解密模块中对待处理数据解密。 步骤607: CPU向安全密钥控制器发送数据读出控制命令。 步骤608:安全密钥控制器从安全引擎中读出加密或解密后的数据,CPU 从安全密钥控制器中读出加密或解密后的数据。
在步骤607 步骤608中,CPU读出了加密或解密后的数据,送入系统 外部存储器存储或送入其他设备使用。加密或解密后的数据也可以不被CPU 读出,而直接在系统内部使用。
在实施例二所述系统中,如果安全密钥控制器在对数据加密或解密,及 读出加密或解密后数据的操作中设置成直通或旁路的模式,在步骤601中, CPU直接将数据加密或解密控制命令和待处理数据送入数据处理安全引擎, 在步骤606中,CPU直接读出数据处理安全引擎中的加密和解密后的数据。 当实施例二所述的系统中,进一步包括一个存储部件时,在步骤603中, 安全引擎在解密模块中对加密后的密钥解密后,安全密钥控制器将读出解密 后的密钥,送入存储部件存储,当安全引擎需要使用该解密后的密钥对数据
加密或解密时,由安全密钥控制器从存^f诸部件中读出解密后的密钥送入要全 引擎。在上述连接基础上进一步,安全引擎还可以和存储部件直接连接,在
步骤603中,安全引擎将解密后的密钥直接送入存储部件存储,安全引擎需
要使用该解密后的密钥对数据加密或解密时,由安全引擎从存储部件读出解 密后的密钥使用。
.和基于实施例一 中的密钥保护方法流程相同,安全引擎也可以在加密模 块中对根密钥模块中存储的根密钥进行一次或多次变形运算。具体方法与基 于实施例一中的密钥保护方法流程中相同,这里不在赘述。
在实施例二所述系统的安全部件中,也可以使用根密钥对密钥进行 一 次 以上的加密,对应的,解密时使用根密钥对加密后的密钥进行一次以上解密。
上述本发明系统及方法的较佳实施例均以手机为例,除此之外本发明的 方案还可以应用在诸如对讲机、有线电话等通信设备中,甚至可以应用在非 通信设备中。
综上所述,以上仅为本实施例的较佳实施例而已,并非用于限制本发明 的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、 改进等,均应包含在本发明的保护范围之内。
权利要求
1、一种实现密钥保护的方法,其特征在于,该方法包括以下步骤A、在安全部件内部设置根密钥;B、在安全部件内部,使用根密钥对密钥加密。
2、 如权利要求l所述的方法,其特征在于,在安全部件内部,使用根密钥 对密钥加密后,进一步包括在安全部件内部,使用根密钥对加密后的密钥解密;在安全部件内部,使 用解密后的密钥对数据进行加密或解密。
3、 如权利要求l所述的方法,其特征在于,所述在安全部件内部,使用根 密钥对密钥加密的方法为在安全部件内部,使用算法对根密钥进行变形运算,使用变形运算后的根 密钥对密钥加密。
4、 如权利要求3所述的方法,其特征在于,所述在安全部件内部,使用变 形运算后的根密钥对密钥加密后,进一步包括以下步骤在安全部件内部,使用变形运算后的根密钥对加密后的密钥解密;在安全部件内部,使用解密后的密钥对数据进行加密或解密。
5、 如权利要l所述的方法,其特征在于,所述在安全部件内部设置根密钥 的方法为硬连线方式设置根密钥或一次性编程OTP技术设置根密钥。
6、 一种实现密钥保护的系统,其特征在于,该系统包括安全部件,安全部 件包括根密钥模块和密钥处理安全引擎;所述根密钥模块,用于存储根密钥;所述密钥处理安全引擎,包括一加密模块,用于使用所述根密钥模块中存 储的根密钥对密钥加密。
7、 如权利要求6所述的系统,其特征在于,所述系统中的安全部件进一步 包括安全密钥控制器,用于将从系统外部接收的密钥和从所述根密钥模块中 读出的根密钥送入所述密钥处理安全引擎,并从所述密钥处理安全引擎中读出加密后的密钥输出给系统外部。
8、 如权利要求6所述的系统,其特征在于,所述安全部件中进一步包括随机数产生器;所述随机数产生器,用于产生密钥,并将产生的密钥输出到所述密钥处理安全引擎。
9、 如权利要求8所述的系统,其特征在于,所述安全部件中进一步把包括 安全密钥控制器;所述安全密钥控制器,用于将所述随机数产生器输出的密钥和/或系统外部输入的密钥送入所述密钥处理安全引擎。
10、 如权利要求6所述的系统,其特征在于,所述安全部件中进一步包括数据处理安全引擎;所述密钥处理安全引擎,还包括一解密模块,用于在接收系统外部输入的加密后的密钥后,使用所述根密钥模块中存储的根密钥对加密后的密钥解密, 并输出解密后的密钥;所述数据处理安全引擎,用于使用接收到的该解密后的密钥,对数据加密或解密。
11、 如权利要求IO所述的系统,其特征在于,所述安全部件中进一步包括安全密钥控制器,用于从所述密钥处理安全引擎中读出加密后的密钥,输出给 所述数据处理安全引擎。
12、 如权利要求11所述的系统,其特征在于,所述密钥处理安全引擎和数据处理安全引擎复用为一个安全引擎。
13、 如权利要10所述的系统,其特征在于,安全部件中进一步包括存储部件;所述存储部件,用于存储所述密钥处理安全引擎输出的解密后的密钥,将该解密后的密钥送入所述数据处理安全引擎。
14、 如权利要求13所述的系统,其特征在于,安全部件中进一步包括安全密钥控制器;所述安全密钥控制器,用于从所述密钥处理安全引擎中读出解密后的密钥, 送入所述存储部件,并从所述存储部件中读出解密后的密钥,送入所述数据处理安全引擎。
15、如权利要求7、 9、 11和14中任意一项所述的系统,其特征在于,所 述系统进一步包括控制模块;所述控制模块,用于向所述安全密钥控制器发送控制命令,触发所述安全 密钥控制器。
全文摘要
本发明公开了一种实现密钥保护的方法,该方法包括以下步骤A.在安全部件内部设置根密钥;B.在安全部件内部,使用根密钥对密钥加密。本发明还公开了一种实现密钥保护的系统,该系统中的安全部件包括根密钥模块和密钥处理安全引擎,密钥处理安全引擎中包括一加密模块。根密钥模块中存储预先设置的根密钥,密钥处理安全引擎在加密模块中使用根密钥对密钥加密。应用本发明,使得所有密钥在读出安全部件前都经过安全部件中根密钥的加密,由于根密钥无法被安全部件外的任何部件读出,保证了由根密钥加密的密钥的安全性。
文档编号H04L9/00GK101174942SQ200610137638
公开日2008年5月7日 申请日期2006年10月31日 优先权日2006年10月31日
发明者宇 刘, 程由猛, 庆 陈, 鹿甲寅 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1