> 文档中心 > 嵌入式安全加密算法种类

嵌入式安全加密算法种类

目录

一、加密算法简介

1、HASH算法:哈希散列算法和哈希摘要算法

2、对称加密和非对称加密

3、国密算法

二、安全芯片解读

1、安全芯片类型

2、协处理器简介

3、安全芯片工作模式


一、加密算法简介

 

1、HASH算法:哈希散列算法和哈希摘要算法

(1)概念:把一段任意长度的数据变成均匀分布固定长度的数据、反之不可以。y=Hash(x)  已知x可以得到y,反之不可以

(2)常见hash算法

MD5(64位) 、SHA、SHA1(160位) 、SHA256(256位)、SHA512(512位)、RIPEMD-160(160位)

2、对称加密和非对称加密

(1)常见对称加密算法

DES:数据加密标准,速度较快,一共有三个参数入口(原文,密钥,加密模式)。

3DES:是以DES为基础更安全的变形,对数据进行了三次加密,

AES:高级加密标准,新一代标准,加密速度更快,安全性更高

(2)常见非对称加密算法

RSA:该算法基于一个数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却及其困难,因此可以将乘积公开作为加密密钥

ECC: Ellipse Curve Cryptography,椭圆曲线算法(比特币使用)。通过椭圆曲线方程性质产生密钥。ECC164位的密钥相当于RSA1024位密钥提供的保密强度,而且计算量更小,处理速度更快,存储空间和传输带宽占用较少。

(3)加密方式对比

加密方式

常见算法

优点

缺点

对称加密

DES、3DES、AES、TDEA、RC5、Blowfish、IDEA、...

加解密快速,使用简单;

常用于对大量数据加密

密码/密钥需要在网络上传输,不安全;秘钥管理困难;安全等级依赖秘钥长度

非对称加密

RSA、ECC、...

只有公钥在网络上传输,私钥留在本地,相对安全

加解密比较慢,使用复杂;有被劫持风险

混合模式(对称和非对称)

 

使用对称加密模式,但是对加密的密码使用非对称加密方式传输

 

3、国密算法

加密名称

加密方式

说明

SM1

对称加密

强度与AES相当,不公开

SM2

非对称加密

基于ECC

SM3

哈希算法

校验结果为256位,安全性要高于MD5算法和SHA-1算法

SM4

对称算法

密钥长度和分组长度均为128位,安全性上高于3DES算法

二、安全芯片解读

1、安全芯片类型

按照硬件不同可分为以下三类:

(1)EEPROM加密:通过在EEPROM寄存器上通过user id,password认证的方式存储客户的核心数据。价格便宜、安全性较低

(2)逻辑电路加密:以逻辑门的方式把加密算法固化在硬件芯片中,一般为软硬件双结合的方式进行算法认证,此类芯片一般使用AES对称算法进行算法认证。

(3)单片机加密:采用智能卡内核如增强型8051内核 、ARM 32位SecurCore内核(SC100基于ARM7TDMI、SC300基于Cortex-M3),与专门处理加密算法的协处理器合二为一。可将一小部分代码移植到其中,功能强大,为常见的加密芯片类型。

(4)智能卡加密:使用存储器总线加密(Bus Encryption)技术,数据以密文方式存储在存储器中,即使入侵者获得数据总线的数据,也不可能知道密钥或者别的敏感信息(如数据还原方法);使用ISO7816协议

2、协处理器简介

(1)概念:一种协助中央处理器完成其无法执行或执行效率、效果低下的处理工作而开发和应用的处理器

(2)特点:

特点

说明

处理特定任务

数学协处理器可以控制数字处理;图形协处理器可以处理视频绘制

内核相连

可以附属于ARM处理器。通过扩展指令集或提供配置寄存器来扩展内核处理功能。通过协处理器接口与ARM内核相连

扩展指令集

提供一组专门的新指令添加到标准ARM指令集中,来扩展指令集。这些新指令是在ARM流水线的译码阶段被处理的。如果在译码阶段发现是一条协处理器指令,则把它送给响应的协处理器。如果该协处理器不存在,或不认识这条指令,则ARM认为发生了未定义指令异常

3、安全芯片工作模式

  1. 真值点判断:主控MCU在工作时,判断一下外部的加密芯片是否合法,然后决定自身是否要正常工作。判断加密芯片是否合法的方式有:PIN 码验证,对称算法运算(AES,DES 等),非对称算法运算(RSA,ECC 等),散列算法(HMAC-MD5,HMAC-SHA,HMAC-SM3 等)
  2. 数据加解密:将一部分数据秘钥存放在加密芯片中,当主控MCU工作需要解密时,从加密芯片将秘钥读出,然后在主控芯片中再解成明文使用。常见的加解密算法有:对称算法(AES,DES 等),非对称算法运算(RSA,ECC)等。
  3. 功能运算:将主控芯片的一部关键代码放在加密芯片中,当主控 MCU 工作时,传入参数,请求加密芯片执行运算,并获取计算结果。