古典密码仿射密码Affine

摘要:
仿射密码Affine基础知识仿射密码属于一种替换密码,通过对一个字母使用加密函数(模运算)生成另外一个字母。t=535需fanqiang:仿射密码wiki[仿射密码ctf-wiki](

仿射密码Affine基础知识

仿射密码属于一种替换密码,通过对一个字母使用加密函数(模运算)生成另外一个字母(某些情况下,不只是字母)。

加密函数:

\[E(x) ≡ (ax + b) (mod\ m) \]
  • a、b:函数的参数部分,不同的加密有不同的值
  • m:字母的数量,一般值为26、32等
  • a与m互质

解密函数:

\[D(x) ≡ a^{-1}(x-b)(mod\ m) \]
  • \(a^{-1}\)是a关于模m的乘法逆元

上述解密函数的式子是相对于加密函数而言的,特殊情况下(直接要得到解密函数的参数时)可以直接设解密函数为y = a*x + b (mod Z)

仿射密码wiki

举个栗子

加密

以加密函数 \(E(x) = (5x + 8) (mod 26)\) 为例,以字母表26个字母作为编码系统

明文AFFINECIPHER
x055813428157417
y = 5x+883333487328184883432893
y mod 26877222121822517215
密文IHHWVCSWFRCP

对应的加密结果为:IHHWVCSWFRCP

解密

在已知a = 5,m = 26的情况下,我们需要求a关于模m的逆元,

根据乘法逆元的定义,我们可以得到如下式子:

\[a·a^{-1} ≡ 1 (mod\ m) \]

带入参数,有\(5·a^{-1} ≡ 1(mod 26)\) ,可以得到\(a^{-1}\) = 21

因此解密函数为:\(D(x) = 21(x - 8) (mod 26)\)

密文IHHWVCSWFRCP
y877222121822517215
x = 21(y−8)0-21-21294273-126210294-63189-126147
x mod 26055813428157417
明文AFFINECIPHER

解密后的明文结果为:AFFINECIPHER

相关题目

题目来源:https://adworld.xctf.org.cn/task/answer?type=crypto&number=5&grade=1&id=5535&page=1

题目信息

wK3GgH.png

题目分析

  1. 改题目源自bitsctf-2017,对BITSCTF这几个字符进行base32加密得到IJEVIU2DKRDA====base32加密网站
  2. 与文件所给的字符进行对比
M Z Y V M I W L G B L 7 C
I J E V I U 2 D K R D A ====

可以看到M和I一直都是对应的,故想到移位加密和仿射加密,易排除移位加密

  1. 反射密码的解密需要解密函数,但这里并没有解密函数,我们需要先得到解密函数
for a in range(-20,20):
    for b in range (-20,20):
        if (a*12+b)%32 == 8 and (a*25+b)%32 == 9:
            print(a,b)

可以得到a=5 b=12(多增加IF处的判断语句就可以更加精确)

  1. 得到了ab,使用解密公式y = a*x+b (mod32)
c = "MZYVMIWLGBL7CIJOGJQVOA3IN5BLYC3NHI"
sn = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
msg = ""
for i in c:
    msg += str(sn[(5*sn.find(i)+12)%32])
print(msg)

得到IJEVIU2DKRDHWUZSKZ4VSMTUN5RDEWTNPU

放入base32解密得到BITSCTF{S2VyY2tob2Zm}

参考资料

https://www.cnblogs.com/Mayfly-nymph/p/12394329.html

https://www.bilibili.com/video/BV1Gh411o7vM?t=332

https://www.bilibili.com/video/BV1qE411i7Zq?t=535

fanqiang

仿射密码wiki

[仿射密码ctf-wiki](

免责声明:文章转载自《古典密码仿射密码Affine》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇磁盘相关:扇区、块与页Android 6.0 动态申请 音频+拍照+相册 权限下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章