防攻击标准加密标准的加密方法及其加密芯片的制作方法

文档序号:7967630阅读:189来源:国知局
专利名称:防攻击标准加密标准的加密方法及其加密芯片的制作方法
技术领域
本发明涉及信息安全技术,特别是涉及一种防攻击DES (标准加密标准)加密方 法以及加密芯片的技术。
背荣技术
随着网络的不断普及,社会信息化程度的日益提高,信息安全的重要性已经逐 步凸现出来。加密作为信息安全中一个最为有力的武器,正在发挥着重要的作用。 目前常用的密码算法大致可以分为两类以DES (标准加密标准)和AES(高级加密 标准)为代表的对称算法和以RSA (—种公钥加密方法)和ECC (椭圆曲线加密)为 代表的非对称算法。在数据通信中,对称加密以加密速度快和实现方法简单的优点 被广泛使用。DES加密算法在70年代成为加密标准到今天,经历了长期的考验。
任何安全产品或者密码系统都必须面对一个如何防御攻击和窥测的问题,近些 年来,出现了一种新的强有力的攻击方法,人们称之为旁路攻击(SCA)。旁路攻击 (side channel attack)首先由Paul Kocher等于1998年提出。旁路攻击就是利用 密码芯片在运行过程中泄露的旁路信息,诸如功耗、时间、电磁波、以及差错信息 等,利用上述信息对密码系统进行攻击和窥测。旁路攻击已成为信息安全芯片产品 的巨大威胁,其危害远远大于传统的数学分析手段。
SCA功耗攻击是旁路攻击的一种,利用密码芯片执行加密运算时消耗的功耗来 对密钥进行攻击。芯片在处理不同运算的时候所消耗的功耗是不同的,即使处理同 一条指令操作数不同功耗也是不一样的,因此对功耗进行分析,可以推算出密钥来。 功耗攻击分为简单功耗分析攻击(SPA)和差分功耗分析攻击(DPA),其中DPA攻击
更有效,应用领域更广泛。
传统的DES算法主要由置乱和扩散构成,易于用硬件实现然而由于分组密码
多次循环迭代的共性,在实现该算法的过程中硬件功耗呈现某种特征。攻击者监测 硬件装置的功耗曲线,利用统计的方法对所收集到的曲线进行分析处理,通过统计
算法得出DES的密钥。传统的DES在DPA面前是脆弱的,在一个完备的测试环境中 攻击成功的概率很大,因此要重新设计能防止DPA攻击的DES,本文给出了一个在 算法上实现抗DPA攻击的DES采用了 Mask技术。

发明内容
针对上述现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种能有 效地防范简单功耗攻击(SPA)、差分功耗攻击(DPA)、高次DPA攻击的防攻击DES (标准加密标准)加密方法及其加密芯片。
为了解决上述技术问题,本发明所提供的一种防攻击DES (标准加密标准)加 密芯片,由Memory接口模块和加密引擎(加密核心)组成,其特征在于包括
一输入寄存器Memory接口模块,用于芯片输入(出)以及数据位的转化;
一加密引擎DES—Mask,用于实现防DPA攻击的DES解密运算;加密引擎各输入 端分别连接输入寄存器接口模块各输出端;
一输出寄存器Memory接口模块,用于芯片输出以及数据位的转化,输出寄存器 接口模块各输入端分别连接加密弓I擎各输出端。
进一步地,所述输入寄存器Memory接口模块包括数据输入寄存器、控制寄存器, 所述输出寄存器Memory接口模块包括数据输出寄存器、状态寄存器。
为了解决上述技术问题,本发明所提供的一种防攻击DES (标准加密标准)加 密方法,其特征在于步骤为
1)明文输入时,用一个随机数x对其进行Mask (异或计算);
2) 经过标准的DES运算,包括经过与密钥相异或和S-box替换的运算;
3) 在结果输出时在与随机数x相异或,得到标准DES的计算结果。 进一步地,所述步骤2)中密钥为轮密钥RoundKey,由随机数MaskKey对密钥
Key进行mask生成。
进一步地,所述步骤2)中S-box为修改过的S-box,用SM-box表示,并定义

<formula>complex formula see original document page 5</formula> 其中P—'表示置换P的逆。
本发明提供的防攻击DES (标准加密标准)加密方法以及加密芯片的有益效果: MASK是防止DPA的一种方法,与其他方法相比,有较高的安全性。它的机理是 通过把输入的初始数据与一个随机数异或运算而把DPA需要使用到的中间数据掩盖 住。由于每次加密或者解密使用的随机数不同,就丧失了多次运算再整体分析所需 要的规律,破坏了DPA攻击的数学基础。而且MASK的关键在于中间的所有数据都是 被修改过的但最终可以把数据再恢复还原输出。
1) 、由于采用对输入明文(或者密文)进行掩码,在输入的明文与随机数x异 或后,使整个DES运算的流程中,明文的信息就被随机数x掩盖(mask) 了,运算 时功耗不再简单的与明文相关,攻击者不能通过分析功耗与明文相关性得到密钥信 息。即使攻击者每次给的明文相同,但是随机数x是随机产生的具体的值每次都不 一样,而功耗又是与明文P和随机数x都相关的函数;因此不管简单功耗攻击(SPA), 还是差分功耗攻击(DPA)都对DES一Mask无效。
2) 、由于采用对密钥进行mask,掩盖了密钥的信息,使攻击者即使攻击密钥, 也不能得到任何信息。即使每次给的密钥Key相同,但是随机数MaskKey是随机产 生的具体的值每次都不一样,而功耗又是与密钥Key和随机数MaskKey都相关的函 数;因此不管简单功耗攻击(SPA),还是差分功耗攻击(DPA)都对DES—Mask无效。
3)、于采用根据需要生成SM-Box的方法,需要时根据锁存的随机数X和MaskKey 重新生成SM-Box。传统的Mask方法一般只采用几个固定的査找表,根据随机数选 择使用哪个査找表作为S—Box,这种方式对高次DPA攻击一般不起作用;由于SM-Box 和唓机数相关,不再是固定的几个査找表,随机性大大提高,安全性能也大大提高, 所以SM—Box能有效的防范高次DPA的攻击;同时为了减少硬件资源的开销,采用 SRAM实现SM-Box。


图1是本发明实施例的DES一Mask芯片的结构示意框图2是本发明实施例的DES—Mask的基本原理框图3是本发明实施例的DES_Mask流程框图4是本发明实施例的密钥Mask处理的流程框图; 图5是本发明实施例的SM-Box模块框图。
具体实施例方式
以下结合

对本发明的实施例作进一步详细描述,但本实施例并不用于 限制本发明,凡是采用本发明的相似结构、方法及其相似变化,均应列入本发明的 保护范围。
本发明实施例是一款防旁路攻击(尤其是DPA攻击)的实现DES算法高速加密 芯片设计——DES一Mask IP。所设计芯片不仅采用NIST的标准算法DES,防止DPA 攻击,另外还具有高速的特点,可以对任意长度的消息进行加密运算,采用的密钥 是64bits (包括奇偶校验位)。整个芯片设为DES_Mask IP,其中加密引擎设为 DES一Mask。本芯片(或IP)设计共有三个创芯之处对明密文进行掩码(mask), 对密钥进行掩码(mask)和每次加密根据随机数生成新的随机数。
整个IP由输入、输出Memory (寄存器)接口模块和加密引擎(加密核心)组
成。如图l所示
一输入寄存器Memory接口模块,为外部总线和引擎之间的桥梁,实现Memory 接口的32位宽数据和引擎的64位宽接口的转化;由Memory接口和各个寄存器组成, 寄存器包括数据输入寄存器Datain reg、控制寄存器Control reg 、控制寄存器 Key reg;设有32bits的数据输入接口 (data in), 32bits的地址输入接口 (addr in), lbits的时钟信号(clk), lbits的复位信号(reset), lbits的使能信号(EN), lbits的读写控制信号(WR);
一加密引擎DES—Mask,是DES—Mask IP芯片的主要模块,是芯片的核心,实现 防DPA攻击的DES解密运算;加密引擎连接输入寄存器接口模块有64bits的数据输 入接口 (Din), 64bits的密钥输入接口 (Key), lbits的加密或解密输入控制位 (decrypt), lbits的加密或解密启动输入控制位(load),所述整个防DPA攻击的 DES算法都是由加密引擎(DES_Mask)完成;
一输出寄存器Memory接口模块,为外部总线和引擎之间的桥梁,实现Memory 接口的32位宽数据和引擎的64位宽接口的转化;寄存器包括数据输出寄存器 Dataoutreg、状态寄存器Status reg;输出寄存器接口模块连接加密引擎有64bits 的输出接口 (Dout), lbits的加密或解密己完成输出指示位(Ready);设有32bits 的数据输出接口 (data out), lbits的访问相应信号(Respond), lbits的中断输 出信号(INT)。
DES一Mask是采用Mask技术对DES运算中的明文和密钥进行掩码,使与输入明 文和存储密钥的相关功耗不泄漏出来。Mask技术是利用一个随机数x来对想要掩码 的关键信息进行处理,由于随机数x是未知的和多变的,因此即是使用DPA进行攻 击后,分析出的结果并不是攻击者想要的真实结果。
图2是DES_Mask的基本原理:在明文输入时,首先用一个随机数x对其进行Mask (异或计算);然后,经过标准的DES运算;最后在结果输出时在与随机数x相异或,得到标准DES的计算结果。
对输入明文(或者密文)进行掩码是本发明的第一大创新之处。从图2中可以 看出输入的明文与随机数x异或后,在整个DES运算的流程中,明文的信息就被随 机数x掩盖(mask) 了,运算时功耗不再简单的与明文相关,攻击者不能通过分析 功耗与明文相关性得到密钥信息。即使攻击者每次给的明文相同,但是随机数x是 随机产生的具体的值每次都不一样,而功耗又是与明文P和随机数x都相关的函数; 因此不管简单功耗攻击(SPA),还是差分功耗攻击(DPA)都对DES一Mask无效。
图3为整个DES—Mask的框图,图3中的各参数涵义如下
M表示64位的输入明文
X表示64位的输入随机数
X1表示IP(X),即X经过初始置换IP所得
IP表示初始置换
Xl。—31 (或X1》63)表示X1的低32位(或高32位)部分
X2表示EP (Xl32-63),即XU—63经过扩充置换EP所得
EP表示每轮DES的扩充置换 Roundl。-63表示标准DES第一轮运算后的值 Rounds—63表示标准DES第《轮运算后的值。
如图3所示,在DES—Mask算法起始时首先用X对M进行Mask,即M Z 。然 后经过初始置换IP,分成左右两半部分。右半部分经过扩充置换EP和轮密钥加, 在输入S-box置换前得到X2。 DES—Mask需要在每轮DES运算时重建Xl。为了得到 XI,本发明使用一个修改过的S-box,用SM-box表示。SM-box设计必须满足X2 经过SM-box输出后,经过置换P,和明文的左半部分异或后得到XI》63。因此SM-box 定义为
<formula>complex formula see original document page 8</formula>
其中P—'表示置换P的逆。
为了重建xi,算法的左半部分也要经过处理,与xi。—31@;032_63相异或。左右
两半部分算法经过调整后,因此每轮DES算法结束,Xl就被重建。
最后一轮DES之后,左右两部分32位互换,每部分都要与71。_31 义132—63异或,
然后经过FP置换,最后与Mask随机数X异或得到最终结果。
从DES—Mask流程图和上面的分析能看到,整个算法的重点是XI的重建,每轮 DES—Mask运算后得到的值,为标准DES运算后得到的值Round《—63与XI相异或的值, 即及cnmd^。—63@jaQ—63。算法这样实现有两个好处第一、每一轮DES一Mask的值都 用X1掩码,使中间值也不再泄漏;第二、 X1进行逆初始置换FP后,即得到X,最 终DES—Mask输出时与X异或,就能把中间的随机数信息抵消,使DES_Mask的结果 与标准DES完全一致。
密钥处理
上文DES—Mask的流程框图给出了明文的Mask过程,包括Mask异或、S-Box处 理、左半部分数据处理等等,本节探讨密钥的Mask。对明文Mask能把输入明文与 功耗的相关性掩盖起来,但如果对密钥进行DPA攻击,仅对明文Mask是不够的,需 要对密钥也Mask。采用Mask技术的密钥生成算法对输入密钥进行了异或,整个算 法工程中密钥的信息也被掩盖了。对密钥进行掩码处理是本发明的第二大创新之处。
如图4为采用Mask技术的密钥生成框图,其中Key为输入密钥;MaskKey是随 机数,用来Mask密钥;PC1和PC2分别为置换选择1和置换选择2; RoundlKey至 Roundl6Key为16轮轮密钥。
尺^6A/氾W:^作为密钥产生的输入,MaskKey作为Mask的输入,两者经过相 同的处理PC1、循环左移和PC2;因为这些操作都是线性的,所以最后经过异或, Maskkey的信息相抵消了,公式如下
<formula>complex formula see original document page 10</formula>上式中R0L表示循环左移,根据不同的轮数左移的位数不同;PC1和PC2是置换选 择1和2。
从上面的分析可以看出,对密钥进行mask,掩盖了密钥的信息,使攻击者即使 攻击密钥,也不能得到任何信息。即使每次给的密钥Key相同,但是随机数MaskKey 是随机产生的具体的值每次都不一样,而功耗又是与密钥Key和随机数MaskKey都 相关的函数;因此不管简单功耗攻击(SPA),还是差分功耗攻击(DPA)都对DES—Mask 无效。
S-Box设计
S-Box替换是非线性的,为了适应Mask算法需要修正。在DES—Mask算法中采用 了修正过SM—Box:
嵐- = S - 5ox(^十%2) P-1 CAT10_3I十义132一63),
SM-Box可以采用固定査找表法实现,也可以采用每次加密生成的方法。DES算法有 8个S-Box,因此同样的DES—Mask算法也需要有8个SM-Box。固定表格法在IP固 化几个不同SM-Box査找表,估计不同的随机数选择不同的查找表。例如固化四个 SM-Box,则根据随机数的最后两位(22)选择一个SM-Box。固定表格法实现简单, 但是降低了随机性,安全性能降低,对高阶DPA攻击的防范效果一般。
为了增强防范效果本发明采用根据需要生成SM-Box的方法,需要时根据锁存的 随机数X和MaskKey重新生成SM-Box。由于SM-Box和随机数相关,不再是固定的 几个查找表,随机性大大提高,安全性能也大大提高;同时为了减少硬件资源的开 销,采用SRAM实现SM-Box。根据需要随机生成SM-Box是本设计的第三大创新。传 统的Mask方法一般只采用几个固定的査找表,根据随机数选择使用哪个査找表作为 S—Box,这种方式对高次DPA攻击一般不起作用;本设计采用的随机生成SM—Box
能有效的防范高次DPA的攻击。
标准DES的S盒有6位输入产生4位输出,实现固定替换功能。用SRAM实现 时,可以把6位输入当作地址线,4位输出当作数据线,根据地址的不同输出也不 同。图5为SM-BOX的模块框图,每个SM-Box模块由一个SRAM (sram64x4)和状态 机(State Machine)组成。
SRAM有4根输入数据线din、 4跟输出数据线dout、 6跟地址线addr、片选cen (低有效)、输出使能oen (低有效)和写使能wen (低有效)。因为DES_Mask工作 时,SM-Box要一直输出有效,所以SRAM的片选和输出使能oen始终接低电平;而 写使能信号由状态机控制,与addr/din配合使用。
状态机(State Machine)是SM-Box核心,用来控制整个SM-Box工作。当load 信号有效时,首先对SRAM进行写操作,把替代的值写在SRAM中,这时SRAM的addr 受状态机控制, 一个时钟写一个地址,共写64个时钟;写完成后,SRAM的addr由 外部的SM-Box的输入信号S—i直接控制,而SRAM的输出一直接到SM-Box的输入 S一o。更新一次SRAM需要64个时钟周期,比较长;但不需要每个加密都更新,可以 每五次加密更新一次SRAM,这样的话数据吞吐率和安全性都能保证。
随机数生成
整个DES—Mask设计使用了两个64位随机数X和MaskKey。两个随机数产生由 嵌在IP中的RNG (随机数生成模块)生成,每个时钟产生一位随机数。当每次加密 开始时,首先把RNG产生的随机数锁存到X和MaskKey中,在整个加解密的过程中
保持不变。
权利要求
1、一种防攻击DES加密芯片,其特征在于包括一输入寄存器Memory接口模块,用于芯片输入以及数据位的转化;一加密引擎DES_Mask,用于实现防DPA攻击的DES解密运算;加密引擎各输入端分别连接输入寄存器接口模块各输出端;一输出寄存器Memory接口模块,用于芯片输出以及数据位的转化,输出寄存器接口模块各输入端分别连接加密引擎各输出端。
2、 根据权利要求1所述的防攻击DES加密芯片,其特征在于,所述寄存器Memory 接口模块包括数据输入寄存器、控制寄存器,所述输出寄存器Memory接口模块包括 数据输出寄存器、状态寄存器。
3、 一种用于权利要求1所述的加密芯片的防攻击DES加密方法,其特征在于方 法的步骤为1) 明文输入时,用一个随机数x对其进行Mask (异或计算);2) 经过标准的DES运算,包括经过与密钥相异或和S-box替换的运算;3) 在结果输出时在与随机数x相异或,得到标准DES的计算结果。
4、 根据权利要求3所述的防攻击DES加密方法,其特征在于,所述步骤2)中 密钥为轮密钥RoundKey,由随机数MaskKey对密钥Key进行mask生成。
5、 根据权利要求3所述的防攻击DES加密方法,其特征在于,所述步骤2)中 S-box为修改过的S-box,用SM-box表示,并定义为— 5ox(J) = S — 5ox(J 0 十P—1 (Zl0_31十Xl32_63)其中P—'表示置换P的逆。
全文摘要
一种防攻击DES(标准加密标准)加密方法以及加密芯片,涉及信息安全技术领域;该加密芯片包括用于芯片输入(出)、数据位转化并包涵各寄存器的Memory接口模块;用于实现防DPA攻击的DES解密运算的加密引擎DES_Mask,加密引擎的输出和输入信号分别连接到相应的寄存器;该加密方法的步骤为1)在明文输入时,用一个随机数x对其进行Mask(异或计算);2)经过标准的DES运算,包括经过与由随机数Mask Key对密钥Key进行mask生成的轮密钥相异或和修改过的S-box(S盒)替换的运算;3)在结果输出时在与随机数x相异或,得到标准DES的计算结果。本发明能有效地防范SPA(简单功耗攻击)、DPA(差分功耗攻击)和高次DPA攻击。
文档编号H04L9/06GK101197660SQ200610119239
公开日2008年6月11日 申请日期2006年12月7日 优先权日2006年12月7日
发明者周玉洁, 晗 秦, 谭咏伟, 陈志敏 申请人:上海安创信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1