资源描述:
《深入浅出密码学》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、深入浅出密码学上海交通大学0opsTeam肖子彤密码学简介•意义——“关于如何在敌人存在的环境中通信”•原则——密码系统的安全性不应依赖于算法的保密性,而应依赖于密钥的保密性•分类•古典密码学•现代密码学古典密码学•往往仅力求让消息变得难以理解,安全性依赖于算法的保密性•基本加密方式——替换、移位、混合•缺乏安全性,易被频率分析等攻击方式破解•典型代表——凯撒密码、栅栏密码、维吉尼亚密码、恩尼格玛密码机等现代密码学•密码的安全性完全依赖于密钥的安全性•起源于一九七零年代中期,标志为DES和RSA的提出•可细分为
2、多个领域•对称密钥密码学•公钥密码学•哈希函数•消息认证码对称密钥密码学•加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥•可分为区块加密和流加密两大类•区块加密——明文需填充至长度为区块长度的倍数,一次加密一整块数据•流加密——通过特定算法生成密钥流并与明文异或完成加密,一次加密一字节数据•常见算法——DES/3DES、AES、RC4、IDEA等•优点——快速•缺点——要求双方事先获取相同的密钥DES•最早公开的现代对称加密算法•替换+移位+异或•现在已被认为不具备足够的安全性•密钥长度过短(
3、56keybits+8paritybits)•Weakkeys&semi-weakkeys•3DES弥补了DES在安全性上的不足AES•目前使用最广泛的对称加密算法,尚无有效攻击方式•其设计特意考虑了对线性攻击和差分攻击等常用攻击方式的抵御•密钥长度为128、192或256比特,加密循环轮数为10,12或14•Reduced-roundAES可以被攻击•目前针对7轮AES(128bits)已有有效攻击•CTF中出现过4轮AES(128bits)攻击注:若CTF中出现了标准AES的使用,那么加密算法中的该部分往往
4、是不可破解的,需从对称加密模式等其他方面入手分析RC4•属于流加密,密钥长度可变,范围是[1,255]•给定一个密钥,伪随机数生成器接受密钥并产生一个S盒以加密数据,且在加密过程中S盒会变化•十分常见,但已被证明不具备安全性•Fluhrer,MantinandShamirattack•https://www.rc4nomore.com/公钥密码学•需要两个密钥,公开密钥用于加密/验证签名,私有密钥用于解密/签名•可用于加密•所有人均可加密,但仅特定的人可解密•解决了对称密钥的安全传输问题•可用于签名•仅特定的人
5、可进行签名,而所有人均可验证签名•使电子文件可以得到如同在纸本文件上亲笔签署的效果•常见算法——RSA、ELGamal、椭圆曲线加密算法、背包加密算法•优点——无需安全信道或事先协商•缺点——慢、难以加密大量数据ELGAMAL•安全性依赖于循环群上离散对数求解的困难性•密钥生成•选定g,p,x•计算h=pow(g,x,p)•g,p,h为公钥,x为私钥•加密•随机选择y,计算s=pow(h,y,p)•计算c1=pow(g,y,p),c2=s*mmodp,(c1,c2)即为密文•解密•计算s=pow(c1,x,p)
6、•计算m=c2*s^(-1)modp,即为明文•安全问题•易受选择密文攻击——(c1,2*c2)->2*mRSA•安全性依赖于大整数分解的困难性•目前使用最广泛的公钥加密算法,尚无有效攻击方式•公钥——(n,e),其中n=p*q,e通常取65537•私钥——(n,d),其中d满足e*dmodphi(n)=1,phi(n)=(p-1)*(q-1)•加密即c=pow(m,e,n),解密即m=pow(c,d,n)•N的长度是RSA安全强度的主要影响因素•小于512bits目前完全可以做到因数分解•1024bits目前
7、无法做到因数分解,但已被质疑未来可分解•推荐长度为2048bits或更多•秀尔算法已证明一台量子计算机可以在多项式时间内进行因数分解攻击非标准RSA•多个n之间存在相同的质因数——求解最大公因数•e=3且明文过短(小于n长度的1/3)——开立方根•p和q过于接近——费马分解(令p=a+b,q=a-b,则n=p*q=a^2-b^2,枚举b即可)•p过小——基于椭圆曲线的ECM因子分解算法(yafu工具)•n过小(通常需小于400bits)——数域筛法(cado-nfs工具)•d过小(也表现为e过大)——Wiene
8、r'sattack•e过小且存在多组公钥加密同一信息——Håstad‘sbroadcastattack(基于中国剩余定理)•已知两个接近的明文对应的密文——Franklin-ReiterRelatedMessageAttack•m,p或d部分泄漏——Coppersmith’sAttackQ&ATHANKS