信息安全相关算法
1. 加密和签名
加密算法有加密和签名两种用途,具体解释可以参考我之前写的一篇文章:
https://blog.csdn.net/weixin_42967006/article/details/97786820
2.CMAC
CMAC不是一种算法,是一种方法,底层算法基于AES等对称加密算法,输入是明文+Key,输出是密文,可用于车辆上的安全访问。具体可以参考下面的文章:
https://blog.csdn.net/KXue0703/article/details/119522934
在线计算网站:
https://www.lddgo.net/encrypt/cmac-calculate
3.RSA
在线秘钥解析网站:
https://www.oren.net.cn/rsa/info.html
在线生成秘钥及加解密:
https://www.metools.info/code/rsa385.html
https://www.lddgo.net/index
通俗易懂的算法说明:
https://blog.csdn.net/m0_51607907/article/details/123884953
https://blog.csdn.net/chenhao0568/article/details/134320250
RSA算法中常用的参数:
公钥:(E, N)
私钥:(D, N)
公钥加密:C-密文,P-明文
C=P ^ E (mod N)
私钥解密:P = C ^ D(mod N)
反向同理。
一对秘钥中可以用公钥加密私钥解密,也可以用私钥加密公钥解密。
4. EdDSA
椭圆密码学介绍:https://zhuanlan.zhihu.com/p/42629724
在线工具:http://v3ol.com/eddsa/generate
https://cyphr.me/ed25519_tool/ed.html?action=du1rc&api=om3tg&c=nh8hl&csrf_token=w1ing&email=ydz7q&immagine=r1aq8&item=d6rn8&key=i88e0&l=k4tha&lang=bwxmt&month=gt60m&name=s3vv0&p=fub7h&page_id=htagi&password=rk7ph&query=gc9su&redirect=flip8®ion=i06el&search=tawpc&url=fd9jb?a=w8xef&begindate=g711g&callback=vrfvj&cat=f226x&categoryid=qkosg&code=x6u91&enddate=s2gbq&jsonp=o95xh&keyword=hdvyc&keywords=o3l0z&list_type=sk8q5&page=d5wi1&q=rdxsw&terms=bjwc4&text=pngxm&tid=c84o3&token=tr6z8&uid=u8k5p&view=nk4ic&year=el0en?api_key=kfht0&category=npgkl&emailto=zj77x&from=sonb5&id=aj9ai&m=g93kz&mod=i1y6v&s=y7wvv&type=d1x09&unsubscribe_token=i4ndq?origin=serp_auto?utm_source=chatgpt.com?utm_source=chatgpt.com
5. SecurityBoot
https://zhuanlan.zhihu.com/p/669758355
最完整的SecurityBoot流程包括:
(1)安全镜像生成流程:
①编译得到原始明文程序
②对明文程序使用对称加密算法进行加密得到密文程序
③对密文程序进行摘要提取得到密文程序摘要
④将密文程序摘要和非对称算法的公钥放在一起,生成数字证书或根证书文件
⑤再对数字证书进行摘要提取得到数字证书摘要
⑥使用非对称算法的私钥对数字证书摘要进行加密,得到该用户的数字签名
其中密文程序、数字证书、数字签名都会烧写到控制器的Flash区域
此外,控制器中还需要提前烧录公钥的摘要、对称加密算法的秘钥,这类关键安全信息一般烧录在芯片的OTP区(One Time Programable)
(2)安全镜像启动流程
①HSM读取数字证书中的公钥,进行摘要提取,与预先烧录到芯片内的公钥摘要信息进行对比,一致则说明公钥合法
②对数字证书的数字签名进行解密运算,得到数字证书的摘要,再对数字证书进行摘要提取,对比两个摘要,如果一致则说明数字签名是用相匹配的私钥对该数字证书加密得到的,验证了数字证书的合法性。如果软件发布者没有相匹配的私钥,那么数字签名解密后一定与数字证书的摘要值不匹配。
③对存储在Flash的密文程序进行摘要提取,与数字证书中的摘要值进行比对,如果一致则说明密文程序合法
④对密文程序进行对称加密算法解密,得到明文程序加载到芯片运行区域
上述步骤可根据实际情况进行裁剪,比如:
①程序文件不进行对称加密,直接使用明文程序进行下发存储
②明文或密文程序文件进行摘要提取后,直接对摘要值进行私钥加密,加密结果当做数字签名。芯片中需要存储公钥,启动时直接对程序文件进行摘要提取,再对数字签名进行公钥解密,两相对比如果一致则说明程序合法