公钥密码学

公钥密码学兴起于上个世纪七十年代。为了解决密钥配送的问题。一定要记住,密钥和明文其实是等效的,如果不能保证密钥的安全性,那么就无法保证密文的安全性,因为我们追求的是公开的安全。

举一个例子,你在图书馆预定了一个Locker,图书馆把钥匙寄到你的寝室,任何截获钥匙的人都能打开Locker然后看里面的东西。這面的问题就是对称密码学的密钥配送问题。而现在的Locker都是这样的,你投一个硬币进去,柜子会给你一个二维码(私钥),这样就不存在密钥配送的问题了,你直接用硬币就可以打开柜子,而不是用钥匙,这样就解决了密钥配送的问题。

下面我们拿RSA公钥加密算法来举一个例子。



上面两个公式是RSA的加密和解密公式。我们可以发现有三个数字是关键的在这个算法的。(E,D,N) 那这样的话我们接着讨论如何生成这三个数字。


通过上图我们可以想到我们如何求出(E,D,N)


这个算法里面,我们要关注的就是gcd

int gcd(int a,int b)  
{  
    int r;  
    while(b>0)  
    {  
         r=a%b;  
         a=b;  
         b=r;  
    }  
    return a;  
}  
辗转相除法。

这样的话我们可以构建了RSA的保密算法。

通过以上的算法我们可以看到,算法的核心在于公钥-私钥算法对

而公钥私钥算法对是密切相关的,(E,N) (D,N) ,由于一个公钥和一个私钥是配对的,所以想实现密钥之间解耦是不可能的。

那么我们看一下如何保证算法的安全。


大数mod算法


五个可能针对RSA的算法。


攻击方法






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值