密码学基本概念
明文:消息本身。
加密:使用某种手段隐藏明文信息的过程。
密文:加密后得到的内容。
解密:把密文还原成明文的过程。
密钥(key):某个用来完成加密或解密的秘密信息
首要目的是 隐藏信息含义 而非隐藏信息的存在
古典密码:
单表替换加密,多表替换加密,其他加密
现代密码:
对称加密对称加密:DES、AES、RC4等
分组密码:
块密码序列密码:流密码
非对称加密:RSA、ElGamal、椭圆曲线
哈希函数:MD5、SHA-1、SHA-512等
数字签名:RSA签名、ELGamal前面、DSA签名等
古典密码:
置换 与 代换
猪圈密码
跳舞的小人
看过福尔摩斯的大抵都有印象。
凯撒密码:懂得都懂
ROT13是凯撒密码中的一种变体,移位数固定为13,即把明文中的每一个字母在字母表中向后移动13位,数字和非字母字符保持不变
ROT13实现的效果是将26个字母的前半部分和后半部分相互交换:
培根密码:[网址](http://rumkin.com/tools/cipher/baconian.php)
曲路密码:
(Curve Cipher)是一种换位密码,需要事先双方约定密钥(也就是曲路路径)。
举例:拿到字符串,排序为i行j列的表格。然后按照路径读取(类似从最后开始,贪吃蛇式前进)
栅栏密码
(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合...每组的第N(最后一个分组可能不足N个)个字符组合最后把他们全部连接起来就是密文,这里以2栏栅栏加密为例。
明文: Make America Great again
去空格: MakeAmericaGreatagain
分组:
第一组:MkAeiaraaan第二组: aemrcGetgi
密文: MkAeiaraaanaemrcGetgi
[工具](https://www.qqxiuzi.cn/bianma/zhalanmima.php)
维吉尼亚密码
维吉尼亚密码(Vigenere Cipher)是在单一恺撒密码的基础上扩展出多表代换密码根据密钥(当密钥长度小于明文长度时可以循环使用)来决定用哪一行的密表来进行替换以此来对抗字频统计
密钥是循环使用,密钥越长相对破解难度越大。
[工具](https://planetcalc.com/2468/)
ADFGX密码
ADFGX密码(ADFGXCipher)是结合了改良过的波利比奥斯棋盘替代密码与单行换位密码的矩阵加密密码,使用了5个合理的密文字母:A,D,F,G,X。
仿射密码
(Afine Cipher)是一种单表代换密码,字母表中的每个字母相应的值使用一个简单的数学函数映射到对应的数值,再把对应数值转换成字母。
键盘加密
使用键盘对应的坐标,或者键盘字母的排位拼出来字符画。