微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 智能卡抗DPA攻击的设计与实现

智能卡抗DPA攻击的设计与实现

时间:05-27 来源:现代电子技术 作者:张剑峰 钱晶晶 谈慧宇 高进涛 点击:
0 引 言

随着个人计算机的蓬勃发展、因特网的演进与电子商务的冲击,市场对安全与个人隐私保护有了强烈的需求。智能卡拥有轻便与安全的特性,在网络上的安全付款、网络连接的安全控管与电子签章等应用领域扮演重要角色。我国已有不少信息安全应用系统借助智能卡来记忆系统运作所需的秘密信息,并利用智能卡具有的计算能力提升系统安全,智能卡正逐步取代磁卡而广泛应用于金融及其他相关产业。

随着对智能卡的攻击方法的不断发展,特别是随着近年来许多新型的攻击智能卡技术被公开发表,智能卡的安全面临巨大挑战。这些攻击技术能容易地以低价设备取得的信息,如电力消耗、执行时间、故障时的输出与输入行为、辐射、电力尖峰情形等信息攻击智能卡。其中,差分功耗分析(Differential Power Analysis,DPA)就是一种很有效的能量攻击方法,其主要是借助统计方法来提取与密钥有关的信息,实现过程比较复杂,但对攻击者的智能卡专业技术水平的要求并不是很高,DPA对智能卡中相关的内嵌加密算法的成功攻击已经被广泛报道。

智能卡是一种在发卡后可下载应用程序的公开平台架构,所以为了防止伪卡与保护持卡人,智能卡必须具有高安全性和高可靠性。VISA国际组织规定智能卡必须符合最高的安全技术层次要求,不但其内嵌储存体和总线上传递的数据都要求加密,而且智能卡至少要提供一个以上的对策防止简单功耗分析(Simple Power Analysis,SPA)与DPA攻击。

1 智能卡芯片架构

智能卡芯片架构如图1所示,主要由如下模块构成:

(1)嵌入式微处理器:可控制硬件执行相关的指令完成加解密操作。其一般内置有存储器加解密单元,可通过其存取存储体数据;并通过硬件防火墙管制应用程序存储体。

(2)内置存储体:智能卡的存储体分为SRAM,E2PROM与ROM三块区域,其中ROM存放智能卡操作系统、执行环境等程序及数据;E2PROM存放用户定制代码,给不同的用户、不同的应用提供灵活的选择;SRAM为执行系统操作提供临时空间。

(3)复位电路:用于产生系统复位信号,其输入来自RESET引脚输入的外部复位信号。

(4)随机数产生器:随机数在智能卡的安全性上扮演着重要角色,密钥生成、数字签名、认证和鉴别及各种安全通信协议都离不开高质量的随机数。该模块主要产生无法预测的高质量加密用数据。

(5)ISO7816接口控制器:为智能卡与读卡器数据交换的重要接口,主要是硬件支持由ISO7816制定的T=0及T=1两种协议,T=0负责传送字符(Charac-ter);T=1则负责传送区块(Block)。

(6)中断控制器:用来接收定时单元、加密引擎、接口控制器的中断要求,并传送"中断"信号给微处理器,通知微处理器外围模块已完成指定工作或有事情发生。

(7)内置定时单元:主要当作看门狗定时器用,用以监督系统的运作,监控内部应用程序是否正确执行。若发现程序运行错误,就会给中断控制器一个中断信号,使智能卡进入暂停状态,一直要等到重置信号出现才恢复正常运行。

(8)电源控制器:内置的电压传感器和控制电路为其他模块提供稳定、安全的电源供应。

(9)功耗管理模块:智能卡对功耗的要求很高,该模块是为达到节省电源的目的设计的省电装置,其带有停止和省电两种工作模式。其中,停电模式支持ISO7816-3的频率停止模式,以降低整个系统的电源消耗;省电模式则根据系统不同模块工作特点规划了各模块的工作顺序及状态,使工作时间互斥的模块中的一部分工作时,另一部分工作在睡眠状态,从而达到降低系统整体功耗的目的。

(10)频率产生电路:智能卡作为一个复杂的SoC芯片,其系统工作频率和加密操作频率是不同的,为此一般的智能卡内部都有PLL频率产生电路。其频率来自CLK脚输入的外部频率,产生供微处理器与加密引擎中各种加密协处理器使用要求的频率。

(11)加密引擎:智能卡的加密引擎中嵌入了能实现多种加密算法的协处理器核,使其可以支持一般的加密算法包括:RSA,DES,AES。该模块主要包括:

加密仲裁 根据系统不同用途下的不同加密操作要求,通过相关的控制指令管理不同的协处理器工作。DES协处理器 支持数据加密标准(Data E-ncryption Standard,
DES)。以56 b密钥为基础的密码块加密技术,DES使用56 b密钥对64 b的数据块进行加密,并对64 b的数据块进行16轮编码,结果为64 b的密文。

AES协处理器 支持高级数据加密标准(Ad-Vanced Encryption Standard,AES)。使用的是一个迭代型分组密码,对加密来说,输入是一个明文分组和一个密钥,输出是一个密文分组;分组长度和密码长度都可变,可以独立指定为128 b,192 b或256 b。

RSA协处理器 支持公开金钥加解密系统。RSA主要是指数的运算,是基于大质数的因数分解的公匙体系,简单来讲就是两个很大的质数,一个作为公钥,另一个作为私钥,如用其中一个加密,则用另一个解密。密钥长度从40~2048 b可变,密钥越长,加密效果越好,但加密、解密的开销也就越大。

智能卡的ASIC设计,主要模块如加密引擎中所涉及的加解密协处理器、嵌入式微处理器等在市场上都由相关的IP核提供,这些IP的设计都采用了相关算法实现了抗DPA攻击,具有很好的安全性。但是将上述IP整合及其他模块的设计上必须注意采取抗DPA攻击措施,才能保证智能卡的高安全性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top