首页 > 编程知识 正文

对称密码学分为哪几类(古典密码学和现代密码学的区别)

时间:2023-05-03 09:33:46 阅读:74182 作者:3670

文章目录密码学发展史对称密码算法DESAES非对称密码算法RSA数字签名数字证书PKI应用与访问控制

开头的兴趣范例:蚊式

用于表示字符的“符号”有两种类型:破折号((和圆点),或分别为虚线、圆点),或长和短

I Miss You

密码学历史

密码学的发展阶段

1949年之前密码学一直是艺术1949~1975年密码学是1976年以后密码学的新方向——公钥密码学阶段1 古典密码

公元前5世纪,古斯巴达人在棒子上缠上带子,在棒子的纵轴方向上写下明文。 解开的带子上只有杂乱的密写字母。 解读者可以找到相同直径的条,缠绕胶带,沿着条的纵轴方向读取有意义的明文。

这种方式在现代密码学中也体现了——矩阵变换。

公元前1世纪,著名的恺撒密码在高卢战争中使用。 这是简单易用的单字符替代密码。

这种方式在现代密码学中也体现了——移位。

沉默的儿子提在1467年发明了多文字密码法。 沉默的子提创新是在信息的不同部分使用不同的代码。

他根据凯撒密码的原理做了什么改进? 在现代加密算法中,这种思想体现在——的置换中。 而且,这个置换表是动态变化的。

16世纪中期,意大利的dddbz发明了dddbz漏格板,覆盖在密文上,可以从漏格读取明文。 这是以前的远程式密码。

11世纪兵书《武经总要》,中国历史上第一部关于密码的记载,介绍了一部小巧、名副其实的密码本。

双方以《送杜少府之任蜀川》“城阙辅三秦、风烟望五津……”为解密键。

如果需要补充多少军粮,前方将军会在密码本里查出“给我粮食”的代码“九”,《送杜少府之任蜀川》第九个字是“五”。 于是请粮食将军把“五”字写在普通的公文派遣上,并在字上盖了印章。

指挥机关接到公文后,要查出加盖公章的“五”字在临时约定的诗中列在第九,对照密码本的顺序,知道前方需要饲料补充。

战前,密码研究还局限于小领域,没有得到各国的重视。

第一次世界大战是世界密码史上的第一个转折点。 随着战争的爆发,各国逐渐认识到密码在战争中所起的巨大作用,积极给予大力支持,使密码很快成为一个巨大的学科领域。

到了第一次世界大战的关键时刻,英国解密专门机构“40号室”利用缴获的德国密码本破译了著名的《齐默尔曼电报》,迫使美国放弃中立参战,改变了战争的进程。

二战爆发后,世界各国开始重视密码破译的研究,纷纷成立了专门的研究和破译机构,在战争中发挥了重要作用。 德国U-505潜艇受到美国海军特遣队的反潜深炸弹攻击,受伤浮出水面后,美军缴获密码机和大量明、密报,将U-505潜艇秘密送回美国。 德军误以为U-505潜艇沉入海底,没有改变密码。 在欧战结束前的11个月,依靠破译的密码,美军和同盟国军队击沉德国潜艇300多艘,平均每天一艘,同时大大减少了自船的损失,对战争的胜利产生了很大的影响。

1948年以前的密码技术可以说是艺术而不是科学。 当时的密码专家不是用推理来证明,而是用直觉和信念进行密码设计和分析。 1948年,C. E. Shannon在贝尔系统技术杂志上发表论文《通信的数学理论》,创立了著名的新理论——信息论,标志着从密码技术到密码学的转变。

阶段2 1949~1975

计算机使基于复杂计算的密码成为可能

主要特点:数据安全基于密钥而不是算法保密

不基于算法细节的安全性,意味着算法可以公开、分析,大量生产使用算法的产品,算法从贵族、战争走向商用。

窃听者知道你的算法也没关系; 如果他不知道你用的具体密钥,他就读不了你的信息。

阶段3 1976以后

Diffie和Hellman发表的《密码学的新方向》一文,提出了“公钥密码”的新体制。 1977年Rivest,Shamir Adleman提出了RSA公钥算法。 美国国家标准局NBS于1977年颁布实施美国数据加密标准DES,在保密学史上首次公开了加密算法,广泛应用于商用数据加密。 90年代出现了椭圆曲线等其他公钥算法2001年AES 密码学发展阶段(小结)

人类自从有了战争,就有了密码。

历史上的战争,特别是二战对保密学理论技术的发展起到了很大的推动作用。

从手动加密到机器加密、计算机加密,从基于算法的安全性到基于密钥的安全性,从贵族到平民对称加密算法数据加密的基本模型

加密和解密算法的操作通常是加密密钥(加密密钥)和解密密钥(decryption密钥).数据加密的基本术语

消息被称为明文(Plaintext )。 以某种方式伪装消息以隐藏其内容的过程称为加密(Encrtption ),加密的消息称为密文(Cipher )

text),而把密文转变为明文的过程称为解密 (Decryption),加密和解密要在密钥的控制下进行。对明文进行加密操作时所采用的一组规则称作加密算法(Encryption Algorithm).接收者对密文解密所采用的一组规则称为解密算法(Decryption Algorithm).

对称密码算法
对称密码算法(symmetric cipher):又称传统密码算法(conventional cipher),就是加密密钥和解密密钥相同,或实质上等同,即从一个易于推出另一个。又称秘密密钥算法或单密钥算法 。
特点
加密速度快,便于硬件实现和大规模生产
密钥分配:必须通过保密的信道
密钥个数:n(n-1)/2
无法用来签名和抗抵赖(没有第三方公证时)

对称密码体制
加密和解密使用相同的密钥
密钥必须使用秘密的信道分配

DES

常见对称密码算法——DES概述

1973年美国国家标准局NBS(国家标准与技术研究所NIST的前身)公开征求国家密码标准方案1975年IBM公司首次提出方案1977年被NIST确定为联邦信息处理标准并命名为 DES
曾经是对称密码体制事实上的国际标准输入:64位明文分组、64位密钥(8位校验位)输出:64位密文分组解密算法与加密算法相同交替使用S-变换和P-变换,具有Feistel结构特点

DES作为第一个广泛应用的加密标准,是一种最有代表性的对称分组密码算法。详细研究这一算法的基本原理对于掌握对称分组密码理论很有意义。

DES加密过程:

自从DES问世至今,对它多次的分析研究。利用穷举法搜索攻击,只能说明56位的密钥可能太少;DES的迭代次数可能太少。3DES算法通过增加密钥长度提高安全性。

双密钥3DES
延长密钥到64*2=128位

3密钥3DES
延长密钥到64*3=192位

AES

AES算法——Rijndael

1997年4月15日,美国ANSI发起征集AES(advanced encryption standard)的活动,并为此成立了AES工作小组。1997年9月12日,美国联邦登记处公布了正式征集AES候选算法的通告。对AES的基本要求是: 比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度为128/192/256比特。1998年8月12日,在首届AES候选会议(first AES candidate conference)上公布了AES的15个候选算法,任由全世界各机构和个人攻击和评论。1999年3月,在第2届AES候选会议(从15个候选算法中选出了5个。分别是RC6、Rijndael、SERPENT、Twofish和MARS。2000年10月2日,NIST宣布Rijndael作为新的AES。经过3年多的讨论,Rijndael终于脱颖而出。Rijndael由比利时的Joan Daemen和Vincent Rijmen设计。算法有很好的抵抗差分密码分析及线性密码分析的能力。

但是对于对称密钥体制,加密方如何将密钥安全传递给解密方?两人共享一个密钥,信息泄露算谁的?公钥密码使得发送端和接收端无密钥传输的保密通信成为可能。这里引入非对称密码算法。

非对称密码算法

非对称密码算法:

每个通信实体有一对密钥(公钥 ,私钥 )。公钥公开,私钥保密。甲向乙发送消息,用乙的公钥加密乙收到密文后,用自己的私钥解密
RSA

上述运算中,23和7作为两个密钥,公开一个,另一个作为私钥即可。
例如:公钥为7,私钥为23,则即使攻击者知道7、187和密文11,但如果他不知道私钥23,那么他无论如何也算不出明文88。

1977年由美国麻省理工学院三位教授Ron Rivest、Adi Shamir和Len Adleman发明的一种基于因子分解的指数函数的单向陷门函数,于1978年正式公布。它是迄今为止理论上最为成熟完善的公钥密码体制。RSA是一种分组加密算法。RSA密钥一般推荐使用1024位,CA采用2048位长的密钥。分组长度小于1024位。目前应用最广泛的公钥密码算法(最重要的算法)。只在美国申请专利,且已于2000年9月到期。

RSA算法

RSA示例1


RSA示例2


RSA为什么不能被破解


密码算法小结

案例剖析——密码算法的运用
kadpy想将一份大数据量的合同文件通 Internet 发给远在国外的顺心的小丸子,此合同文件对双方非常重要,不能有丝毫差错,而且此文件绝对不能被其他人得知其内容。如何才能实现这个合同的安全发送?

Q1:到底应该用什么加密技术,才能使合同传送既安全又快速呢 ?kadpy使用对称加密算法对合同进行加密,每次产生一个新的随机密钥(会话密钥, 用会话密钥加密信息Q2:顺心的小丸子怎样才能安全地得到其会话密钥呢?用电话通知,若电话被窃听,通过 Internet 发此密钥给顺心的小丸子 ,可能被黑客截获,怎么办 ?使用非对称加密算法传递会话密钥

Q3:这样是不是就安全了?会不会出差错?如果黑客截获kadpy发的信息,虽不能解密,但可以加密一份假文件冒充kadpy发给顺心的小丸子 ,顺心的小丸子并不知道这不是kadpy发给他的,怎么办 ?

这里引入数字签名。

公钥E和私钥D可反过来用用私钥D加密,用公钥E解密因为公钥是公开的,所以用私钥D加密不是为了保密,那么是为了什么呢?是为了证明信息是本人发出的。即抗抵赖。因为私钥D加密的数据只能用公钥解密。那么反过来可以这样认为,只要公钥E能解密出来的东西一定是私钥D加密的。而私钥只有一个人保存,不可能泄漏给第三方。那这种机制就可以做为数字签名来用,就如同个人在支票上手写签名一样。不可能有人仿造出来。 数字签名

数字签名不可修改性

数字签名就是私钥加密的个人信息任何人都能用公钥将这个信息解密出来。那么可否有人将信息解密出来进行修改呢?这是可能的。但解密出来他没有私钥如何加密成数字签名呢?现在数字签名具有法律效应,经常用在网上银行支付上。数字签名中个人信息比较长,采用非对称密钥加密算法计算慢,如何解决?

Hash算法——信息摘要

特性

不可逆,单向性运算上的唯一性对任何长度的信息进行哈希后,结果都是一个固定长度的数据摘要原始信息中一个字节的改变会导致摘要后的结果发生变化常用Hash算法:MD5、SHA、SHA-1

数字签名和hash算法相结合
顺心的小丸子看不懂,因为反推不回明文

但合同不能让第三方知道, 不能发明文。
加密和数字签名结合

密码算法小结

数字证书


Q:这样是不是就安全了?会不会出差错?

用RSA算法加密AES算法密钥是安全的关键所在kadpy用顺心的小丸子的公钥加密AES算法密钥顺心的小丸子用kadpy公钥来验证签名公钥如何交换?

Q:公钥会不会被替换,怎么证明是对方的公钥?

存在“中间人攻击”

kadpy和顺心的小丸子都以为是直接和对方进行秘密通信实际上所有的信息都被Tom翻译过了如何确认身份?

这里引入数字证书。

CA(Certification Authority)CA----认证中心CA为电子商务、电子政务等网络环境中各个实体颁发数字证书,以证明身份的真实性,并负责在交易中检验和管理证书。CA对数字证书的签名使得第三者不能伪造和篡改证书。权威性、可信赖性、公证性的第三方机构。

CA签名数字证书信息经过hash算法得到摘要1CA用自己的私钥对摘要进行签名签名附在数字证书信息后面接收方用CA公钥解密得到摘要1接收方将数字证书信息进行hash得到摘要2比对摘要1和摘要2验证


CA结构
数字证书的格式遵循X.509 V3国际标准

完整流程

PKI应用和访问控制 PKI,Public Key infrastructure ,公钥基础设施PKI是一组组件和规程:是一个用公钥概念和技术来实施和提供安全服务的具有普适性的安全基础设施PKI提供的服务:认证服务 完整性 保密性

PKI/CA发展历程

20世纪80年代,美国学者提出了PKI的概念为了推进PKI在联邦政府范围内的应用,1996年就成立了联邦PKI指导委员会1996年,以Visa、MastCard、IBM、Netscape、MS、数 家银行推出SET协议,推出CA和证书概念1999年,PKI论坛成立2000年4月,美国国防部宣布要采用PKI安全倡议方案2001年6月13日,在亚洲和大洋洲推动PKI进程的国际组织 宣告成立,该国际组织的名称为“亚洲PKI论坛”,其宗旨 是在亚洲地区推动PKI标准化,为实现全球范围的电子商务奠定基础

PKI就在我们身边:

一般的证书产生流程
实例

中国金融认证中心( China Finance Certification Authority 缩写CFCA ),是由中国人民银行牵头,联合中国工商银行、等十二家商业银行参加建设,由银行卡信息交换总中心承建的。ICAO(国际民用航空组织International Civil Aviation Organization)制定了PKI数字证书的电子护照标准每个香港公民一人一个智能身份证,每个智能身份证上配发一个全球通用的由香港邮政局颁发的个人数字证书认证机构的严格层次结构

网银安全
柜台注册,开通网银手机银行 ,获得U盾
网银插件下载,手机银行登录

用户名、登录密码安全存储和传输?网银插件下载:安全键盘、银行数字证书、安全插件

网银登录,查询账户余额

安全机制?需不需要签名?数字证书?余额查询银行要签名并加密,会话密钥由客户端产生

转账,插入U盾

U盾里是什么?安全机制?数字证书?转账需要用户签名,U盾里是用户的私钥和用户数字证书。

HTTPS(HTTP over SSL)

SSL(Secure Sockets Layer)协议Internet网上安全通讯与交易的标准, 浏览器就支持此协议SSL协议使用通讯双方的客户证书以及CA根证书,在通讯双方间建立起了一条安全的、可信任的通讯通道。它具备以下基本特征:信息保密性、信息完整性、相互鉴定。vTLS(Transport Layer Security,传输层安全协议 )是SSL3.0的后续版本,可以理解为SSL3.1

单向SSL功能

双向认证SSL协议的具体过程
① 浏览器发送一个连接请求给安全服务器。
② 服务器将自己的证书等信息发送给客户浏览器。
③ 客户浏览器检查证书是否是由自己信赖的 CA 中心所签发的。如果是,就继续执行协议;如果不是,给出警告消息:警告客户这个证书不是可以信赖的,询问客户是否需要继续。
④ 浏览器比较证书里的消息,例如域名和公钥,与服务器刚刚发送的相关消息是否一致,如果是一致的,客户浏览器认可这个服务器的合法身份。
⑤ 服务器要求客户发送客户自己的证书。收到后,服务器验证客户的证书,如果没有通过验证,拒绝连接;如果通过验证,服务器获得用户的公钥。(单向认证没有)

SET协议
SET协议是Master Card和Visa联合Netscape,Microsoft等公司,于1997年6月1日开发的协议,被称为安全电子交易协议,保证了用户在互联网上使用信用卡进行交易时,信息和数据的安全。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。