高安全等级密码模块安全技术设计_第1页
高安全等级密码模块安全技术设计_第2页
高安全等级密码模块安全技术设计_第3页
高安全等级密码模块安全技术设计_第4页
高安全等级密码模块安全技术设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1

高安全等级密码模块设计架构

1.1硬件架构

设计高安全等级密码模块,以高速串行扩展总线

(PeripheralComponentInterconnectExpress,PCI-E)接口密码模

块为例,由主控单元、PCI-E总线接口单元、密码运算单元、存储单元、

环境失效性检测(EnviromentalFailureTest,EFT)单元、功能单元组

成,如图1所示。

图1高安全等级密码模块硬件架构

高等级密码模块中:(1)主控单元由带嵌入式操作系统的中央处理

器实现,实现对密钥的管理和对应

(CentralProcessingUnitzCPU)

用层下发命令的解析和响应;(2)PCI-E总线接口单元由大规

模现场可编程逻辑门阵列(FieldProgrammableGateArray,FPGA)

实现,是数据进出密码模块的主要传输通道;(3)密码运算单元基于效

率和性能的考虑,由两颗专用密码算法芯片组成,分别实现SM1算法

和SM2算法,另由逻辑器件实现哈希算法SM3和对称分组密码算法

SM4;(4)存储单元由双倍速率内存(DoubleDataRatesynchronous

和闪存(

DynamicRandom-accessMemoryZDDRSDRAM)FLASH)

组成,分别存储密码模块运算过程中的数据和板载芯片的可执行程序;

(5)EFT单元负责实现EFT功能,由电压和温度两部分组成,分别实

现对电压和温度的感知和响应;(6)功能单元中,由开盖销毁装置、按

键销毁按钮实现紧急状况下的关键安全参数置零功能,状态LED灯指

示密码模块的实时状态,USBKey接口供身份鉴别的UKey使用,另有

多片物理噪声源用于产生质量合格的随机数。

1.2软件架构

设计密码模块处于主机应用层之下,受应用层各种安全应用程序的

调用。其软件架构由安全服务接口、设备驱动程序、嵌入式软件3部分

组成,如图2所示。

图2高安全等级密码模块软件架构

该软件架构中:安全服务接口提供密码模块的功能接口,由应用程

序直接调用;设备驱动程序为密码模块的宿主设备提供驱动能力;嵌入

式软件,运行于密码模块的主控单元,响应和执行应用层的调用指令。

1.3密钥体系

密钥是密码模块的核心资源,完善的密钥管理体系是密码模块的核

心功能。在高安全等级密码模块中,密钥管理采用了技术合理、安全性

高的3层密钥结构体制,如图3所示。

图3高安全等级密码模块密钥体系

在分层密钥保护体系中:保护密钥位于最上层,主要用于加密保护

其下层的用户密钥对和密钥加密密钥;用户密钥对和密钥加密密钥位于

中间层,用户密钥对除用于非对称密码运算外,还作为保护密钥保护其

下层的对称会话密钥;密钥加密密钥主要用作保护密钥,保护其下层的

对称会话密钥,且会话密钥处于层次化密钥结构中的最底层,是仅在一

次会话中使用的对称密钥。不论何种密钥,除公钥外的所有密钥都不能

以明文形式存在于密码卡外部。通过上述层层保护的原则,满足了密钥

管理中的〃分层结构,逐层保护"的安全原则。

同时,该外壳内部的四周设计有一圈金属丝网,如图5所示。在外

壳压合时,可以紧紧贴合电路板,消除外壳与电路板之间的微小缝隙,

在一定程度上有防止电磁干扰和抵御非入侵攻击中电磁分析攻击的作用。

图5外壳内层金属丝网

(3)高安全等级密码模块在进行印制电路板(PrintedCircuit

Board,PCB)排版时,将重要的总线信号和专用算法芯片的数据信号设

计在了印制版的里层,可有效防止外部将PCB表面涂层刮开直接使用

探针探测电信号的行为。

(4)如图6所示,高安全等级密码模块固定外壳的螺母采用私有

的非标设计,只有使用厂家特制的工具才能开启,且在螺丝上方使用金

属薄片进行遮盖,并在金属薄片表面粘贴有拆卸存迹的全息封条,可以

清楚地指示密码模块外壳是否曾被拆卸开启过。

图6高安全等级密码模块的私有非标螺母

(5)高安全等级密码模块设计有拆卸响应电路,主要由机械检测电

路和触发通知电路两部组成。机械检测电路采用多单元并联模式工作。

为保证检测拆卸动作的可靠性和准确性,防止撬起某个部位逃避检测的

行为,在密码模块的3个角上设置了机械检测电路,任意一点的检测电

路检测到拆卸行为后均可以触发通知电路工乍。这3个点位分别检测不

同位置的金属外壳上盖与模块印制版之间的垂直间距,可以快速地判断

上盖的拆卸情况,并通过触发通知电路向CPU发出报警信号,使其知

晓应该对未受保护的关键安全参数进行置零。拆卸响应电路的设计原理

如图7所示。

图7拆卸响应电路设计原理

3

实体鉴别安全性设计

高安全等级密码模块在使用UKey进行身份认证时,首先需要对

UKey进行实体鉴别,以确认插入的Ukey是与该密码模块一一对应的

实体,防止外部使用相同型号的UKey进行混淆和攻击。在本密码模块

的安全技术设计方案中,采用数字签名技术规范要求中的两次传递单向

鉴别机制。具体鉴别过程如图8所示。

⑴氏

AB

(2)&|凡加加佝心)

图8基于数字签名技术的两次传递单相鉴别流程

(1)创建操作员时模块调用身份认证UKey的智能密码钥匙密码

应用接口规范(smarttokencryptographyapplicationinterface

specification,SKF)接口产生非对称密钥对,私钥保存于UKey中,

公钥导出到模块内保存。(2)需要进行实体鉴别时,将操作员身份认证

UKey定为声称方A,密码模块定为验证方B。(3)B使用随机数生

成器产生32字节随机数Rb,并调用A的接口将Rb送入A以备后

续签名使用,密钥指定为第一步操作生成的私钥。(4)A收到Rb后,

产生32字节的随机数Ra,将Ra与Rb进行拼接,并进行一

次hash运算,将hash运算的结果进行签名,密钥为第一步操作生成

的私钥。签名完毕后,A连同Rb|Ra|sign(Rb|Ra)一同送出给B。(5)

B获取A送出的签名数据后,对随机数Rb|Ra进行hash运算,将得

到的hash值使用第一步操作中获得的公钥对签名数据进行验签操作,

若验签通过,再比较数据中包含的随机数Rb是否等于之前产生的Rb。

(6)若上一步操作中的两个操作均通过,则表明实体鉴别成功。

4

EFT安全性设计

高安全等级密码模块具有EFT功能,包括检测温度和检测电压两部

分。具体检测4种异常环境状况:低温、高温、大负电压、大正电压。

下面分别介绍温度和电压异常状况下,EFT的设计原理和生效机制。

4.1异常温度检测

密码模块在关键器件如可编程逻辑器件、专用算法芯片等附近布置

多片温度传感器,对密码模块内部的环境温度进行多点监测。设置好密

码模块的工作温度区间,当环境温度不在该范围内,则认为环境失效,

密码模块主动断电。具体的工作原理是模块上电后,处理器周期性地主

动读取各片温度传感器的温度寄存器,以获取它们附近环境的实际温度。

若任意一片温度传感器的温度不在工作范围内,则处理器做一次记录。

当连续多次记录到该现象时,表明环境温度持续处于正常工作范围之外,

工作环境确实失效,此时处理器告知开关电路切断密码模块的电源,以

达到置零模块内未受保护的关键安全参数的目的。一旦开关电路切断密

码模块的电源,电源指示灯也会熄灭。温度失效性检测技术的设计原理

如图9所示。

图9温度失效性检测原理

4.2异常电压检测

PCI-E接口的输入电源分两路:一路通过一个模数转换器

(Analog-Digitalconversion,A/D/入CPU;一路则接入开关电路,

并通过开关电路对密码模块进行供电。设置好密码模块电压的正常工作

范围后,CPU周期性地对输入的电压进行检测,若连续多次检测到电压

处于正常范围之外,则表明工作环境确实失效。此时,CPU记录好环境

失效的日志后告知开关电路断开电源供应,使得后端的电路掉电,以置

零密码模块内未受保护的关键安全参数-可通过9察模块的侧面板上电

源指示灯来确认模块的上、下电情况:当模块正常工作时,电源灯长亮;

一旦电源管理模块切断密码模块的电源,电源指示灯会熄灭。电压失效

性检测技术的设计原理如图10所示

图10电压失效性检测原理

非入侵式攻击缓解技术

5.1计时攻击缓解技术

在算法层面,由于对称密码算法SM4没有基于密钥的分支运算,

因此对称算法对计时攻击天然免疫,故无须针对上述算法做专门的计时

攻击防护设计。

针对SM2公钥密码算法,点乘计算采用安全点乘算法,能有效防

御计时攻击和简单能量攻击。安全点乘算法如下所示:

算法1:安全点乘算法

输入:ECC曲线点R整数

输出:S

pro:1/?[0]=P,/?|l]=2P;

2fori=/-2to0

一~勺]=.0])即上

MAJ=2/ePJ

3returnm0]

该方法一次扫描1位密钥位,每次进行1次点加运算和1次倍

点运算,可以实现任意相同长度的密钥位运算都没有时间区别。

5.2能量分析攻击缓解技术

针对SM4算法,采用掩码技术,通过随机化密码模块所处理的中

间值,使密码模块的能量消耗不依赖于此中间值,消除密码设备能量消

耗的数据相关性。采用如下文所述的思路进行操作。

引入随机掩码,实现全寄存器掩码以及掩码S盒。例如一共生成16

个各不相同的掩码S盒,第一轮使用编号为1~4的掩码S盒,第二

轮使用编号为5~8的掩码S盒,第三轮使用编号为9~12的掩码S

盒,第四轮使用编号为13〜16的掩码S盒,第五轮又重复使用编号

为1~4的掩码S盒,以此类推。这样使SM4算法在加解密的每一

个运算步骤均有掩码参与,达到每一个运算步骤结果均与原算法无关的

目的。

假设单个S盒的输入为3G%,输出为8£若,则有假

设掩码为M£二,则查表变换输入为U㊉A/EC,,输出

3&g(才)E弓为了得到真实的输出B,则需要生成一个对应的S盒

shoxjn使得奶"0㊉M㊉"ax」〃(力㊉M=s历必^)。因此有

sbox_ni(A㊉\/)=shox(A㊉M㊉shox(A)生成算法.

fb「(A=0;AV256;〃++)

sbox_ni(k)=sbox(k)Asbox(kAm)

标准SM2数字签名算法流程如图11所示,在签名过程中,设待

签名的消息为M;它的数字签名为(r,s);签名者A的公私钥分别为

匕、人.儿是长度为v比特的密码杂凑算法;G为椭圆曲线的一个基

点,其阶为素数。

图11标准SM2签名算法流程

目前,已有文献提出了对SM2签名算法的差分攻击方法和错误攻

击方法。差分攻击方法的攻击点一般选在与用户私钥&直接相关的地方,

如模乘•4处,已知签名值r,若了解芯片的模乘实现细节便可进行

差分能量攻击,逐比特攻破人。而错误攻击的主要威胁来自弱曲线和基

于格的错误攻击,它们的攻击点均在随机数k处,并通过获得k值或

k值的局部信息来获取密钥。针对SM2算法特性,为抵御相关攻击,

采用安全点乘、大数模乘公式变换和掩码技术。抗攻击的优化方案如下

文所述。

步骤1:原签名流程的第三步为生成一组256bits随机数k,应

保证每次加密过程中使用的随机数都不相同,更新过程严格随机化,避

免随机数间特殊更新情况出现。在此步骤后增加一个备份操作,使k=k'。

步骤2:原签名流程的第四步为匚同°,在此步骤后增加一个

比较操作,若现在的随机数k=k',则继续算法,若川二〃',,则退出算法。

步骤3:将原签名流程的第6步进行变换:

-1

s=(l+t/A)*(A-r•rfA)modn=

-,[

[(l+rfA)k-(l+dKyr-rfA]modn=

[(l+djT%-(l+d\)T・(l+dj"]modn=

[(1+d、尸•〃一(1+d、尸•"一r]modn=

[(1+4、尸*(A+r)-rJmodn

步骤4:另外,为了防止攻击者在k备份之前便修改k值,或者

在算法运行过程中跳过某一步直接进行下一步运算,可引入一个计数器,

每一步骤后让计数器自加1,并判断该计数器值是否为当前步骤数,若

是则继续运算,若不是则退出运算。

在本方案中,使用安全点乘法对条件分支语句进行了无差别处理,

攻击者不能通过直接观察能量消耗曲线来获取密钥相关信息,从而达到

抗简单能量分析(SimplePowerAnalysis,SPA)攻击的目的。在算法

流程中增加一个k值备份操作,大大增加了对密钥k的攻击难度,从

而达到抵抗针对弱曲线和基于格的错误攻击的目的。在含有私钥&的大

数模乘和点乘处执行步骤3所示的公式变换,变换后的计算步骤里不再

含有易受攻击的〃・4,从而有效抵抗差分能量分析(Dif

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论