传统加密技术
传统加密技术
对称加密模型
-
模型的公式表达
Y = E(K,X) X = D(K,Y)
-
五个基本成分
- 明文:原始的消息或数据,既算法的输入。
- 加密算法:对明文进行各种代替和替换。
- 密钥:独立于明文和算法,也是加密算法的输入。算法根据所用的特定的密钥而产生不同的输出。
- 密文:算法的输出,依赖于明文和密钥。
- 解密算法:加密算法的逆运算,既得到明文的过程。
-
密码编码学系统特征
- 所有加密算法都基于两个操作:代替和置换
- 密钥对情况:对称密码,发送方和接收方使用相同密钥、非对称密码,不同密钥
- 处理明文的方法:分组密码:每次处理输入的一组元素,流密码:连续处理输入的元素,每次处理一个元素
-
密码分析攻击:分析明密文的特征
- 唯密文攻击:已知加密算法、密文,攻击难度最大
- 已知明文攻击:已知加密算法、同一密钥加密的一个或多个明密文对
- 选择明文攻击:已知加密算法、密文分析者选择的明文及对应的密文,攻击者可使用信源系统的情况下
- 选择密文攻击:已知加密算法、密文分析者选择一些密文及对应的明文
- 文本攻击:已知加密算法、选择的明文及对应的密文、选择一些密文及对应的明文
-
穷举攻击
代替技术:将明文字母替换成其它字母、数字或符号
-
凯撒密码:在字母表中,每个字母用其后的第三个字母来替代,易被穷举攻击
c = E(k,p) = (p+k)mod 26 p = E(k,c) = (c-k)mod 26
-
单表代替密码:把凯撒密码的密码行换成26个字母的任意permutation,易被统计攻击
-
vigenere密码:对明文用密钥中与之对应的密文做移位(n-1)
明文:ATTACKATDAWN密钥:LEMONLEMONLE密文:LXFOPVEFRNHR
解密的过程则与加密相反。例如:根据密钥第一个字母L所对应的L行字母表,发现密文第一个字母L位于A列,因而明文第一个字母为A。密钥第二个字母E对应E行字母表,而密文第二个字母X位于此行T列,因而明文第二个字母为T。以此类推便可得到明文。
用数字0-25代替字母A-Z,维吉尼亚密码的加密文法可以写成同余的形式:
解密方法则能写成:
-
Playfair密码:
\\密码矩阵的构建,using the keyword 先按顺序,将密码从左到右、从上到下排列(或者从上到下,从左到右),其余不重复字母也在密码排列完后也按顺序排列
-
把明文分隔成digram(连字):如果字母对字母相同或最后一个字母无法构成字母对,那么在他们之间加一个填充字母,如x。
-
代替:
-
-
足以对抗穷举攻击、但统计分析存在安全隐患
-
Hill密码——可逆矩阵加密:不能抵抗已知明文攻击
c = E(k,p) = pkmod 26 p = E(k,c) = c*k^-1mod 26
-
多表替换密码——Vinenere密码:代替规则由26个凯撒密码代替表组成,每个密钥的一位都是一个凯撒代替表
-
ci = (pi+Ki mod m)mod 26 pi = (ci+Ki mod m)mod 26
-
周期性密钥的威胁
-
vernam密码:
-
- 一次一密:无条件安全:产生大规模随机密钥有实际困难、密钥分配和保护有困难
置换技术
- 栅栏加密:将明文按照depth间隔分成depth行,再连接。
- 矩阵行转移加密:按照密钥的大小顺序读取对应矩阵一列的信息,作为密文。后面的每一列都加在已有密文之后
轮转机:利用多轮置换加密来增强安全性
隐写术
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库