用于物理芯片内的密钥生成组件的制作方法

文档序号:17817220发布日期:2019-06-05 21:53
用于物理芯片内的密钥生成组件的制作方法

本发明属于数据加密/解密技术领域,尤其涉及一种用于物理芯片内的密钥生成组件。



背景技术:

数据已经被证明是企业重要资产之一,数据的高速增长使企业面临前所未有的挑战。针对目前的数据安全的需求,主流的技术是通过密码算法的加密/解密处理,以及作为加密/解密处理的基础的密钥管理。

密钥是指相互配对的公钥与私钥,公钥是密钥对中公开的部分,通常用于加密会话密钥、验证数据签名,或加密可以用相应的私钥解密的数据流;私钥是密钥对中非公开的部分,通常用于解密会话密钥、进行数据签名、解密用相应的公钥加密的数据流、或加密可以用相应的公钥解密的数据流。因此,私钥的安全性尤为重要。

现有技术中的私钥保存要么不设置安全机制、要么再通过其它密钥进行加密处理,又或者通过在主存中开辟一块安全区域来存储私钥,这些密钥安全技术在一定程度上提高了密钥的安全性,但私钥实际上存储在计算机系统的主存、或芯片(如加密芯片)内部的寄存器当中,当攻击者获取到了计算机系统的超级用户的权限,那么上述安全机制则形同虚设,攻击者则可轻易的获取到私钥;另外一点,现有技术中的私钥在产生、交互、使用的过程中是处于流转状态下的,包括私钥在安全域中的流转、私钥在安全域与芯片内之间的流转等,无法保证私钥在流转过程中是否发生泄漏的问题。



技术实现要素:

有鉴于此,本发明的一个目的是提出一种用于物理芯片内的密钥生成组件,以解决现有技术私钥的产生、保存、使用等过程没有确实有效的安全措施的问题。

在一些说明性实施例中,所述片内密钥生成组件,包括:随机数发生器,用于响应第一信号从而产生不可预估的编码值;烧录单元,用于执行将所述编码值烧入OTP存储单元的操作;OTP存储单元,用于固化所述编码值以作为私钥。

在一些优选地实施例中,所述片内密钥生成组件,还包括:密码逻辑单元,用于响应第二信号从而读取所述OTP存储单元中固化的私钥,生成与其对应的公钥。

在一些优选地实施例中,所述密码逻辑单元,还用于输出生成的所述公钥。

在一些优选地实施例中,所述密码逻辑单元,还用于响应第三信号从而读取所述OTP存储单元中固化的私钥,对输入的数据流进行加密/解密处理,并输出处理后的数据流。

在一些优选地实施例中,所述密码逻辑单元,还用于响应第四信号从而读取所述OTP存储单元中固化的私钥,对输入的数据流进行签名/验签处理,并输出处理后的数据流。

在一些优选地实施例中,所述片内密钥生成组件,还包括:转换单元,用于将所述OTP存储单元中固化的密钥进行特定转换,再将经过转换后的密钥提供给所述密码逻辑单元。

在一些优选地实施例中,所述片内密钥生成组件,还包括:易失性存储单元,用于缓存所述随机数发生器产生的编码值;所述烧录单元,用于执行将所述易失性存储单元中的所述编码值烧入所述OTP存储单元的操作。

在一些优选地实施例中,所述OTP存储单元,还用于记录并固化OTP存储单元的状态值;所述状态值用于指示所述OTP存储单元可被执行烧录操作或不可被执行烧录操作。

在一些优选地实施例中,所述OTP存储单元采用由若干条熔丝构成的OTP熔丝存储器单元。

在一些优选地实施例中,所述若干条熔丝采用0.18um以下的熔丝。

本发明的另一个目的在于提供一种物理芯片,该物理芯片内包括上述的片内密钥生成组件。

与现有技术相比,本发明具有以下优点:

1.本发明中的密钥生成组件中的私钥是在芯片内部由不可预知的随机数产生的,再烧入OTP模块中,私钥值与芯片外部无任何关系与交互,保证私钥的独有性和不可探知性,组件外部无论是开发设计人员或攻击人员均无法获知私钥,从而保障私钥的安全性与可靠性。

2.本发明中的OTP模块只向密码逻辑单元输出,并且密码逻辑单元只向组件外部输出公钥、明文、密文、签名及验签数据,私钥在使用的过程中从始至终均无法向组件外部输出,进一步保障私钥的安全性和可靠性。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明中密钥生成组件的第一示例的结构示意图;

图2是本发明中密钥生成组件的第二示例的结构示意图;

图3是本发明中密钥生成组件的第三示例的结构示意图。

具体实施方式

以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选地,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。

而且在以下详细描述中,会提出大量特定细节,以便于提供对本发明的透彻理解。然而,本领域的技术人员会理解,即使没有这些特定细节也可实施本发明。此外,为了避免不必要地模糊本发明的主要思想,没有详细描述众所周知的方法、过程、组件、结构、电路和其它特征。

如权利要求书中所使用的,除非以其它方式指明,用于描述元件/结构/信号/数据的顺序形容词“第一”、“第二”、“第三”等等的使用仅用于指示元件/结构/信号/数据的具体实例或者相同元件/结构/信号/数据的不同实例,并且不旨在暗示这些如此描述的元件/结构/信号/数据必须按特定的顺序(或者按时间、按空间排序或者以任何其他方式)

为了便于本领域技术人员可以更快的理解本发明,在此对本发明的主要思想进行简单阐述。如背景部分中所提及的,传统的密钥的产生及保存是通过至少两块逻辑/物理隔离的模块/硬件执行的,例如由软件代码构建而成的私钥生成模块,和在主存中开辟的一块特定的存储区域,私钥生成模块通过随机数产生,再将私钥保存在配置的特定区域,此时无论是私钥生成模块和特定存储区域、以及私钥在两者间的流转过程中均无法保证私钥有没有被泄漏;又例如通过两个硬件/系统执行密钥的产生及保存,如目前主流的加密芯片,私钥由密钥管理服务器或开发测试设备产生,再将生成的私钥存储到加密芯片当中,相比第一种方式其安全性得到了提升,但由于私钥仍然存在流转的动作,也就仍无法保证私钥在这流转过程中有没有发生泄漏;为此,本发明通过将私钥的产生及保存操作均设计在一个对外完全封闭的组件(物理芯片)当中,并且私钥与组件外部没有任何直接接口,也就是说就连密钥开发设计人员也无法获知私钥,并且私钥直接参与芯片的加密、解密、产生公钥、签名、验签等操作,组件向外部输出的也只有这些经过处理后的数据流,外部通过这些数据也无法分析出私钥,进而保证私钥的安全性和可靠性,在此基础之上,数据的安全性也就得到了有力的保障。

现在参照图1,图1示出了本发明中用于物理芯片内的密钥生成组件的第一示例的结构示意图,如该图所示,公开了一种用于物理芯片内的密钥生成组件100,该组件100可包括随机数发生器110、烧录单元120、OTP(One Time Programmable,一次性可编程)存储单元130以及密码逻辑单元140。密钥生成组件100还可包括未在图1中示出的任何其他电路、结构或逻辑。组件100的其他实施例可包括在图1中示出或描述的单元中的全部、某些或没有。

随机数发生器110可表示用于接收使能信号(第一信号)、并产生一组或多组随机数的任何电路、结构或其他硬件,例如发生器110的使能端口接收到高电平信号后启动,产生一组128位或256位的二进制随机数,即如010101011001……。优选地,发生器100产生的随机数的位数在32位—256位之间选取。

烧录单元120可表示用于执行将发生器110所产生的随机数烧入OTP模块的操作的任何电路、结构或其他硬件;优选地,烧录单元120可采用X-FAB厂商所生产的烧录专用芯片。

OTP存储单元130可包括若干条熔丝或其它一次性编程存储设备,可包括任何数量的位,这些位可通过特殊熔丝OTP工艺进行赋值固化,可用于固化随机数发生器110所产生的编码值和/或其它表示数据或状态的值。优选地,熔丝可采用0.18um以下单位的熔丝。

密码逻辑单元140可表示为由非对称加密算法(如ECC算法)实体化的任何电路、结构或其他硬件,具有访问OTP存储单元130、接收控制信号、收发数据流的接口,其对外输出的数据流可包括解密后的数据流、加密后的数据流、签名后的数据流、验签后数据流、以及与私钥配对使用的公钥。进一步的,密码逻辑单元140可执行如下操作:

接收控制信号(第二信号),访问OTP模块获取私钥,生成与该私钥配对使用的公钥,并输出该公钥;

接收控制信号(第三信号),访问OTP模块获取私钥选择相应的加密/解密算法,对接收到的数据流进行加密/解密处理;

其中,该控制信号中可包含加密控制信号和解密控制信号,当接收到加密控制信号之后,访问OTP模块获取私钥并构成相应的加密逻辑电路,对输入的数据流进行加密处理,并输出加密后的数据流;当接收到解密控制信号之后,访问OTP模块获取私钥并构成相应的解密逻辑电路,对输入的数据流进行解密处理,并输出解密后的数据流。

接收控制信号(第四信号),访问OTP模块获取私钥并进行签名/验签处理;

其中,该控制信号中可包含签名控制信号和验签控制信号,当接收到签名控制信号之后,访问OTP模块获取私钥并对输入的数据流进行签名处理,并输出签名后的数据流。当接收到验签控制信号之后,访问OTP模块获取私钥并对输入的数据流进行验签处理,并输出验签后的数据流。

本发明中的密钥生成组件中的私钥是在芯片内部由不可预知的随机数产生的,再烧入OTP模块中,私钥值与芯片外部无任何关系与交互,保证私钥的独有性和不可探知性,组件外部无论是开发设计人员或攻击人员均无法获知私钥,从而保障私钥的安全性与可靠性。此外OTP模块只向密码逻辑单元输出,并且密码逻辑单元只向组件外部输出公钥、明文、密文、签名及验签数据,私钥在使用的过程中从始至终均无法向组件外部输出,进一步保障私钥的安全性和可靠性。再一点就是通过选取0.18um单位以下的熔丝,可防止攻击者通过反向工程破解,进一步提高安全性。

图2示出了本发明中用于物理芯片内的密钥生成组件的第二示例,该示例在图1的基础上增加了转换单元150,转换单元150可表示用于对OTP模块130中固化的私钥进行再次变化的任何电路、结构或其他硬件,通过该转换单元150可将OTP模块130中固化的私钥的原始值转换成密码逻辑单元140所使用的私钥的实际值,并且转换单元150的变化逻辑为一定的,因此密码逻辑单元140所使用的私钥的实际值同样也是唯一且不变的。本发明通过增加转换单元150对私钥进行再次变化,可再次提高私钥被破解的成本。

图3示出了本发明中用于物理芯片内的密钥生成组件的第三示例,该示例在图1的基础上增加了易失性存储单元160,易失性存储单元160可表示用于首次存放随机数发生器110产生的编码值的任何类型的存储设备,其可包括任何数量的数据寄存器、指令寄存器、状态寄存器、配置寄存器、控制寄存器、其它可编程或硬编码寄存器或寄存器组、或任何其他存储结构。易失性存储单元160可暂时存放随机数发生器110产生的编码值,例如随机数发生器110顺序产生多组随机编码值,而易失性存储单元160则可逐步缓存随机数发生器110产生的每组随机编码值,在此过程中包括对计算、以及移位处理,最终获得完整的编码值。本发明通过加入易失性存储单元160可降低随机数发生器的选型要求,从而降低高位数的随机数发生器的空间大小,整体上降低整个组件及物理芯片的实际物理面积。

本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。

以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1