什么是RAC
- RAC是一种非对称加密算法,公钥加密,私钥解密。
扩展
- 凯撒密码:明文对应暗文,通过暗文对明文进行解密。
- 对称加密算法:加密、解密使用同一种算法(密钥)。密钥指加密和解密的规则。
RAC特点
- 相对安全(只传递公钥,不需要传递私钥,避免私钥在传输过程中被黑客获取)
- 加密效率低
- 加密数据小
RAC组成
欧拉函数
表达式 :Φ(n)
与n互质的个数 (因为:1~8和8互质的数有1、3、5、7 所以 : φ(8) = 4)
特点:
1.当n是质数的时候,φ(n)=n-1。
2.如果n可以分解成两个互质的整数之积,如n=AB则: φ(AB)=φ(A)* φ(B) 根据以上两点得到:如果N是两个质数P1 和 P2的乘积则φ(N)=φ(P1)* φ(P2)=(P1-1)*(P2-1)-
欧拉定理
两个正整数m和n互质,那么m的φ(n)次方减去1,可以被n整除
-
费马小定理
欧拉定理的特殊情况:如果两个正整数m和n互质,而且n为质数!那么φ(n)结果就是n-1
模反元素
如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1。这时,b就叫做a的“模反元素”。
迪菲赫尔曼密钥交换
-
通过拆分数学公式的形式交互秘钥
RSA使用(OpenSSL)
cat private.txt (查看文本信息)
vi message.txt (生成明文文件)
cat message.txt (查看文件内容)
openssl genrsa -out private.pem 1024 (生成RSA私钥,秘钥长度为1024)
openssl rsa -in private.pem -pubout -out public.pem (从私钥中提取公钥)
openssl rsa -in private.pem -text -out private.tex (转化为明文信息)
openssl rsautl -encrypt -in message.txt -inkey public.pem -pubin -out enc.txt (通过公钥进行加密)
openssl rsautl -decryptt -in enc.txt -inkey private.pem -out dec.txt (通过私钥进行解密)
openssl rsautl -sign -in message.txt -inkey private.pem -out enc.txt (通过私钥进行加密)
openssl rsautl -verify -in enc.txt -inkey public.pem -pubin - outdec.txt(通过公钥进行解密)
HASH 特点
- 算法公开
- 相同的数据加密结果不变
- 不同的数据加密结果定长
- 不可逆
哈希用途
- 密码加密:服务器不需要知道用户真实密码,只需要匹配HASH值
- 数字签名
1.原始数据进行HASH
2.使用RSA加密HASH值(这部分数据就是原始数据的签名信息)
3.将原始数据+数字签名一起发给服务器验证
-对称加密算法
ECB:电子密码本;每一块数据独立加密
CBC:链式加密,每一块数据加密都依赖上一块数据,有效的保证数据的完整性