密码学(1)

270 阅读7分钟

密码学简介

密码学是一门研究信息的保密和复原保密信息以获取其真实内容的学科,包括密码编码学、密码分析学。

密码编码学是研究对信息进行编码,实现隐蔽信息的一门学科。

密码分析学是研究复原保密信息或求解加密算法与密钥的学科。

密码学发展:

大体可以分为四个阶段

第一阶段:古典密码(19世纪末之前)

第二阶段:近代机械密码(20实际初~20实际50年代末)

第三阶段:电子密码(1949~1975年)

第四阶段:现代密码(20世纪70年代~)

新的研究领域和未来的发展:量子密码、DNA密码。

密码学基本概念:

1.密码体制

密码编码学是改变信息形式以隐蔽其真实含义的学科,具有这种功能的系统称为密码体制或密码系统。

一个密码体制包括5个基本成分:明文、密文、加密算法、解密算法、密钥。

明文:被隐蔽的信息,明文空间记为MM

密文:经过密码方法将明文变换为另一种隐蔽形式,密文空间记为CC

加密算法:实现明文到密文的变换过程成为加密变换的变换规则。

解密算法:合法接收者将密文还原成明文的过程称为解密过程,还原规则称为解密算法。

加密(解密)密钥:控制加密(解密)算法的信息,密钥空间分别为K1K1K2K2,其中K1K1是加密密钥构成的集合,K2K2是解密密钥构成的集合。

1.加密变换和解密变换一般是可逆的,分别记为Ek1Ek1Dk2Dk2

2.密钥K可以是很多数值里的任意值。加密和解密运算都依赖于密钥K。

3.令K1为加密密钥,K2为解密密钥,则加解密函数表达式为:

(a) Ek1(M)=CEk1(M)=C;

(b) Dk2(C)=MDk2(C)=M;

(c) Dk2(Ek1(M))=MDk2(Ek1(M))=M;

4.加密、解密过程如下图所示:

1.png 密钥是密码体制安全的关键。

2.保密通讯系统

从构建一个具有保密能力的通信系统的角度来描述保密通信的过程,保密通信系统可以隐蔽和保护需要的信息,使未授权者不能提取信息。

2.png

3.密码体制的分类

密码体制从原理上可分为非对称密码和对称密码,其中对称密码又分为代数作业体制、分组密码和序列密码。

代数作业体制:它将明文信息输入密码机,经过多次代替、置换,然后输出密信息。

序列密码体制:它将明文信息按字符逐位加密或序列逐位控制明信息加密。例如:初等密码中的单表代替、多表代替、多码代替和乘积密码都属于这种类型的密码体制。转轮密码及在转轮密码的基础上发展起来的纸带密码也属于这种类型。

分组密码体制:它是将信息按一定长度分组后逐组进行加密。例如:模拟话密、数字话密。

密码分析学的基本概念

一、内涵与目标

被动攻击的两种常见方法:信息内容的泄露、流量分析。

主动攻击的四种常见方法:伪装、重播、信息修改、拒绝服务。

密码分析的内涵:密码分析是被动攻击。

密码分析的典型目标:得到密钥,而不是仅仅得到单个密文对应的明文。

密码分析之所以能破译密码,最根本是依赖于明文的多余度

二、密码分析的类型:基于密码分析的攻击

3.png 加密算法至少要经得起已知明文攻击。

三、密码分析的普适方法

常见的密码分析方法包括穷举法和分析法。

穷举攻击:对一条密文尝试所有可能的密钥或所有的明文,包括密钥穷举和明文穷举。

分析法又分为确定性分析和统计方法。

确定性分析:利用一个或几个已知量,用数学的方法去求出未知量。已知量和未知量的关系是由加密和解密算法确定。寻找这种关系是确定性分析的关键步骤。

统计方法:一类是利用明文的统计规律进行破译;另一类是利用密码体制上的某些不足,采用统计的方法进行优势判决,以区别实际密钥和非实际密钥。

四、密码分析的结果

密码破译的结果可分为完全破译部分破译。(字面意思)

完全破译又分为绝对破译相对破译

绝对破译是指破译的结果完全符合合法接收者解密密文的过程。否则称为相对破译。相对破译往往是根据密文可以迅速得到相应的明文,但是由明文并不一定能加密成相应的密文。

五、典型密码分析方法

1.古典密码之破译

单表代替(统频、猜字法),多表代替。

2.对称密码之破译

明文的结构和模式在加密之后仍然保存下来,并能在密文中找到一些蛛丝马迹。可使用最佳仿射逼近攻击、差分攻击、中间相遇攻击、代数攻击、立方攻击。相关密钥攻击等。

3.非对称密码之破译

(a)密钥对数学性质使得从一个密钥推出另一个密钥成为可能。攻击方法基本是穷举法,只是穷举的策略不一样,所导致的穷举工作量不一样。

(b)一般的攻击方法包括大步-小步法、λ方法、筛选、数据筛法等等。

(c)近年来,一些辅助的攻击方法也很有效,如测信道攻击。

密码体制的安全性

一、计算安全性

这种度量涉及攻击密码体制所做的计算上的努力。如果使用最好的算法攻破一个密码体制需要至少N次操作,N是一个特定的非常大的数字,则定义该密码体制是计算安全的。

没有一个已知的实际密码体制在这个定义下可以被证明是安全的。

衡量一个加密算法是否计算安全的准则为

(a)破译密文的代价超过被加密信息的价值。

(b)破译密文所花的时间超过信息的有用期。

二、无条件安全性

这种度量衡量的是对攻击者的计算能力没有限制时的安全性。即使提供了无穷的计算资源,也无法攻破。

一个加密算法是无条件安全的,如果算法产生的密文不能给出唯一决定相应明文的足够信息,此时无论敌手截获多少密文、花费多少时间,都不能解密密文。

仅当密钥至少和明文一样上时,才能达到无条件安全。除了依次一密方案外,再无其他加密方案是无条件安全的。

计算安全比无条件安全弱。

三、可证明安全性

一个加密算法是可证明安全的,如果可以将密码体制的安全性归结为某个经过深入研究的数学难题。

如果给定的整数是不可解的,那么给定的密码体制是不可解的,我们称这种类型的密码体制是可证明安全的。这种途径只是说明了完全性和另一种问题是相关的,并没有完全证明是安全的。