古典加密算法实验
古典密码学概述 密码技术的应用一直伴随着人类文化的发展。正如《破译者》一书中所说“人类使用密码的历史几乎与使用文字的时间一样长”。密码学的起源要追溯到人类刚刚出现,并且尝试去学习如何通信的时候,他们为了确保通信的机密,最先是有意识的使用一些简单的方法来加密信息并通过一些(密码)象形文字相互传递信息。
密码学概述 人们把 1949 年之前的密码发展阶段成为古典密码阶段,这一时期可以看作是科学密码的前夜。密码学专家常常是凭自己的直觉和信念进行密码设计,而对密码的分析也多是基于密码分析者的直觉和经验。 现在已经很少采用相对简单的古典密码体制,但古典密码中的代换和置换技术仍然是构造现在对密码加密算法的核心技术。研究古典密码对于理解、构造和分析现代密码都是非常必要的。
古典密码之凯撒密码 公元前 50 年,古罗马的凯撒大帝在高卢战争中采用的加密方法。凯撒密码算法就是把每个英文字母向前推移 K 位。比如 A 变为 D 等。  A  B  C  D  E  F  G  …… X  Y  Z D  E  F  G  H  I  J  ……  A  B  C
算法片段 - 加密 String result = &quot;&quot;; String data = t1.getText();  // 取得明文信息 for (int i = 0; i < data.length(); i++) {  char ch = data.charAt(i);  // 依次获取明文中各字符 if ((ch >= ‘a’) && (ch <= ‘z’)) {  // 处理小写字符 int t = (int) (ch - ‘a’);  t = (t + 3) % 26;  // 凯撒加密 result = result + (char) (t + 'a'); } else if ((ch >= ‘A’) && (ch <= ‘Z’)) {  // 处理大写字符 int t = (int) (ch - 'A'); t = (t + 3) % 26;  // 凯撒加密 result = result + (char) (t + 'A'); } }
算法片段 - 解密 String result = &quot;&quot;; String data = t2.getText();  // 取得密文信息 for (int i = 0; i < data.length(); i++) { char ch = data.charAt(i);  // 依次获取密文中各字符 if ((ch >= 'a') && (ch <= 'z')) {  // 处理小写字符 int t = (int) (ch - 'a'); t = (t - 3 + 26) % 26;  // 凯撒解密 result = result + (char) (t + 'a'); } else if ((ch >= 'A') && (ch <= 'Z')) {  // 处理大写字符 int t = (int) (ch - 'A'); t = (t - 3 + 26) % 26;  // 凯撒解密 result = result + (char) (t + 'A'); } }

古典加密算法实验