密码学闲谈

一.密码算法分类:

在现代密码学中,密码体制主要分为对称秘钥密码体制和公钥密码体制。

1.对称秘钥密码体制:

Alice和Bob秘密地选择秘钥K。根据K得到一条加密规则ek和一条解密规则dk。Alice把要发送给Bob的明文P通过ek(P)加密得到密文C,Bob接收到后,通过dk(C)解密得到明文P。
在这种密码体制中,dk或者与ek相同,或者容易从ek中导出(例如DES中解密等同于加密,只是秘钥方案是相反的)。由于ek或者dk的泄露会导致系统的不安全性,这种类型的密码体制就称为对称秘钥密码体制。
这种密码体制的缺点很明显,就是Alice和Bob通信之前首先在要使用一个安全信道来交换秘钥,实际上,这很难达到。

2.公钥密码体制:

也许能找到那么一个密码体制,使得由给定的ek来求dk在计算上是不可行的。如果这样的话,加密规则ek是一个公钥,可以在一个目录中公布。公钥体制的优点是Alice(或者其他任何人)可以利用公钥加密规则ek来发出一条加密的信息给Bob(无须预先的共享秘密秘钥的通信)。Bob将是唯一一个能够利用解密规则dk(称为私钥)对密文进行解密的人。

公钥密码体制的一个缺点是无法提供无条件安全性,就是说如果观察到了密文y,然后利用公钥加密规则ek加密每一条可能的明文,直到发现x加密后为y,这样x就是y的解密了。所以,我们仅研究公钥体制的计算安全性。

接下来通过某些具体密码算法和应用更加深入地了解一下公钥密码体制。

二.RSA密码体制

RSA是接触的非常多的一个密码算法了,它是基于大数分解的困难性的。

设n=pq,其中p和q都是素数。设P=C=Zn,且定义
Κ={(n,p,q,a,b):ab≡1(modφ(n))}
对于K=(n,p,q,a,b),定义
Ek(x)=xb mod n —–加密

dk(y)=ya mod n —–解密
(x,y∈Zn).值n,b组成了公钥,且值p,q,a组成了私钥。

那么,为什么解密函数是ya mod n呢,下面是ya mod n –>x mod n的证明:

因为ab≡1(modφ(n))
所以ab=tφ(n)+1
对于某个整数t>=1,假定x∈Zn* 那么,
(xb)a ≡ xtφ(n)+1 mod(n)
≡ (xφ(n))tx mod(n)
≡ x(mod n)

所以,加密解密是逆运算。
所以我们来梳理一下,现在Bob知道n这个大整数和b,如果他能够分解n得到pq,从而得到φ(n),因为ab≡1(modφ(n)),那他就可以得到a了。

为了安全着想,一般推荐去p,q均为512比特的素数,那么n就是1024比特的模数。分解这样长度的整数就大大地超出了现有的分解因子算法的能力。

三.RSA的具体应用

1.数字签名:
公钥和私钥是成对的,它们互相解密。
公钥加密,私钥解密。
私钥数字签名,公钥验证。
2.HTTPS

你可能感兴趣的:(密码学闲谈)