高校|密码算法靠数学提高安全性( 二 )


P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
X:
WORD
接下来根据明文长度 , 延展 X 使其和明文一样长 , 取得 Y:
X: WORD
plain_text: I LOVE CRYPTOGRAPHY
Y: W ORDW ORDWORDWORDW
根据每一位的明文以及 Y 的取值 , 分别匹配到 Matrix 的坐标 , 即可得出密文 , 以第一位加密为例:
Matrix(WI) = E
逐位运算即可取得加密结果:
cipher_text: E ZFYA QIBLHFJNOGKU
学习了替换式密码之后 , 我们再来看一下移位式密码 。 移位式密码 , 字母本身是不变的 , 但是传递过程中的顺序会按照特定的定义进行改变 。 举个最简单的例子:
plain_text: Hello World!
cipher_text: olleH !dlroW
可以看到 , 移位式密码的逻辑是比较简单的 , 更复杂的移位式密码也是在变换上更加复杂 , 但是底层逻辑是不变的 。
现代密码学
现代密码学主要可以分为两个领域 , 对称密钥密码学和非对称密钥密码学 , 这两者之间最核心区别就是 , 加密和解密的密钥是否相同 。
对于对称密钥密码学 , 还可以进一步分为分组密码与流密码两个算法种类 。 其中 , 分组密码的输入使用明文的一个区块和密钥 , 然后输出相同大小的密文区块;流密码相对于分组密码则更为灵活 , 输入中的明文可以任意长 , 经过与密钥轮的数学操作后 , 输出与明文等长的加密流 。
非对称密钥密码学还有一个名字 , 公钥密码学 。 其特征就是具备公钥和私钥两个不同密钥 , 并且均可以参与加密与解密过程 。 使用公钥加密、私钥解密是典型的隐秘信息保护流程;而使用私钥加密、公钥解密则是典型的签名流程 。 可以说 , 除加密外 , 公钥密码学最大的贡献就是实现了数字签名 , 互联网上的 PKI 体系以及 SSL/TLS 等网络安全机制均以此为基础构建 。
关于底层原理 , 公钥密码算法的难度大多体现在计算复杂度上 , 比如 RSA 源于大整数因数分解问题、DSA 源于离散对数问题、椭圆曲线密码学则源于椭圆曲线相关数学难题 。 由于这些底层问题多涉及模数乘法或指数运算 , 因此计算复杂度相较于对称密钥算法会更高 。
为了在实际应用中达到更高的效率 , 普遍采用的方案是外部使用公钥密码算法 , 内部使用对称密钥算法 , 这样既可以获得公钥密码算法的优秀特性 , 可以获得对称密码算法的高执行效率 , 业内一种实践方案是信封加密 。
目前 , 现代密码学在一些领域已经有非常前沿的实际应用场景 , 如交互证明、零知识、区块链与安全多方计算等 。
密码算法安全性
经典密码通常很容易破解 , 普遍通过唯密文攻击法 , 在仅知密文的情况下就可以完成攻击 。 以凯撒密码为例 , 有限的密钥个数可以通过暴力破解完成攻击;替代式密码虽然有着更大的密钥数 , 但是会被频率分析破解;更进一步地 , 维吉尼亚密码使用多个替换防止简单的频率分析 , 但是依然可以使用更为先进的卡西斯基试验进行破解 。
和经典密码学相比 , 现代密码学的安全性已经不依赖于加密算法的保密性 , 而是基于密钥的安全性 , 也就是说即使在密码算法完全公开的情况下 , 只要攻击者无法获取密钥就无法破解密文 。

推荐阅读