准备买台示波器了。。。。
军事密码学向民用开放些过时的技术够让人好奇
密码学的全部内容除了数学原理,全都变成芯片零件加无线,看了微尘传感器----居然能轻到飘在空中,《龙卷风》电影里的传感器还太大了,过时了
微尘传感器网络在10年内会像现在的INTERNET
Google:
对 SmartCard 上 RSA 的能量攻击和防御
王新成 蔡吉人 杨义先 孙 宏 (北京邮电大学信息安全中心, 北京 100876 )
E-mail: sunhongest@163.net
摘 要 该文介绍了两种针对 SmartCard 的能量攻击 方 法 SPA Simple Power Analysis) DPA Differential Power Anal( 和 ( .结合这两种能量分析方法, SmartCard 的 RSA 运算进行了分析和攻击, 对 最后提出了加强 SmartCard 的安全的措施. ysis) 关键词
SmartCard
SPA DPA RSA
文献标识码 A 中图分类号 TP393
文章编号 1002-8331- 2003 ) ( 35-0133-03
Power Analysis Attack to RSA in SmartCard and the Countermeasures
Wang Xincheng Cai Jiren Yang Yixian Sun Hong
(Beijing University of Post & Telecommunication , Beijing 100876)
Abstract: This article introduces the attack to the SmartCard which is based on power analysis instead of mathematics. SPA and DPA are used to attack the RSA of the SmartCard.At the end, proper solution is presented to defend the power analysis attack to SmartCard. Keywords: SmartCard , , , SPA DPA RSA
1
引言
SmartCard 是 带 有 CPU 和 存 储 器 的 IC 卡 . 在 信 息 安 全 领
过 程 中 , 量 的 变 化 会 反 映 出 所 运 行 的 指 令 的 内 容 , 是 SPA 能 这 和 DPA 的基础.
域里, SmartCard 多用于保存用户的机密信息,如用户的口令, 能够进行加解密运 密钥和证书等等. SmartCard 本身带有 CPU, 目 大 算 , 前 , 多 数 卡 具 有 对 称 算 法 如 DES , 3DES 和 非 对 称 算 法 也有部 分 的 SmartCard 采 用 其 他 的 对 称 算 法 RSA 等等.当然, 和其他的非对称算法. 由于自身具有密码运算的能力和存储能 力, 在信息安 SmartCard 被广泛地应用于身份认证和安全存储, 全领域发挥着举足轻重的作用.
2.1
SPA
所谓的 SPA 就是在 SmartCard 进行加密解密的过程中 , 直
接 测 量 SmartCard 的 能 量 消 耗 情 况 , 固 定 的 时 刻 , 样 足 够 在 采 通 把 量的样本值, 过对消耗能量的分析, 这些能量与相应的密 钥对应起来, 从而达到攻击的目的.
2.2
DPA
DPA 是比 SPA 更加有效的能量攻击方法. DPA 主要是通
SmartCard 所采用的密码算法的安全性在数学上的分析已
经有大量的文献进行了介绍,该文要介绍的 SPA 和 DPA 是在 对 SmartCard 的实际应用中, SmartCard 进行物理攻击的一种方 法.对 SmartCard 的物理攻击包括时间分析攻击法 [2], 电磁辐射 其中, 能量分析攻击法是最有效的 攻击法 [5]和能量分析攻击法. 攻击方法. 自从 1998 年 Kocher et al 引入 SPA 和 DPA 以来 [1], 已经有文献[3][4]介绍如何成功地利用 SPA 和 DPA 对 DES, 3DES 以及 AES 进行攻击.该文综合采用 SPA 和 DPA 方法, 成功地 对 RSA 进行了攻击. 该文安排如下, 第二章介绍 SPA 和 DPA 的原理, 第三章利 用 DPA 对 RSA 进 行 攻 击 的 过 程 和 结 果 , 第 四 章 引 入 加 强
过统计分析和纠错技术从采集的能量信息中抽取出和密钥相 关的信息.通常情况下, 进行 SPA 攻击需要知道目标代码的应 用细节,所以只有保证在一定的信噪比的情况下, SPA 才能成 功. DPA 对信噪比的要 求 比 SPA 要 小 得 多 , 是 DPA 需 要 得 但 到大量的不同样本的能量消耗值,以及所对应的样本如密文, 进行统计分析才能得到相应的密钥.
3
利用能量分析方法对 RSA 进行分析
在 SmartCard 的 应 用 过 程 中 , 需 要 与 读 卡 器 进 行 相 互 认
证,假设 SmartCard 采用 RSA 进行认证,读 卡 器 对 SmartCard 的认证是这样进行的:读卡器提供一串随机数,由 SmartCard 内部保存 的 私 钥 进 行 模 指 数 运 算 , 后 SmartCard 返 回 结 果 给 然 读卡器由读卡器进行认证.如果 SmartCard 被攻击者用自己的 非法的读 卡 器 进 行 读 卡 , 可 以 多 次 要 求 对 SmartCard 进 行 认 他 证 , 就 是 说 多 次 送 随 机 数 给 SmartCard , SmartCard 用 私 钥 也 在 进行加密的过程中, 到能量消耗的统计信息, 而达到分析 得 从 密钥的目的.
SmartCard 的安全性的方案和措施.
2
SPA 和 DPA
SmartCard 是由许多三级管集成到一起的产物,限于目前
的工艺, 执行不同的指令所消耗的能量是不同的, 另外, 于 0 对 和 1 的存储, 也能反映出能量消耗的不同, 这样, 在程序运行的
基金项目: 国家重点基础研究发展规划项目 (编号: ; (批准号: ; G1999035805)国家杰出青年基金项目 69425001)国家高等学校骨干教师资助计划项目 作者简介: 王新成 1969- ) 男, ( , 湖南娄底人, 博士生, 主要研究领域为电子商务安全, 安全片上系统设计, 嵌入式系统设计.
计算机工程与应用
2003.35 133
3.1
模指数运算的两种方式
模指数运算是 RSA 中最根本的运算,模指数运算可以分
对 (1 ) SmartCard 增 加 随 机 噪 声 . 这 种 方 法 可 以 增 加 能 量 尤其对于 SPA .由于 SPA 是 对 SmartCard 在 操 作 攻击的难度, 过程中所消耗能量的直接的观察, 只有信噪比达到一定的值后 才能得到有用的能量信号, 可以有效地抑制 SPA 攻击.增加随 机 噪 声 也 能 增 加 DPA 攻 击 的 难 度 , DPA 不 得 不 大 大 增 加 采 样 数量. 但是, 这种方式不能从根本上解决问题. 因为其一攻击者 可以通过有效的滤波, 除这种干扰; 二, 消 其 DPA 本 身 在 做 统 计平均时就削弱了噪声的影响. 置乱待加密信息 M.这种方法也只是增加了攻击的难 (2 ) 度, 对于有经验的攻击者来说也是形同虚设.先看一下置乱加 密 信 息 M 的 过 程 : 加 密 前 取 一 随 机 因 子 re , 并 计 算 rf = r e ) ( 令 对 加 modN, M'=re M, M' 进 行 加 密 运 算 : C'=M'emodN; 密 结 束 时计算 C=C'rf monN 恢复应有的密文.这种方法实际上起不到 有效的效果, 因为从算法上讲平方运算比乘运算要少近一半的 指令, 此平方和乘运算消耗的能量会有很大的差异, 如果 因 而 仅仅是操作数不同, 算所执行的乘和平方的数量不变, 样 运 这 由于操作数的不同所带来的能量变化的干扰基本上可以忽略, 所以这种方法不能有效地阻止前述的攻击. 给 (3 ) SmartCard 单 独 供 电 . 这 种 方 案 是 取 消 读 卡 器 对 SmartCard 的供电, SmartCard 通过独立 的 电 池 供 电 . 这 种 方 案 的 目 的 是 使 攻 击 者 无 法 通 过 读 卡 器 获 得 SmartCard 的 能 量 消 耗信息, 从而阻止能量分析攻击.但是这种方案实现的可能性 较小. 一个是电池的寿命问题, 一个电池的寿命非常有限, 最多 也就十几天, 即使是充电电池, 其反复充电的次数也是有限的, 因为电池而更换 SmartCard 非常不智.另外尺寸问题, ISO7816 规定 SmartCard 的厚度为 0.76mm , 满足这一厚度的电池造价昂 贵并且寿命更有限.因此这一方案不切实际.
-1 e
解成多个模平方运算和模乘运算. 进行模平方运算和模乘运算 模指数运算可以从指数的高位到低 所消耗的能量是有差别的. 也可以从指数的低位到高位进行. 为了方便叙述, 下面 位进行, 假设 以从高位到地位的方式为例进行说明. 假如计算 M modN ,
e
计算模指数如下: 指数 e 共 n bits 长,
( e N exp M ,, )
{
r=M
( for i=n-2 ; ; ) i>=0 i--
{
r=r2 mod N
( if e 的第 i 位为 1 )
r=rM mod N } return r }
3.2
在已知公钥基础上对 RSA 的能量攻击
假设已知 SmartCard 上的公钥 (一般的 SmartCard 支持外部
, 可 向 SmartCard 写 公 钥 文 件 ) 为 了 获 取 SmartCard 的 私 钥 , 以 要求 SmartCard 对某随机数进行 签 名 , 并 且 要 求 SmartCard 对 该随机数进行 RSA 加密.取大量的随机数进行签名和加密运 算, 并且采集每次运算的能量信号.假设对 n 个随机数进行运 算,在 j 时刻, SmartCard 对第 i 个随机数用私钥进行签名消耗 的能量为 Si j ) 用公钥进行加密消耗的能量为 Pi j ) 构造能量 ( , ( , 差分信号 D j ) ( :
n n
D[j]= 1 n
1 ∑S [j]- n ∑P [j]=S[j]-P[j]
i i i = 1 i = 1
如果在 j 时刻, 进行的运算相同的话, j ) 0 , ( ( D 为 否则, j ) D ( 为 非零.通过与公钥的对比调整对应的私钥的值, 亦即在 D i) 零时 , 处 的 私 钥 与 公 钥 一 致 , 则 , 处 的 私 钥 是 公 钥 的 反 . 该 否 此 使 在 进 行 这 一 攻 击 时 , 了 100 , 个 随 机 数 , SmartCard 做 用 000 了 200 , 次模指数运算, 成功地得到模长为 1024bits 的 RSA 000 的私钥.
5
对抗能量分析攻击的新方案
针 对 前 面 介 绍 的 对 SmartCard 上 RSA 算 法 进 行 的 能 量 攻
击的手段和方式, 该文提出两种防范措施即随机掩盖法和完全 掩盖法. 在介绍这两种防范措施之前, 先引入两个定义: 冗余算 法 f1 和 f2 .对于程序的编写人员来说模平方运算和模 乘 运 算 分别执行的指令周 期 数 是 能 够 确 定 的 , 别 记 为 c1 和 c2 . 可 分 以设计这样一种算法, 算法可以包括对内存的读写, 改变 该 对 寄存器的数值以及进行加减乘的运算, 前提是不改变关键的寄 存器和有用的内存的值, 即进行 亦 "冗 余 " 作 , 行 该 算 法 所 操 执 等于 c1 的算法记为 需要的周期数需要确定即为 c1 或者是 c2 . 等于 c2 的算法记为 f2 .通过下面的介绍 可 以 看 出 , 两 种 这 f1 , 方案是以牺牲效率为代价来换取安全性的.
3.3
对 RSA 私钥进行猜测的能量攻击
首先 取 一 随 机 数 让 SmartCard 进 行 签 名 , 集 消 耗 的 能 量 采
( , 从前向后猜测私钥各位的数值, 分别假设其为 信号 S j ) 然后,
1 和 0 , 然 后 使 SmartCard 分 别 基 于 这 两 种 假 设 对 该 随 机 数 进 行加密运算并采集相应的能量信号.如果对私钥的第 i bit 进
行猜测, 假设前面的 i-1 ) 已经破解, ( 则过程如下: bits 假设第 ibit 为零, ( , SmartCard 计算相应的能量消耗信号 S0 j ) , 假设第 ibit 为 1 , SmartCard 计 算 相 应 的 能 量 消 耗 信 号 S(j ) 分 1 别计算两个 DPA 差分信号:
5.1
随机掩盖
随 机 掩 盖 实 际 上 是 在 SmartCard 进 行 RSA 的 模 指 数 运 算
D(j ) (j ) (j ) =S -S0 0 D(j ) (j ) (j ) =S -S1 1 反 如 如 果 D(j ) , 第 ibit 为 0 , 之 , 果 D(j ) , 第 ibit =0 则 =0 则 0 1
为 1. 依次类推, 直到推测出最后一比特. 需要说明的是采用这 种攻击方法,为了提高信噪比,猜测每一比特需要采集大约 当然, 也可以只假定所有的 bit 都为 1 , 只需计算 100 个样本值. ( =S -S1 , D1 j ) (j ) (j ) 通过判断该值是否为 0 来确定某位是否为 1.
时随机地插入一些指令, 而 从 "掩 盖 " SmartCard 进 行 实 际 的 模 指 数 运 算 所 消 耗 的 能 量 . 具 体 实 现 过 程 以 前 面 的 函 数 exp 为 例, exp 进行修改如下: 对
( e N expchange M ,, )
{
r=M j=0 RND= 长度为二倍模长的随机数
( for i=n-2 ; ; ) i>=0 i--
4
对现有的防范措施的分析
目前, 许多文献介绍了防范能量攻击的方法, 致可以 有 大
{
r=r2 mod N
( if RND 的第 j 位为 1 ) 调用冗余算法 f1
分为三类:
134 2003.35
计算机工程与应用
else 调用冗余算法 f2
( if e 的第 i 位为 1 )
}
r=rM mod N
( if RND 的第 j+1 位为 1 ) 调用冗余算法 f1
6
结果
else 调用冗余算法 f2 j+=2} return r }
笔 者 将 这 两 种 方 案 分 别 用 两 块 SmartCard 来 实 现 . 其 中 签 模 RSA 的 模 长 度 为 1024bits, 名 用 到 中 国 剩 余 定 理 , 指 数 运 算用到 Montgomery 算法.分别采用文中介绍的两种 攻 击 方 法 进行攻击, 到目前还没有通过能量攻击得到密钥.
在函数 expchange 中 , 模 乘 和 模 加 运 算 之 后 分 别 进 行 了 在 冗余处理. 由于冗余算法消耗的能量和模乘或模加运算所消耗 的能量相当, 且在每次模乘和模加运算之后都存在, 此攻 而 因 也就无法从中 击者不可能通过滤波或者统计平均的方法滤除, 就无法得到密钥的相关信息. 另外, 获得运算实际的能量消耗, 随机地插入冗余算 由于每次进行模指数运算时都会取随机数, 法 , 此 , 面 介 绍 的 针 对 RSA 的 攻 击 法 对 expchange 算 法 是 因 前 无效的.随机数由 SmartCard 内部生成. (笔 者 用 DSP 进 行 试 验 , RSA 签 名 用 到 中 国 剩 余 定 理 和 在进行模指数运算时才用上述方案.) Montgomery 算法,
7
结论
由于公钥算法往往采用大数的模指数运算或者离散对数
算法, 公钥加密的速度远远低于对称算法, 比如 DES 要比 RSA (1024bits) 1000 倍, 快 人们一直在寻求提高公钥算法速度的方 案.但是, 这也带来了一个问题, 就是在优化算法的同时, 往往 忽略了目前集成工艺的水平, 这样, 由于计算量的不平衡, 造成 如何有效 了机密信息的泄漏.该文提出的方案只是针对 RSA , 地对抗威胁力强大的能量分析攻击需要硬件和软件共同的改 进和配合. (收稿日期: 2003 年 3 月)
5.2
静态掩盖
当指数 e 为全 1 总长等于模长) 模 指 数 运 算 消 耗 的 能 ( 时,
参考文献
1.P Kocher , Jaffer , Jun.Introduction to Differential Power Analysis J B Attacks and Related Attacks.http: /www.cryptography.com/dpa/technical, / 1998 2.P Kocher.Timing Attacks on Implementations of Diffie-Hellman, , RSA DSS, Other Systems[C].In: and Proceedings of Advances in CryptologySpringer-Verlag , 1996 : 104~113 CRYPTO ˊ96 , 3.T S Messagers , A Dabbish , H Sloan.Investigations of Power E R Analysis Attacks on SmartCards[C].In : Proceeding of USENIX Workshop on Smartcard Technology , 1999 : 151~161 4.E Biham, Shamir.Power Analysis of the Key Scheduling if the AES A
( Candidates[C].In: Second Advanced Encryption Standard AES) Candidate
量是最大的, 因为所需要的模乘运算最多.静态掩盖的思想就 是通过插入 冗 余 算 法 , 得 SmartCard 在 做 任 何 的 模 指 数 运 算 使 时消耗的能量相等, 等于指数最大即为全 1 时, 指数运算 都 模 消耗的能量, 就是将有效运算消耗的能量通过这种方式掩盖起 来.具体的实现过程仍以 exp 为例进行说明:
( e N expmax M ,, )
{
r=M
( for i=n-2 ; ; ) i>=0 i--
{
r=r2 mod N
( if e 的第 i 位为 1 )
r=rMmodN else 调用冗余算法 f2 } return r
Conference , : / csrc.nist.gov / encryption / aes / round1 / conf2 / aes2conf. http / htm, 1999-03 An 5.W van Eck.Electromagnetic Radiation from Video Display Units : Evesdropping Risk[J].Computers and Security , 1985 ; : 4 269~286
(上接 118 页)
表2 操作控制对象主要属性和方法表
属性 指示灯, 门盖仪表, 多态开关.动作部件对象 对象链表 标志位 位置记录 控制系统仿真模型所需参数 方法 装备部件对象的初始化 控制系统仿真模型 时间流刷新机制 操作流程控制 碰撞检测
图 4 是系统运行时截取的一幅画面. 图中所示的仪器位于 某武器系统左后附件仓内, 仪器上的各种按钮都是可以通过交 互外设进行操作的,而系统根据仿真模型也会做出相应的响 应.配备高级的交互设备 (如 头 盔 , 体 眼 镜 等 ) 可 以 使 用 户 立 , "沉 浸 " 所 构 造 的 虚 拟 环 境 中 , 成 预 定 的 训 练 课 目 , 高 操 于 完 提 作手的水平. 该系统使用 Vega 开发工具包, 大大降低了开发的难度, 而 采用面向对象的方法对系统进行分析与设计, 有利于提高系统 的扩展性, 重用性和可修改性.该文介绍的开发思路对开发类 似武器装备的虚拟操作训练系统具有参考意义. (收稿日期: 2003 年 1 月)
7
结束语
参考文献
科学出版社, 1. 赵沁平 .DVENET 分布式虚拟环境 [M]. 北京: 2002 国防科技大学出版社, 2. 张秀山等 . 虚拟现实技术及编程技巧 [M]. 长沙:
1999
王东木 . 面向对象的虚拟环境数据模型框架 [J]. 计算机工程与 3. 朱晓光, 图4 发射装置中的某个操作面板 应用, : 1999 ; (4 ) 27~29 35
计算机工程与应用
2003.35 135
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课