cyphers

1.RSA算法是目前最可靠的非对称加密算法,加密密钥和解密密钥不同,安全性比较高。

2.RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。实际设计上肯定是更复杂的。

3.目前公开破译的位数是768位,1024应该也已经是不安全的了,现在实际上在Linux上使用sshkey-gen生成的已经默认是2048位

4.数据量大,RSA和其他算法结合使用,一般在用于前期的相互认证和对称加密算法的协商,比如完成前期通信后,协商一个AES的密钥用来加密。

5.安全考虑,使用的时候一定要注意保护好私钥。

1.对称加密,DES, AES

2.非对称加密,RSA,ECC(椭圆曲线密码编码学,相比RSA等公钥算法,使用较短的密钥长度而能得到相同程度的安全性,原理记不清了,区块链里以太坊比特币好像用的是这个)

3.单向散列算法,MD5,SHA1,SHA2,HMAC(HMAC是密钥相关的消息认证码,HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出)

加密一般分为对称加密(Symmetric Key Encryption)和非对称加密(Asymmetric Key Encryption)。对称加密又分为分组加密和序列密码。

1.分组密码,也叫块加密(block cyphers),一次加密明文中的一个块。是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组。

2.序列密码,也叫流加密(stream cyphers),一次加密明文中的一个位。是指利用少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产生大量的伪随机位流,用于对明文位流的加密。

分组加密算法中,有ECB,CBC,CFB,OFB这几种算法模式。