時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:1 描述
仿射密碼是替換密碼的另乙個特例,可以看做是移位密碼和乘數密碼的結合。其加密變換如下:
e(m)=(k1*m+k2) mod q;(其中k1,k2為金鑰,且0現已知一經過仿射加密的密文和金鑰,請破譯出它的明文。
輸入
輸入包含不超過1000組資料;
每組資料報含乙個由大寫字母組成的字串和兩個正整數k1,k2,字串長度不超過50,0輸出
每組輸出佔一行,輸出對應的明文。
樣例輸入
iloveyou 3 2
樣例輸出
cdepsqeg
題意不清....連 q的值都沒給出
..個人直接按之前一道題的思路來寫,修改了幾次變數,然後過了.........
瞬間感覺不好了..........
沒好辦法,直接暴力列舉查詢...........
#includeint k,t;
char change(char x) }}
void slove(char x)
printf("%s\n",x);
}int main()
return 0;
}
仿射密碼解析與例項
仿射密碼的加密函式是 e x ax b modm 其中 解密函式是 d x a 1 x b modm 其中 a 1 是 a 在 zm群的乘法逆元。下面我們以 e x 5x 8 mod26函式為例子進行介紹,加密字串為affine cipher,這裡我們直接採用字母表26個字母作為編碼系統 其對應的加...
加密技術 仿射密碼
今天上午一二節課上了資訊保安概論,講到加密技術,有點好奇,怎麼實現加密和解密,移位密碼挺簡單,仿射密碼用到仿射函式 e x ax b mod 26 且a與26的最大公因子為1。金鑰就是a,b。這個函式我開始理解錯了,我以為ax加上b模除26後的結果,後來問了下老師再知道自己弄錯了,是ax b以後再模...
仿射密碼加解密(python實現)
仿射密碼是一種替換密碼。它是利用加密函式乙個字母對乙個字母的加密。加密函式是e x ax b mod m 其中,a和m互質,m是字符集的大小。例如,26即是以26個字母作為編碼,當m是26時,a必須是1,3,5,7,9,11,15,17,19,21,23,25其中之一 解密函式為d x a 1 x ...