背景
之前分析https时候,看到了RSA加密算法,太过久远了,在这里回忆一下,顺路做个笔记
RSA背景
RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的
RSA算法是一种非对称加密算法,与md5,sha对标,和md5有个盐值不一样,RSA有公钥和私钥,涉及密钥协商
RSA算法原理
简单来说,选择两个质数,作为公钥,选择一个随机数字,作为私钥,根据两个质数的相乘,减一相乘,得到两个结果,再选择一个模逆元,根据两个结果加模逆元套入DE%T == 1,得到一个由模逆元得到的公钥参数;
模逆元就是私钥的核心;
举例说明:
取P=11,Q=13
令N=PQ=1113=143
令T=(P-1)(Q-1)=1012=120
取E=7,作为模逆元
由公式DE%T=1,D*7%120=1得:D=103 ( d * 7 == 120的倍数 + 1,103就好;
(143,103)作为公钥,将(143,7)作为私钥。
用公钥加密信息
加密
比如一个6f,十进制111
111^103 mod 143 == 45
就是45
解密
45 ^ 7 mod 143 == 111
所以又解出了111;