密码学摘要

这学期学了密码学,虽然也是一门打水课,但是不记点什么确实就真的是水过去了...好歹对称密钥算法,公钥算法,数字签名什么的要简单记述一下,别人问的时候至少要知道说些什么。。。

——————————————————————————————————

对称密钥算法:

对称密钥加密和解密时使用的密钥是同一个密钥,其优点是加密速度快,缺点是不能作为身份验证,密钥发放困难。常见的对称加密算法有RC2,RC4,DES,3DES,IDEA,SDBI等。

当然,还会导致每一对通信放都要保存一对密钥,导致密钥管理困难

 公开密钥算法:

公开密钥加密和解密使用的密钥是不同的密钥,分别称为公钥和私钥,公钥可以公开,私钥则必须保密只能归密钥所有者拥有。其缺点是对大容量的信息加密速度慢,优点是可以作为身份认证,而且密钥发送方式比较简单安全。

关于公钥与私钥的加密与解密:私钥加密公钥可以解密;公钥加密私钥也可以解密。分别用于加密与签名。

你只要想:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出加密时公钥负责加密,私钥负责解密;同理,既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出签名时私钥负责签名,公钥负责验证

其中,RSA算法基于大整数因数分解的困难性,ElGamal算法基于有限域内求离散对数的困难性。

 

RSA算法:

原文为m,公钥为(e, n), 私钥为(d, n),其中n = pq (两个大质数乘积)

c = me mod n,    (加密)

m = cd mod n = med mod n = m,   (解密)

 

已知(e, n)如何计算d?

ed mod phi(n)  =  ed mod (p-1)(q-1)  =  1

d与e在 (p-1)(q-1) 下互为逆元

已知e, p, q, 可以对数时间计算d

困难在于大质数乘积n的分解

 

——————————————————————————————————

零知识:A向B证明A掌握某事,但不想让B知道这件事的内容。

Feige-Fiat-Shamir身份验证体制:仲裁人选择一个随机数n为两个大素数的乘积,分别产生公钥与私钥。甲有公钥与私钥,乙有公钥,通过t次协议验证甲有私钥。

 

Diffie-Hellman:最早的公开密钥算法,用于分配密钥,不能用于加密与解密

甲选择一个数x,向乙发送X = g^x mod n,

乙选择一个数y,向甲发送Y = g^y mod n;

甲计算k = Y^x mod n,

乙计算k' = X^y mod n;

 

Shamir的三次通过协议:甲乙双方不用交换任何秘密密钥或公开密钥就可以安全通信。

一个可交换的对称密码: EA( EB(M) ) = EB( EA(M) );   (有点类似于Diffie-Hellman啊......)

——————————————————————————————————

学会了什么呢。。。。学完后其实也就是巩固了一下初等数论而已,明白了以前还不是很明白的一些知识... 囧

posted @ 2016-04-24 12:01  我在地狱  阅读(648)  评论(0编辑  收藏  举报