加密算法简介
刘武光,Business Manager Wuguang.Liu@MaximIntegrated.com
加密算法模型
$Y = f(x_1,x_2,...,x_n,Secret)$其中$x_1,x_2,...x_n$为输入明文数据,第三方可见; Secret为密码,第三方不可见加密算法通常包含逻辑运算(异或,以为,不带进位求和等)、求余, 某些特殊函数(如欧拉函数)等
2种算法输出结果类型Y
产生密文Ye,通过对应的解密算法可以还原为原文$x_1,x_2,…,x_n$,用于内容加密和安全身份认证 生成摘要码(Digest Code),亦可称为数字签名信息(DSA)、认证信息码(MAX),用于安全身份认证
- 加密算法类型
对称加密算法:MD5 SHA-1 SHA-256 AES DES 3DES 非对称加密算法:EC ECDSA RSA等
- 对称加密算法:
- 收发采用相同密码运算
- 存放的密码需要安全保管
- 同安全等级下,加密算法较非对称算法简单从而更少的运算时间
- 非对称加密算法:
- 收发采用不同密码进行运算(发送方使用公匙加密,接收方私匙解密;或接收方用私匙加密,发送方用公匙解密)
- 由私匙生成公匙或由公匙生成私匙
- 私匙需要妥善保管,公匙为公开信息,无需安全保存
SHA-x(SHA-1 … SHA-512)
非对称加密算法ECDSA P-192(Puk 签名 认证方程 域参数 G(x,y),p,n)
- 公匙(Puk)
- 先确定私匙(随机生成)=
$d$ - 计算出公匙Puk:
$Q(x, y) = G(x, y) * d$
- ECDSA器件签名信息(计算结果):r,s
- 主机输入数据源 = m
- ECDSA从器件产生的随机数 = k
$x_1,y_1 = [G(x,y)*k*]\mod\ p$$r = x_1\mod\ n$$s = [k^{-1}*(m+d*r)]\mod\ n$
- 主机认证ECDSA器件的签名信息
- ECDSA器件的签名结果:r,s
$ w = s^{-1}\ mod \ n$$ u1 = [m * w]\ mod \ n$$ u2 = [r * w]\ mod \ n$$ (x_2,y_2) = [(u_1 * G(x,y)) + (u_2)*Q(x,y)]\ mod \ n$如果计算粗的$x_2 = r$, 则签名信息通过主机认证
ECDSA P-192加密算法
- 椭圆形曲线
$F_p: \ y^2 = x^3 + ax + b$ - 算法参数定义:
| 算法参数名称 | 符号 | ECDSA P-192加密算法 hex数 |
|---|---|---|
| 素模 | p | FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF FFFFFFFF |
| 素域 | n | FFFFFFFF FFFFFFFF FFFFFFFF 99DEF836 146BC9B1 B4D22831 |
| 椭圆曲线系数a | a | FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF FFFFFFFC |
| 椭圆曲线系数b | b | 64210519 E59C80E7 0FA7E9AB 72243049 FEB8DEEC C146B9B1 |
| 基点 x | Gx | 188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012 |
| 基点 y | Gy | 07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A1 1E794811 |
- remark: 主机和加密器件采用相同的算法参数
加密算法要求
- 不可逆运算
- 算法是公开的,标准的,便于广泛使用及第三方算法安全评估
- 采用“穷举”算法攻击密码几乎不可能
- 算法计算时要适度的资源和计算时间
加密算法实际应用
- 数据加密和解密:
- 常用算法:AES RSA 3DES
- 典型应用:数据安全传输&存储等
- 安全身份认证:
- 常用算法:所有加密算法均可用于认证,MD5 SHA-x EC ECDSA
- 典型应用:要求安全身份识别的应用,如防伪,ID识别,系统配件识别
- 采用对称加密算法(Eg. AES-128)进行加密/解密流程
Remark:收发双方的使用的相同密码
- 采用非对称加密算法(Eg. RSA-1024)进行加密/解密流程
Remark:
- 长度N < 1024
- 只有接收方使用加密方提供的私钥条件下,接收方才能正确的解密出原文
- 采用混合对称&非对称加密算法进行加密/解密流程
- 采用对称加密算法(Eg. SHA-256)进行身份认证流程
Remark:
- 只有主机&从机密码相等,且输入明文数据被正确传输的条件下, 从机才能通过主机安全认证
- 采用非对称加密算法(Eg. ECDSA-192)进行身份认证流程
Remark:
- 只有在主机使用的公匙是由合法从机私匙生成的条件下,从机才能获得主机的安全身份认证
- 美信加密器件
- 安全处理器(DS5250、MAXQ1850)
- 安全认证加密器件(SHA-1 SHA-256 ECDSA三类)
如何使用加密器件,包括2个步骤
- 初始化加密器件–加载器件的密码
- 所有加密器件采用相同密码或公匙&私匙密码对 缺:器件密码就是系统密码,一旦泄露整个系统安全性就崩溃
- 为每个器件加载唯一的密码或密码对 优:器件密码不代表系统的安全性,单个器件密码泄露,但整个系统仍然安全
- 认证环节:在应用程序中嵌入认证程序,以识别加密器件身份合法性
- 基于安全身份认证的加密器件不会对执行程序代码进行加密
- 基于随机数质询-响应机制,为每次认证过程产生的随机的算法结果,防止非法复现
SHA-1/SHA-2器件加载唯一密码流程
利用随机数发生器为每个ECDSA器件加载唯一公匙与私匙对
SHA 器件的随机质询-响应认证机制:
- Remark:主机基于器件的ROM ID和系统主密码计算出被认证器件的密码
不对称加密ECDSA器件DS28E35的随机质询-响应认证机制:
- Remark:只有在公钥和私钥配对的情况下,被认证的器件才能通过主机的认证
加密器件应用领域
- 软件代码(IP)保护
- 软件授权&升级管理
- 配件识别&电子标签
- 网上身份识别
- 低成本USB-key解决方案
- 有源RFID
- 数据传输&媒体文件的加解密
打印机相关等耗材管理(真伪 & 用量)
电池(真伪 & 特性参数)
医疗传感器(真伪 & 校准参数)
FPGA IP保护
低成本 USB-Key 解决方案—基于SHA-1/SHA-256 或者 ECDSA 加密器件,采用USB-UART控制器,无须额外的软件设计 SHA-1 DS28E10/DS28E01-100,SHA-256 DS28E15/22/25或者ECDSA加密算法的DS28E35
数据传输加/密& 媒体文件数字版权保护(DRM)
作者:EnzoSun
微信关注:勿忘初兴
本文出处:http://sunduoze.github.io/post/%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95%E7%AE%80%E4%BB%8B/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Sun's Blog