互动型网站,申请做网站_论坛版主,京东网站建设过程,东软网站建设基本概念
什么是密码学#xff1f; 简单来说#xff0c;密码学就是研究编制密码和破译密码的技术科学 例题#xff1a; 密码学的三个阶段
古代到1949年#xff1a;具有艺术性的科学1949到1975年#xff1a;IBM制定了加密标准DES1976至今#xff1a;1976年开创了公钥密…基本概念
什么是密码学 简单来说密码学就是研究编制密码和破译密码的技术科学 例题 密码学的三个阶段
古代到1949年具有艺术性的科学1949到1975年IBM制定了加密标准DES1976至今1976年开创了公钥密码学1978年公布了RSA密码体制1991年发布了邮件加密软件PGP2000年AES取代DES
密码学的分类
古典密码算法替代加密、置换加密对称加密算法DES、AES非对称加密算法RSA、背包算法、Rabin、椭圆曲线等 目前在数据通讯中使用最普遍的是DES和RSA等 什么是密码系统 密码系统又叫做密码体制用数学符号表示为S{M,C,K,E,D} M表示明文空间即需要隐藏的信息C表示密文空间即明文加密后的信息K表示密钥或密钥空间通常指加解密算法的关键信息可分为加密密钥和解密密钥E表示加密算法D表示解密算法
密码体制的基本类型
错乱代替密本加乱
破译或攻击密码的方法 穷举攻击法统计分析法数学分析法 什么是隐写术 隐写术就是将秘密的消息通过一种无伤大雅的消息发送出去。隐写术分为两种语言隐写术技术隐写术 什么是符号码 什么是公开代码
对称密码 对称加密算法所需解决的问题密钥的安全传递问题 如果加密和解密过程都使用相同的密钥或密钥算法那么这种加密技术可以被归类为对称加密。 古典密码 古典密码是密码学中的其中一个类型其大部分加密方式都是利用替换式密码或移项式密码有时则是两者的混合。 其中替换密码可以概括为单表替换密码、多表替换密码和多字符替换密码
单表替换密码
什么是单表替换密码 单表替换密码就是使用一个密文字母表并且用密文字母表中的一个字母来代换明文字母表中的一个字母 破解单表置换密码算法 使用穷举法次数26 4e26 使用统计法 凯撒密码 凯撒密码英语Caesar cipher或称凯撒加密、凯撒变换、变换加密是一种最简单且最广为人知的加密技术。凯撒密码是一种替换加密技术明文中的所有字母都在字母表上向后或向前按照一个固定数目进行偏移后被替换成密文。例如当偏移量是3的时候所有的字母A将被替换成DB变成E以此类推。这个加密方法是以罗马共和时期凯撒的名字命名的据称当年凯撒曾用此方法与其将军们进行联系。 应用 凯撒密码通常被作为其他更复杂的加密方法中的一个步骤例如维吉尼亚密码。凯撒密码还在现代的ROT13系统中被应用。但是和所有的利用字母表进行替换的加密技术一样凯撒密码非常容易被破解而且在实际应用中也无法保证通信安全。 凯撒密码的加密、解密方法还能够通过同余的数学方法进行计算。首先将字母用数字代替A0B1…Z25。此时偏移量为n的加密方法即为 阿特巴西密码 阿特巴希密码将字母表整个扭转第一个字母aleph与最后一个taw相替换第二个beth与倒数第二个shin相替换如此类推。密码学上的示沙克之谜出现在《耶利米书》中ששך-示沙克25:2651:41其实是加密后的בבל-巴别即巴比伦。[1][2] 现代希伯来文配合阿特巴希密码
明文 אבגדהוזחטיכלמנסעפצקרשת
密文 תשרקצפעסנמלכיטחזוהדגבא而罗马字母使用阿特巴希密码则是
明文 ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文 ZYXWVUTSRQPONMLKJIHGFEDCBA多表替换密码
维吉尼亚密码
什么是多表替换加密 在一个多表替换密码中会使用多个字母作为密码。为了加快加密或解密速度所有的字母通常写在一张表格上密码学上称作tableau。这种表格通常是26×26因为这样才能放下全部26个英文字母。填充表格及选择下次使用的字母的方法就是不同多字母替换密码之间的定义。多字母替换密码比单字母更难打破因为其替换可能性多密文要较长才可。 用来加密和解密的维吉尼亚表格 维吉尼亚密码中表格的第一行只需直接填上26个字母然后以下每一行的字母都是向左偏移一格。这叫作表格横移数学上每一列同余26。要用这种密码需要使用一个关键字来作为密钥。关键字每次用完就再次重复。假设关键字是“CAT”明文的第一个字由“C”加密第二个字由“A”加密第三个则由“T”加密然后再回到C加密一直重复。然后按照右边的密码表加密例如BALL用CAT作关键字时会加密至DAEN可见即使是同一个“L”亦会加密至另一个字母。现实中维吉尼亚密码的关键字非常长。 例如假设明文为
ATTACKATDAWN选择某一关键词并重复而得到密钥如关键词为LEMON时密钥为
LEMONLEMONLE对于明文的第一个字母A对应密钥的第一个字母L于是使用表格中L行字母表进行加密得到密文第一个字母L。类似地明文第二个字母为T在表格中使用对应的E行进行加密得到密文第二个字母X。以此类推可以得到
明文ATTACKATDAWN
密钥LEMONLEMONLE
密文LXFOPVEFRNHR置换密码 分组密码 在密码学中分组加密英语Block cipher又称分块加密或块密码是一种对称密钥算法。它将明文分成多个等长的模块block使用确定的算法和对称密钥对每组分别加密解密。分组加密是极其重要的加密协议组成其中典型的如AES和3DES作为美国政府核定的标准加密算法应用领域从电子邮件加密到银行交易转帐非常广泛。 什么是好的分组密码
分组长度足够大密钥量足够大密码变换足够复杂加密和解密运算简单
什么是扩散 扩散是指要将算法设计成明文每一比特的变化尽可能多地影响到输出密文序列的变化以便隐蔽明文的统计特性 什么是混乱 指在加解密变换过程中明文、密钥以及密文之间的关系尽可能地复杂化以防密码破译者采用解析法(即通过建立并求解一些方程)进行破译攻击。 DES算法 什么是DESDES英语Data Encryption Standard缩写为 DES其实是美国联邦政府的国家标准局确定为联邦资料处理标准FIPS随后在国际上广泛流传开来。 https://juejin.cn/post/7213743217337499709
AES算法 AES加密算法在维基百科上也叫做高级加密标准英语Advanced Encryption Standard缩写AES又称Rijndael加密法荷兰语发音[ˈrɛindaːl]音似英文的“Rhine doll”是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES已经被多方分析且广为全世界所使用。经过五年的甄选流程高级加密标准由美国国家标准与技术研究院NIST于2001年11月26日发布于FIPS PUB 197并在2002年5月26日成为有效的标准。现在高级加密标准已然成为对称密钥加密中最流行的算法之一。 序列密码流密码 序列密码的主要原理是通过伪随机序列发生器产生性能优良的随机序列(或滚动密钥生成器)使用该序列与明文序列叠加或加密来输出密文序列。 序列密码和分组密码的不同之处是什么
加密方式序列密码一次处理一个或几个比特分组密码一次处理固定大小的数据块通常是64比特或128比特运算方式序列密码通常以流模式Stream Mode运行即它们生成一个连续的密钥流然后将该密钥流与明文进行逐比特异或运算以产生密文。分组密码通常使用分组模式Block Mode其中输入数据被划分为固定大小的块并且每个块在加密之前都是相互独立的。
非对称密码公钥密码
为什么使用公钥密码体系也称为非对称密码体系
密钥管理公钥密码体系允许通信双方使用不同的密钥公钥和私钥。发送方使用接收方的公钥进行加密接收方使用自己的私钥进行解密。这种方式避免了传统的对称密码体系中需要在通信双方之间共享密钥的问题简化了密钥管理。数字签名公钥密码体系还支持数字签名发送方可以使用自己的私钥对消息进行签名接收方可以使用发送方的公钥来验证签名的真实性。这种机制可以确保消息的完整性和认证性防止信息被篡改或伪造。安全性在公钥密码体系中私钥通常保存在安全的环境中只有其拥有者可以访问。因此即使公钥泄露也不会危及通信的安全性。而在对称密码体系中一旦密钥泄露通信的安全性将受到严重威胁。密钥交换公钥密码体系可以用于安全地进行密钥交换。通信双方可以使用对方的公钥加密一个临时的对称密钥然后使用这个对称密钥进行后续的通信。这种方式称为密钥交换协议例如Diffie-Hellman密钥交换。 非对称密码机制下的密钥协商
Diffie-Hellman密钥交换
Diffie-Hellman密钥交换机制中的中间人攻击 RSA算法 RSA加密算法是一种非对称加密算法在公开密钥加密和电子商业中被广泛使用。RSA是由罗纳德·李维斯特Ron Rivest、阿迪·萨莫尔Adi Shamir和伦纳德·阿德曼Leonard Adleman在1977年一起提出的。当时他们三人都在麻省理工学院工作。RSA 就是他们三人姓氏开头字母拼在一起组成的。[1] 公钥和私钥的产生 N,e是公钥N,d是私钥Alice将她的公钥N,e传给Bob将她的私钥N,d藏起来。 加解密消息以及证明详见RSA加解密算法
杂凑函数和消息认证码
密码散列算法 密码散列算法也称为单向散列函数、杂凑函数、哈希算法、HASH算法或消息摘要算法。它通过一个单向数学函数将任意长度的一块数据转换为一个定长不可逆转的数据这段数据通常叫做消息摘要。典型的散列函数有MD5 Message-Digest Algorithm 5 SHA-1等。 摘要算法的特性
不可逆对任何长度的信息进行哈希后结果都是一个固定长度的数据摘要摘要的长度通常为128 bits或160 bits原始信息中一个字节的改变会导致摘要后的结果发生变化 什么是好的散列函数 好的散列函数应该具备以下几个特点
均匀性散列函数应该尽可能地均匀地将输入空间映射到输出空间即不同的输入应该尽可能地分布在输出空间的各个位置上。这样可以降低碰撞两个不同的输入映射到同一个输出的概率提高散列算法的性能和安全性。无法逆向推导好的散列函数应该是单向的即很难从散列值反推出原始输入。这样可以保护原始数据的机密性防止被逆向破解。抗碰撞性好的散列函数应该具有较低的碰撞概率即不同的输入在经过散列函数计算后产生相同的输出的可能性应该尽可能地小。这样可以提高数据的完整性和可靠性。高效性散列函数的计算速度应该尽可能地快尤其是在处理大量数据时。高效的散列函数可以降低系统的计算开销提高系统的性能。抗碰撞性好的散列函数应该对输入数据的细微变化具有很高的敏感性即如果输入数据发生了微小的改变其散列值应该发生显著的变化。这样可以保证散列函数在应用于数据完整性校验等场景时的有效性。
数字签名 数字签名Digital Signature又称公钥数字签名或电子签章是以电子形式存储于信息中或以附件或逻辑上与之有联系的数据用于辨识数据签署人的身份并表明签署人对数据中所包信息的认可。在网络环境中数字签名完全可以代替现实中的“亲笔签字”。数字签名是公钥加密技术与数字摘要技术的应用。 数字签名的作用
保证传输信息的完整性发送者的身份认证防止交易过程抵赖行为的发生
数字签名的基本原理 发送者用自己的私有密钥加密数据后传给接收者接收者用发送者的公钥解开数据后就可确定消息来自于谁同时也是对发送者发送的信息的真实性的一个证明发送者对所发信息不能抵赖。 密码学新方向