Secat's Blog

学习·记录

这世界变化快的真是铃儿响叮当


第十五周总结

0x00 本周所学总结

由于要做PPT,这周主要学了密码学方面的东西,把接触网安之后遇到的编码及密码总结了一下。还有一直逃避的现代密码学部分,比如RSA、DES、Hash等。

0x01 RSA

RSA加密

在RSA中,明文、密钥和密文都是数字。RSA的加密过程可以用以下公式来表达:
密文 = 明文 E mod N
也就是说,RSA的密文是对代表明文的数字的E次方求mod N的结果。换句话说,就是将明文和自己做E次乘法,然后将其结果除以N求余数,这个余数就是密文。有了E和N,就可以对明文进行加密,所以说E和N是RSA加密的密钥,也就是说,E和N的组合就是公钥。一般写成:公钥是(E, N)。

  • E是加密(Encryption)的首字母 N是数字(Number)的首字母

RSA解密

RSA解密公式: 明文 = 密文 D mod N 也就是说,对表示密文的数字D次方求mod N就可以得到明文。换句话说,将密文和自己做D次乘法,再对其结果除以N求余数,就可以得到明文。 这里所使用的数字N和加密时使用的数字是相同的。数D和数N组合起来就是RSA的解密密钥,因此D和N的组合就是私钥。

*D是解密(Decryption)的首字母。


RSA:生成密钥对

1)求N: N = p * q (p、q为两个很大的质数) 2)求L: L是 p-1 和 q-1 的最小公倍数(the common multiple, lcm) L = lcm(p-1, q-1)

3)求E: E和L的最大公约数(greatest common divisor, gcd)必须为1。 1 < E < L gcd(E, L) = 1

4)求D: 数D是由数E计算得到的。且需满足以下关系: 1 < D < L E * D mod L = 1

0x02 单向散列函数

什么是单向散列函数

单向散列函数(one-way hash function)也称为消息摘要函数、哈希函数或者杂凑函数。 单向散列函数有一个输入和输出,其中输入称为消息,输出称为散列值。单向散列函数可以根据消息计算出散列值,而散列值可以被用来检查消息的完整性。

单向散列函数的性质

根据任意长度的消息计算出固定长度的散列值
能够快速计算出散列值
消息不同散列值也不同
具备单向性

0x03 本周心得

密码学真的是…不得不叹服先辈们的脑洞…

从这周开始复习(预习)高数离散大物英语等,所以网安的东西学的应该不多,未来几周学的东西应该都比较少,毕竟落下的太多了==、

THANKS

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持

^_^