一文看懂密码学

密码学

符号说明:

D(K,Y) 用密钥K和对称算法解密密文Y

D(PR a ,Y) 用A的私钥PRa和非对称算法解密密文Y

D(PU a ,Y) 用A的公钥PRa和非对称算法解密密文Y

E(K,X) 用密钥K和对称算法加密明文X

E(PR a, X) 用A的私钥和对称算法加密明文X

E(PU a ,X) 用A的公钥和对称算法加密明文X

K 密钥

PRa 用户A的私钥

PUa 用户A的公钥

**C **密文

P 明文

**gcb(a,b) **表示a和b的最大公因子

OSI安全框架

安全攻击 :分为被动攻击和主动攻击。被动攻击包括非授权阅读消息、文件以及流量分析。主动攻击包括对消息或文件的篡改以及拒绝服务等。

安全机制 :安全机制是一种处理过程(或实现该处理过程的设备),用来检测、阻止攻击或者从攻击状态恢复为正常状态。安全机制的例子有加密算法、数字签名和认证协议。

安全服务 :安全服务包括认证、访问控制、数据保密性、数据完整性、非否认性以及可用性。

密码算法和协议的4个领域

对称加密 :用于加密任意大小的数据块或数据流的内容,包括消息、文件、加密密钥和口令。

非对称加密 :用于加密小的数据块,如加密密钥或数字签名中使用的Hash函数值**。**

数据完整性算法 :用于保护数据块(例如一条消息)的内容免于修改。

认证协议 :有许多基于密码算法的认证方案,用来认证实体的真实性。

对称密码模型

对称加密方案有5个基本成分

明文: 原始可理解的消息或数据,是算法的输入

加密算法: 加密算法对明文进行各种代替和变换

密钥: 密钥也是加密算法的输入。密钥独立于明文和算法。算法根据所用的特定密钥而产生不同的输出。算法所用的确切代替和变换也依靠密钥。

密文: 作为算法的输出,看起来完全随机而杂乱的消息,依赖于明文和密钥。对于给定的消息,不同的密钥产生不同的密文,密文看上去是随机的数据流,并且其意义是不可理解的。

解密算法: 本质上是加密算法的逆运算。输入密文和密钥,输出原始明文。

注:发送者和接收者必须在某种安全的形式下获得密钥并且必须保证密钥安全。如果有人发现该密钥,而且知道相应的算法,那么就能解读使用该密钥加密的所有通信。

对称密码体制模型

密码编码学系统具有的三个独立特征

替换明文为密文的运算类型: 所有的加密算法都基于两个原理:替换和置换。代替是将明文中的每个元素(如位,字母,位组或字母组等)映射成另一个元素;置换是将明文中的元素重新排列。上述运算的基本要求是不允许有信息丢失(即所有的运算时可逆的)。大多数密码体制,也称为乘积密码系统,都使用多层代替和置换。

所用的密钥数: 如果发送方和接收方使用相同的密钥,这种密码就称为对称密码、单密钥密码、秘密钥密码或传统密码。如果发收双方使用不同的密钥,这种密码就称为非对称密码、双钥或公钥密码。

处理明文的方法: 分组密码每次处理输入的一组元素,相应的输出一组元素。流密码则是连续的处理输入元素,每次输出一个元素。

古典加密方法

代替技术

Caesar密码: 对字母表中的每个字母,用它之后的第k个字母来代替。

加密算法:C = E(k,P) = (p+k) mod 26

解密算法:P = D(k,C) = (C-k) mod 26

**单表代替密码: **对于Caesar密码允许任意代替。26个字母的任意置换,有26!的可能密钥。为每一条消息用一个字母表(给出从明文字母到密文字母的映射)加密。该加密很容易通过统计的方法进行破解,有两种主要的方法可以减少代替密码里明文结构在密文中的残留度:一种是对明文中的多个字母一起加密,另一种是采用多表代替密码。

Playfair密码: 把明文中的双字母音节作为一个单元并将其转换成密文的"双字母音节"

Hill密码: 该加密算法将m个连续的明文字母替换成m个密文字母,这是由m个线性方程决定,在方程中每个字母被指定为一个数值(a=0,b=1,….,z=25)。例如m=3,系统可以描述为:

用行向量和矩阵表示如下:

这里C和P是长度为3的行向量,分为代表密文和明文,K是一个3*3矩阵,代表加密密钥。运行按模26执行。

用一般术语,Hill密码系统可以表示如下:

同Playfair密码相比,Hill密码的有点是完全隐藏了单字母频率特性。实际上,Hill用的矩阵越大,所隐藏的频率信息就越多。因此,一个3*3的Hill密码不仅隐藏了单字母的频率性,还隐藏了双字母的频率性。虽然Hill密码足以抗唯密码攻击,但是容易被已知明文攻击破解**。**

多表代替加密: 对简单单表代替的改进方法是在明文消息中采用不同的单表代替。这种方法一般称之为多表代替密码。所有这些方法都有以下的共同特征:1.采用相关的单表代替规则集。2.密钥决定给定变换的具体规则。

Vigenere密码: 假设明文序列为

密钥序列

其中典型的是m<n,密码序列

计算如下

密钥第一个字母模26加到明文的第一个字母,接着是第二个字母,以此类推,直到前m个明文处理完毕。对于第二组的m个明文,重复使用密钥字母。继续该过程,直到所有的明文序列被加密完。加密过程的一般方程式是

解密过程一般方程式

Vernam密码: 提供了一种与明文毫无统计关系,且与它一样长的密钥。其运算基于二进制而非字母。该体制可以简明地表述为

密文是通过对

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DES(Data Encryption Standard)是一种对称加密算法,其中包含加密和解密两个主要的变换过程。加密变换将明文转换为密文,而解密变换则将密文转换回明文。 为了推导DES解密变换是加密变换的逆,我们需要了解DES算法的具体步骤。 DES算法中,加密和解密过程都使用相同的算法,只是在密钥的使用上有所不同。算法主要包括以下步骤: 1. 初始置换(Initial Permutation):将输入的64位明文按照固定的规则进行置换,得到初始置换结果。 2. 轮函数(Round Function):DES算法中使用了16轮迭代,每轮中都包含了以下步骤: a. 扩展置换(Expansion Permutation):将32位数据扩展为48位,用于与子密钥进行异或运算。 b. 子密钥加(Key Mixing):将扩展结果与对应轮次的子密钥进行异或运算。 c. S盒代替(S-Box Substitution):将48位数据拆分为8个6位数据块,并通过S盒进行代替。 d. 置换(Permutation):对代替后的48位数据进行置换。 3. 逆初始置换(Inverse Initial Permutation):将最后一轮迭代的结果进行逆置换,得到64位的密文。 解密变换的主要步骤如下: 1. 初始置换(Initial Permutation):与加密过程相同,将输入的64位密文按照初始置换规则进行置换。 2. 轮函数(Round Function):与加密过程相同,但是使用的子密钥的顺序与加密过程相反。 3. 逆初始置换(Inverse Initial Permutation):与加密过程相同,将最后一轮迭代的结果进行逆置换,得到64位的明文。 由于DES算法的加密和解密过程使用了相同的算法和操作,只是在子密钥的使用顺序上有所不同,因此解密变换可以看作是加密变换的逆过程。通过逆向执行加密过程中的每个步骤,可以将密文转换回明文。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值