加密技术:共享密钥与公钥加密的深度解析
1. 共享密钥加密概述
为避免使用一次性密码本带来的麻烦,许多加密方法采用依赖共享密钥的算法来转换消息。这个密钥由通信双方预先确定,且相较于要发送的所有消息的总长度,它的长度相对较小。
简单地对密钥进行异或操作并不适用,因为密钥通常比消息短。即使多次重复密钥使其与消息长度相同,效果也不佳,因为这样会形成一种模式,容易被破解者利用来发现密钥。我们使用一次性密码本时,每使用完一页就丢弃,就是为了避免重复使用相同的比特模式。
1.1 加密函数
密钥用于控制一对能够置换消息的函数。第一个函数将原始消息加密成看似无意义的乱码,第二个函数则将乱码解密回原始消息。在某些情况下,这两个函数是相同的,这样的函数必须是其自身的逆函数。
找到能出色完成此任务的函数并非易事。由于使用相对较小的密钥来转换较大的消息,转换后的数据中必然有大量部分受到密钥同一部分的相关影响。如果能在转换后的数据中发现这些关系,就有可能利用这种发现方法来破解加密。
1.2 早期示例:凯撒密码与rot13
- 凯撒密码 :消息中的每个字母都被旋转到字母表中的第n个下一个字母。解密时,每个字母旋转到第n个前一个字母。
- rot13 :用于Usenet新闻,每个字母旋转到第13个下一个字母,解密操作与加密操作相同,因为向前旋转13个位置与向后旋转13个位置是一样的。
以下是这两个函数的实现代码:
超级会员免费看
订阅专栏 解锁全文
763

被折叠的 条评论
为什么被折叠?



