(2)非对称密钥加密——RSA算法&ECC算法(简介)

本文深入解析了加密技术中的对称密钥和非对称密钥,重点介绍了RSA算法和ECC算法的工作原理。通过数学原理和实例展示了如何生成公钥和私钥,以及如何确保加密解密后的信息一致性。RSA利用大质数分解难题确保私钥安全性,ECC则依赖于离散对数求解的难度来保护私钥。
摘要由CSDN通过智能技术生成

一:目前主流的加密密钥分为两大类:对称密钥和非对称密钥
1)对称密钥:数据发送方和接收方使用的是同一个密钥,即加密和解密的密钥是同一个(K)

 2)非对称密钥:数据发送方使用接收方的公钥进行加密,接收方使用自己的私钥进行解密(GK,SK)

二: RSA算法原理分析

1.核心:如何生成公钥和私钥?如何确保加密解密后信息前后一致?

2.数学原理:
        1)原则:攻击者很难破解私钥——>大质数分解难题
        2)step1:选择两个不同的素数p,q(越大越好);
        3)step2:N=p*q;φ(N) = (p-1)*(q-1),令φ(N)等于:U,φ(N)为欧拉函数
        4)step3:选取整数E,满足1<E<U且gcd(E,U)=1即E,U互质;
        5)step4:计算E对于U的模反元素D,E*D ≡ 1mod(U),即E*D=k*U+1,k为整数;
                          同余定理: a和b除n所得余数相等,则称“a和b对模n同余”,记为a≡b(mod n)
        6)step5:(E,N)为公钥;(D,N)为私钥

3.加密解密:
        1)加密过程
                ① 对M进行加密;
                ②密文C=M ^ E mod  N ;
        2)解密过程
                ①对C进行解密;
                ②明文M=C ^ D mod N = (M ^ E  mod  N ])^ D mod N = M^(E*D) mod N = M;

4.实用举例(引用博主“Shell>y”的博文例子):
        1)取p=103,q=97;
        2)N = 103*97=9991;φ(N) = (102-1)*(97-1)=9792 = U;
        3)
E = 1213,满足 gcd(U,E) = 1,且1<E<U;
        4)1213*D - 9792*k = 1;k = 510,
D = 4117;
        5)公钥(E,N)=(1213,9991);(D,N)=(4117,9991);

        1)明文M=6;密文C=6^1213(mod 9991) = 7863;
        2)密文C=7863;明文M=7863^4117 mod 9991 = 6;
        3)发送明文=接收明文

三:ECC算法原理分析

1.核心:如何生成公钥和私钥?如何保证加密解密前后信息一致?

2.数学原理:
        1)原则: 攻击者很难破解私钥——>离散对数求解
        2)step1:接收方选择一条椭圆曲线Ep(a,b),并随机取椭圆曲线上一点,作基点G
        3)step2:接收方随机选择一个私钥k,并生成公钥K=kG;
        4)step3:接收方将Ep(a,b),K,G传给发送方;
        5)step4:发送方将明文编码到Ep(a,b)上一点M,并产生一个随机整数r
        6)step5:发送方,加密数据:C1=M+rK;C2=rG;
        7)step6:接收方,解密数据:C1-kC2 = M+rK-k(rG) = M +rK-r(kG) = M;

3.私密性说明:
        1)整个过程,只公开Ep(a,b),K,G,C1,C2;而解密还必须要k(私钥);
        2)椭圆曲线上,已知两个点K,G,要反向求满足K=k*G中的k是很难的,即对应数学中的求解离散对数问题。例如,已知p,g,y,求解满足y = g^x mod p的x的值,这个很难;但如果知道x,p,g,求解y = g^x mod p却很快。ECC算法正是利用这点生成了难以破解的密钥。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少卿不在大理寺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值