博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iscc2016-basic-find-to-me
阅读量:6288 次
发布时间:2019-06-22

本文共 814 字,大约阅读时间需要 2 分钟。

额 第一题就暴力搜索了

 

已知仿射加密变换为c=(11m+8)mod26,试对密文sjoyuxzr解密

 

#include 
int main(void){ int m,c; while(scanf("%c",&m)) { c = (11 * (m -97)+ 8)%26; printf("%c",c+97); } return 0;}

看了大神的代码 有所醒悟

c= Ek(m)=(k1m+k2) mod n{c-k2 = k1 *m mod n令k3*k1 mod n =1得(c - k2) * k3 = m mod nm = (c - k2) * k3}m=Dk(c)=k3(c- k2) mod n(其中(k3 ×k1)mod26 = 1)

 

 

def extendedGCD1(a, b):    # a*xi + b*yi = ri    if b == 0:        return (1, 0, a)    (x, y, r) = extendedGCD1(b, a%b)    """    gcd(a, b) = a*xi + b*yi    gcd(b, a %  b) = b*xi+1 + (a - [a/b]*b)*yi+1    gcd(a, b) = gcd(b, a %  b)   =>   a*xi + b*yi = a*yi+1 + b*(xi+1 - [a/b]*yi+1)    xi = yi+1    yi = xi+1 - [a/b]*yi+1    """    tmp = x    x = y    y = tmp - (a/b) * y    return (x, y, r)

  

转载于:https://www.cnblogs.com/ailx10/p/5543773.html

你可能感兴趣的文章