PKI:编码和算法

举报
黄生 发表于 2022/07/13 14:35:58 2022/07/13
【摘要】 ASN.1 Abstract Syntax Notation One 抽象文法描述语言。西方移动电话中协议消息就是采用ASN.1描述的,使用BERBasic Encoding Rules编码规则。SNMP Simple Network Management Protocol也是用ASN.1对所有数据进行描述的。所以这种语言虽然一般人陌生,但是是有用的,它为抽象数据结构的描述说明定义了一种记法...

ASN.1 Abstract Syntax Notation One 抽象文法描述语言。西方移动电话中协议消息就是采用ASN.1描述的,使用BERBasic Encoding Rules编码规则。
SNMP Simple Network Management Protocol也是用ASN.1对所有数据进行描述的。
所以这种语言虽然一般人陌生,但是是有用的,它为抽象数据结构的描述说明定义了一种记法。核心就是抽象。人类要是不会抽象,社会发展简直要停滞。
ASN.1成为描述通信协议/消息的标准文法。还可以用于生成应用程序编程语言代码(通过ASN.1软件工具)。
ASN.1的编码规则是把ASN.1语言说明的数据转化为一种标准格式的系列规则。编码规则有BER,DER Distinguished Encoding Rule。
说了那么多,来看一个ASN.1描述。编码过程就不看了,实在太枯燥了。
image.png

下面要说密码算法了

  1. 对称的
    • DES 是IBM提出的。1977年被美国家标准局颁布为商业数据加密标准。它是分组的,就是将数据以64位作为分组对数据进行加解密,密钥长度是56位(8个字节,64位,每个字节的第8位做奇偶校验,所以实际是56位)。
    • 3DES triple DES. 用3个56位的密钥依次进行3次加密。简单粗暴。
    • AES 1997年美国开始征集高级加密标准AES来替代DES,经过多个候选算法打擂台后,2000年推荐Rijndael作为AES,01年发布,02年成为正式标准。它是一种迭代分组密码。既然是迭代,你就知道会有很多轮的加密流程了。
    • SM4国家密码管理局2006年发布。也是迭代分组密码算法,密钥长度128位。
  2. 非对称的
    • RSA这个名称是美国3个科学家的首字母来命名的,1978年正式发表。算法基于数论中的大数分解难题。
    • ECC Elliptic Curve Cryptography 椭圆曲线密码体制,1985年提出。椭圆曲线离散对数问题很难求解。计算量小,速度快,能以更小的密钥长度来产生于其他算法相同等级的安全性。(对称密钥128位的安全水平 == 3072位RSA密钥 == 256位ECC)
    • SM2 国家密码管理局2012年发布的椭圆曲线公钥密码算法。
  3. 摘要的
    • MD5以512位分组来处理输入,产生128位散列值。
    • SHA1以512位分组来处理输入,产生160位散列值。
    • SM3国家密码管理局2012年发布的摘要算法。

Mode of Operation 运算模式,也叫工作模式,是分组密码算法,如何对多个分组进行处理(分组与分组之间的关系)的技术方案,有ECB、CBC、CFB、OFB等。

对上述密码算法的扩展,有MAC和HMAC。
MAC Message Authentication Code 消息认证码。对消息使用密码算法和密钥进行处理,生成一个固定大小的小数据块,就是MAC值。收消息的人通过MAC值验证消息的完整性和来源。之前双方要协商好密码算法和密钥。常用的有:

CBC-DEC-MAC 基于DES/3DES。MAC值取最后一个分组密文最左端的4-8字节。既然是部分值,好奇怎么能保证完整性呢?
HMAC Keyed-Hashing for Message Authentication 基于MD5或SHA1。

OTP One-Time Password 一次性口令。还基于密码算法和密钥,对同步因子进行处理后,得到口令,同步因子随时变化,所以每次口令不同。因为口令有很短的时效性,所以这个思路在短信验证码上广泛使用,但是应该没什么算法,应该就是简单的产生几位随机数字。还有工行推出过电子密码器,就是在交易时,比如转账时,在密码器输入一些要素(金额、账号等),得到一个密码,用于转账验证,不知道是不是这个技术。

数字签名/电子签名,就用到了摘要算法和非对称算法。先将数据电文/信息(合同或其他文件)生成摘要,然后用私钥对摘要进行签名(加密),将信息和签名一起发出。收到者也生成摘要,再用公钥对签名进行验签(解密),然后和摘要对比,一致就表示身份和信息都对的上。谁也别想赖。

还有数字信封,结合对称和非对称加密算法,扬长避短。

还有Base64编码方式,在网络上常用,将任意二进制数据编码成64个可打印的ASCII码字符。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。