当前位置:文档之家› 加密方案汇总

加密方案汇总

加密方案
一、加密目的
为了防止未经授权访问或拷贝单片机的机内程序,大部分芯片都带有加密锁定位或者
加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程
器直接读取单片机芯片内的程序,这就叫芯片加密。
加密认证芯片放在PCB板上,外加一些简单的电路,同时写入算法防止芯片里面的程
序被盗窃者读走
二、加密方法
1、磨片。用细砂纸将芯片上的型号磨掉,对于偏门的芯片比较管用,对常用芯片来说,只
要猜出个大概功能,查一下哪些管脚接地、接电源很容易就对照出真实的芯片了;
2、封胶。用那种凝固后象石头一样的胶(如粘钢材、陶瓷的那种)将PCB及其上的元件
全部覆盖。里面还可故意搞五六根飞线(用细细的漆包线最好)拧在一起,使得拆胶的过
程必然会弄断飞线而不知如何连接。要注意的是胶不能有腐蚀性,封闭区域发热不太大;
3、加密算法。需要密钥,对主要算法加密或者进行认证;
4、使用裸片。看不出型号也不知道接线。但芯片的功能不要太容易猜,最好在那团黑胶里
再装点别的东西,如小IC、电阻等。
三、加密算法
(一)加密算法分类
加密算法分为对称式加密算法、非对称式加密算法和杂凑(Hash)算法三种。
1、对称式加密算法:对称式加密算法加密和解密的密钥相同,金融行业常用的算法包括
DES、3DES、AES等。
2、非对称式加密算法:非对称式加密算法的密钥分为公钥和私钥,公钥公开用于加密,私
钥保存用于解密,从公钥到私钥的过程是不可逆的。常用的算法包括:基于大数分解的
RSA算法和基于椭圆曲线离散对数问题的ECC算法。RSA算法是基于一个十分简单的数
论事实:将两个大素数相乘十分简单,但是想要对其乘积进行因式分解却极其困难,因此
可以将乘积公开作为加密密钥。ECC算法的数学基础是利用椭圆曲线上的有理点构成Abel
加法群上椭圆离散对数的计算困难性。
3、Hash算法:Hash算法是一种单向算法,可以对目标信息生成一段特定长度的唯一的
Hash值,常用的算法包括:MD、SHA-1、SHA-2、SHA-3。SHA(安全散列算法)是美国
国家安全局设计,美国国家标准与技术研究院发布的一系列密码散列函数,现在已经成为
公认的最安全的算法之一,并被广泛应用。
已经证实较容易破解的算法(不安全算法):MD4, MD5, SHA-0, SHA-1, DES。
(二)密钥强度
衡量加密算法的安全性的一个关键性指标是密钥强度,密钥强度为K意味着破解密钥
的计算复杂度为2K。如下表,为各种算法的密钥强度。
表一 对称式加密算法的密钥长度和强度
算法 密钥长度 密钥强度
DES 56
3DES-2 112 80~112
3DES-3 168 112
AES-128 128 128
AES-192 192 192
AES-256 256 256

表二 非对称式加密算法的密钥长度和强度
密钥长度 密钥强度
ECC算法 RSA算法
112 512 56
160 1024 80
224 2048 112
256 3072 128
384 7680 192
512 15360 256

表三 杂凑加密算法的密钥长度和强度
Hash算法
MD5 SHA-1 SHA-224 SHA-256 SHA-384 SHA-512
强度
60 112 128 192 256
表四是国际密钥强度建议值。
表四 国际密钥强度建议值
安全性 密钥强度
抵御个人实时攻击
32
小型组织的攻击保护
64
中等规模组织的攻击保护
72
专业机构的简易攻击保护
80
短期保护要求
96
中期保护要求
112
长期保护要求
128
可预见未来
256
目前的趋势主要是对称式加密逐渐过渡到AES算法,非对称式加密算法ECC算法和
RSA算法共存,其中ECC算法在加解密的过程中比RSA算法速度更快,占用空间小,Hash
算法MD5由于安全性问题已经不再使用,主要以SHA算法为主,并往更长长度的密钥发
展。
(三)安全等级
信息安全产品分级评估是指依据国家标准GB/T 18336—2001,综合考虑产品的预期应
用环境,通过对信息安全产品的整个生命周期,包括技术,开发、管理,交付等部分进行全
面的安全性评估和测试,验证产品的保密性、完整性和可用性程度,确定产品对其预期应用
而言是否足够安全,以及在使用中隐含的安全风险是否可以容忍,产品是否满足相应评估保
证级的要求。
产品分级评估(EAL)是评估保证要求的一个基线集合。每一评估保证级定义一套一致
的保证要求,合起来,评估保证级构成预定义的GB/T 18336保证级尺度。在GB/T 18336中
定义了以下7个评估保证级:
(1) 评估保证级1(EAL1)——功能测试;
(2) 评估保证级2(EAL2)——结构测试;
(3) 评估保证级3(EAL3)——系统地测试和检查;
(4) 评估保证级4(EAL4)——系统地设计、测试和复查;
(5) 评估保证级5(EAL5)——半形式化设计和测试;
(6) 评估保证级6(EAL6)——半形式化验证的设计和测试;
(7) 评估保证级7(EAL7)——形式化验证的设计和测试。
分级评估是通过对信息技术产品的安全性进行独立评估后所取得的安全保证等级,表明
产品的安全性及可信度。获得的认证级别越高,安全性与可信度越高,产品可对抗更高级
别的威胁,适用于较高的风险环境。EAL5+几乎已是普通民用安全等级的最高标准认证。
(四)加密方式
在实际产品中,利用现有的加密算法,会对关键软件进行加密。会用到的加密方式一般
有三种。
1、 程序加密:基本思路是将部分或者全部程序利用某个算法进行加密,程序运行时再通
过密钥将加密的程序解密。分为两种情况主控硬件支持加密和主控硬件不支持加密。
(1)如果主控硬件上支持加密,这个操作将在主控内部执行,具体实现如下:解密的密钥
通过PC上的软件写入主控内部的存储器中,同时PC软件将明文程序进行加密,完成后将
加密后的密文程序烧录到外部存储器中,上电后主控会先运行解密程序,将加密的密文程序
解密成明文以供执行程序。这种加密方式的好处就是密钥和解密的算法都在主控内部运行,
外部无法获取密钥,外部存储器的程序也是密文的,没有密钥是很难破解成明文的。
(2)如果主控硬件上不支持加密,一般做法是将程序分成两部分解密程序和核心程序,解
密程序包括解密的算法和密钥(或者获取密钥的代码),核心程序会事先通过PC软件根据
同样的加密算法进行加密,上电后主控会先运行解密程序,获取密钥,并且将加密的核心程
序进行解密来执行功能。这种加密方式的风险在于外部会相对简单地获取密钥,一旦密钥被
获取,那么整个加密将瓦解。
2、认证加密:这是一种基于加密芯片的加密方式,防止程序拷贝到其他非法的硬件上。实
现思路是主控通过某种通讯方式(SPI、I2C,1wire等)跟加密芯片进行通讯,通讯的数据
可以选择明文或者密文,密钥和程序以明文的方式存储在存储器中,加密芯片内部也会事先
写入密钥,上电后主控会先运行认证程序,发出一些命令给加密芯片,进行一些认证(MAC
认证等),如果认证通过,则继续运行程序,如果失败,则终止。这种方式的风险在于,如
果程序较小,非法者容易通过反汇编找到认证的程序,并且跳过这部分认证,也可以实现程
序的非法拷贝。厂家国外的有ATMEL、ST等,国产的有凌科芯安科技
3、嵌入式加密芯片:原理是在硬件上添加一个协控制器,这个协控制器运行核心的算法,
主控制器想要获取算法的结果只能通过命令让从控制器执行算法,并且协控制器将执行的结
果返回给主控制器。这种方式最大的弊端是如果算法比较复杂,则需要一个强大的协控制器
才能支持。目前市场上常见的嵌入式加密芯片控制器内核有8051、Cortex-M0、Cortex-A5等,
厂家国外的有ATMEL、ST等,国产的有凌科芯安科技、上海动信微电子等。
(五)实际案例
1、使用DS28E01作为加密芯片,该芯片带有1Kb的EEPROM,使用SHA-1算法引擎,这
是一种获取信息摘要的加密算法。
2、加密狗(加密U盘):一般是PC软件根据加密狗获取的一些信息,来确定是否合法设
备。例如,一种做法是软件随机向加密狗发出一段数据,加密狗根据内部的算法得出结果并
将结果返回,软件来判断是否合法。或者一种做法是软件运行时向加密狗获取参数,若是非
法的加密狗将返回错误的参数,软件会继续运行,但是不能正确的运行。
3、ATSHA204A:这是Atmel的一款加密芯片,有SOP和SOT23等封装,通过I2C或者
1Wire进行通讯,通讯可以选择是否加密,支持SHA-256加密算法,内部集成了随机数产生
模块,可以存储多达16个Key。

相关主题