对称加密算法(SymmetricEncryptionAlgorithm)...|对称加密算法的机制

对称加密算法(SymmetricEncryptionAlgorithm)指的是使用相同的密钥加密和解密消息 。 我们主要来了解以下几种对称密钥密码的机制 。
对称加密算法(SymmetricEncryptionAlgorithm)...|对称加密算法的机制
文章图片
代换密码(SubstitutionCipher)是一种加密机制 , 即用密文替换部分明文 。 例如 , 我们替换掉“HelloWorld”中的一些字母 , 使其变成“HollyWyrld” , 这里将明文中的“e”用“o”替换 , 而“o”用“y”替换 。
在这种情况下 , 密钥(Key)便是明文和密文之间的字符映射 , 而不告知替换了什么字母 。 我们将无法轻松解码密文并恢复明文 , 反之 , 如果有密钥或替换表 , 那么只需执行反向操作 , 就可以轻松地反向处理并解密编码消息 。
代换密码的一个众所周知的例子是凯撒密码(CaesarCipher) , 它是一个代换字母表 。 在这个替换表中 , 通常通过移动或轮换字母表、一组数字或字符来将表中的字符替换为其他字符 , 而密钥就是偏移的编号 。
另一个例子是ROT-13 , 字母表轮换了13位 , 实际上是CaesarCipher使用了13这一密钥 , 即字母“A”替换成“N” , 依次类推 。 如果将“HELLOWORLD”用ROT-13进行加密 , 则变成了“URYYBJBEYQ” 。 反之若要将密文恢复到明文 , 我们只需通过查找映射表输出端的字符来执行反向操作 。 在ROT-13中 , 偏移量13正好是26个字母表的一半 , 这就意味密文和明文之间是可逆的 。 假设密钥不是13 , 而是8 , 那在加密之后 , 密文是不可逆的 。
对称加密算法(SymmetricEncryptionAlgorithm)...|对称加密算法的机制
文章图片
流密码(StreamCipher):取一个输入流 , 每次加密一个字符或一个数字 , 每次输出一个加密字符或数字 。 因此 , 数据输入和加密数据输出之间存在一对一的关系 。
分组密码(BlockCipher):密码将数据放入固定大小的数据桶或数据块中 , 然后将整个数据块编码为一个单元 。 如果要加密的数据不够大 , 无法填充块 , 则会填充额外的空间 , 以确保明文均匀地放入块中 。
目前一般来说 , 流密码更快 , 实现起来也不那么复杂 , 但它们可能比分组密码更不安全 。
对称加密算法(SymmetricEncryptionAlgorithm)...|对称加密算法的机制】如果密钥生成和处理不正确 , 如果使用同一密钥对数据进行两次或多次加密 , 则有可能破译密码并恢复明文 。 为了避免密钥重用 , 会使用初始化向量(InitializationVector , IV) , 这是一个随机数据 , 它被集成到加密密钥中 , 然后生成的组合密钥被用于加密数据 。 这背后的构思是 , 如果有一个共享的主密钥 , 那么生成一个一次性加密密钥 , 通过使用主密钥和IV生成新密钥 , 该加密密钥仅使用一次 。 为了对加密消息进行解码 , IV必须与加密消息一起以明文发送 。
对称加密算法(SymmetricEncryptionAlgorithm)...|对称加密算法的机制
文章图片