CTF中Crypto基础知识

一、古典密码

1.凯撒密码

凯撒密码(Caesar cipher)是一种简单的替换密码,也被称为移位密码。它是由古罗马军事领袖凯撒·尤利乌斯·凯撒(Julius Caesar)在公元前1世纪使用的一种加密技术。

凯撒密码的原理很简单:通过将明文中的每个字母按照一个固定的偏移量(位移量)向右(或向左)移动,来加密和解密文本。例如,如果偏移量为3,那么字母"A"将被替换为字母"D",字母"B"将被替换为字母"E",以此类推。

  1. 偏移量:凯撒密码的关键是偏移量。偏移量指定了明文字母向右(或向左)移动的距离。常用的偏移量是3,也就是所谓的凯撒密码(Caesar cipher)。

  2. 字母循环:在凯撒密码中,字母的移动是循环的。也就是说,当字母达到字母表的末尾时,它将重新回到字母表的开头继续移动。

  3. 加密过程:对于加密,将明文中的每个字母按照偏移量向右移动。例如,如果明文是"HELLO",偏移量为3,则加密后的密文为"KHOOR"。

  4. 解密过程:对于解密,将密文中的每个字母按照偏移量向左移动。例如,如果密文是"KHOOR",偏移量为3,则解密后的明文为"HELLO"。

  5. 大小写敏感:凯撒密码是大小写敏感的,也就是说,大写字母和小写字母在加密和解密过程中被视为不同的字符。

  6. 弱加密算法:凯撒密码是一种非常简单的加密算法,很容易受到暴力破解的攻击。由于只有26种可能的偏移量,可以通过尝试每个偏移量并解密密文来快速破解凯撒密码。

2.维吉尼亚密码

维吉尼亚密码(Vigenère cipher)是一种基于多个凯撒密码组合而成的加密算法,由布鲁托·德维吉尼亚(Blaise de Vigenère)在16世纪提出。相比于凯撒密码,维吉尼亚密码更加复杂和安全。

  1. 密钥:维吉尼亚密码使用一个密钥来加密和解密文本。密钥是一个字符串,通常由一个或多个字母组成。密钥的长度可以与明文的长度相同,也可以比明文长。

  2. 重复密钥:维吉尼亚密码中的关键概念是重复密钥。如果密钥比明文短,则会将密钥重复使用直到与明文长度相匹配。例如,如果明文是"HELLO",而密钥是"KEY",则密钥将被重复使用为"KEYKE"。

  3. 字母表表格:维吉尼亚密码使用一个字母表表格(也称为Vigenère Square)来进行加密和解密。字母表表格是一个26x26的矩阵,包含了所有字母在凯撒密码中的偏移结果。

  4. 加密过程:对于加密,将明文中的每个字母与对应位置的密钥字母相匹配,找到字母表表格中对应位置的字母,即为密文。例如,如果明文是"HELLO",密钥是"KEY",则将"H"与"K"匹配,得到密文中的第一个字母,以此类推。

  5. 解密过程:对于解密,将密文中的每个字母与对应位置的密钥字母相匹配,找到字母表表格中对应行的字母,即为明文。例如,如果密文是"RIJVS",密钥是"KEY",则将"R"与"K"匹配,得到明文中的第一个字母,以此类推。

                                                                维吉尼亚密码表

     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 Z
   -------------------------------------------------------
 A | 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 Z
 B | B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
 C | C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
 D | D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
 E | E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
 F | F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
 G | G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
 H | H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
 I | I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
 J | J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
 K | K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
 L | L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
 M | M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
 N | N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
 O | O 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
 P | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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

二、现代密码

1.RSA密码

RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,是公钥密码学的基础之一。RSA算法使用一对密钥,包括公钥和私钥,其中公钥用于加密数据,私钥用于解密数据。以下是一些RSA的基础知识:

  1. 公钥和私钥:RSA算法使用两个密钥,公钥和私钥。公钥是可以公开的,用于加密数据。私钥是保密的,用于解密数据。加密的数据只能用私钥来解密,确保了数据的机密性和安全性。

  2. 密钥生成:RSA算法的密钥生成过程包括以下步骤:

    • 选择两个不同的质数p和q。
    • 计算n = p * q,其中n是公钥和私钥的一部分,称为模数。
    • 计算欧拉函数φ(n) = (p-1) * (q-1)。
    • 选择一个与φ(n)互质的整数e,称为公钥指数,满足1 < e < φ(n)。
    • 计算私钥指数d,使得 (d * e) mod φ(n) = 1。
    • 最终生成的公钥是(n, e),私钥是(n, d)。
  3. 加密过程:使用公钥加密数据的过程如下:

    • 将明文数据转换为一个整数,通常使用某种编码方案,如ASCII或Unicode。
    • 使用公钥中的指数e和模数n,对明文数据进行加密,得到密文。
    • 密文可以通过公开的方式传输,因为只有私钥才能解密。
  4. 解密过程:使用私钥解密数据的过程如下:

    • 使用私钥中的指数d和模数n,对密文数据进行解密,得到明文数据。
    • 解密过程利用了私钥指数d和公钥指数e的数学关系。
  5. 数字签名:RSA算法还可以用于数字签名,确保数据的完整性和认证性。数字签名是对数据进行加密的过程,使用私钥对数据进行签名,并使用公钥对签名进行验证。只有拥有私钥的一方才能生成有效的数字签名,而任何人都可以使用公钥验证签名的有效性。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值