Bootstrap

密码学基础

极客时间《安全攻防技能 30 讲》学习笔记 02

03 | 密码学基础:如何让你的密码变得“不可见”?

对称加密

  • DES(数据加密算法,Data Encryption Standard),密钥 56 位,加密强度弱

  • 3DES,密钥长度 168 位,加密强度中等

  • IDEA(国际数据加密算法,International Data Encryption Algorithm),密钥 128 位,加密强度强

  • AES(高级加密标准,Advanced Encryption Standard),密钥 128/192/256 位,加密强度强

  • SM1(SM1 Cryptographic Algorithm)密钥 128 位,算法不公开,国家机密

  • SM4(SM4 Cryptographic Algorithm)密钥 128 位,算法公开,国家标准

非对称加密:解决了密钥分发问题

  • RSA(RSA Algorithm):加密强度弱

  • ECC(椭圆加密算法,Elliptic Curve Cryptography):加密强度强

  • SM2(SM2 Cryptographic Algorithm):加密强度强

散列算法

  • MD5(消息摘要算法,Message-Digest Algorithm 5),长度 128,冲突概率中

  • SHA(安全散列算法,Secure Hash Algorithm),长度 160、256,冲突概率低

  • SM3(SM3 Cryptographic Algorithm),长度 256,加密强度与 SHA-256 相当,冲突概率低

加盐

对称加密用 AES-CTR、非对称加密用 ECC、散列加密用 SHA256 加盐。

学习过密码学相关的知识,了解区块链技术的时候,也看过非对称加密,不过这篇专栏文章还是比较系统的。即使不是去面试安全岗位,一般的技术岗位对于这些密码基础只是也是应该有所了解的。

重视安全和性能用对称加密 AES-CTR(SM4),国产硬件对称加密 SM1,密钥分发困难用非对称加密 ECC(SM2),散列加密用 SHA256 加盐(SM3加盐)。

留言里面有同学说 AES,你值得拥有,这样更好记一些。

我对国密和等保比较重视,因为面试的时候问到的可能性比较大(国企)。

如果有更快的计算机,那么密钥的长度也需要不断加长么?至少对于对称加密来说。

Go 语言的学习遇到了一些瓶颈,其实是自己的时间分配有点问题,所以把之前的一些存货拿来发表。这个安全专栏的学习,当初是为了去应聘安全相关的项目经理职位,暂时用不到了,就算是温故知新吧