日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单表代换密码体制

發(fā)布時間:2024/8/1 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单表代换密码体制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、單表代換密碼體制

所謂代換,是指將明文的字符,用字符集的其他字符代替,從而變成密文。單表代換,顧名思義,有一張代換表,表中描述了代換關(guān)系。值得注意的是,代換關(guān)系可以是一對多,但是必須要保證的可逆性,即一個密文字符唯一對應(yīng)于一個明文的字符,也就是密文解密的唯一性,一個密文解密出一個明文。不過,一個明文可以加密成多個密文。下面舉一個例子。
假設(shè)字符集為{a,b,c},,代換所用的字符集為{1,2,3,4,5,6}。
代換表如下:

明文字符abc
密文字符1,23,45,6

則明文ab可以加密成13,14,23,或24這四種密文中的一種。反之,密文13只能解密成ab。
這是代換的一般形式。
當(dāng)然,我們通常采用的更加特殊的代換,也就是明文字符集和密文字符集一樣,這樣加解密的過程就是一一對應(yīng)。每一張代換表就是一個密鑰,不一定滿足某種規(guī)律,他只是對應(yīng)于字符集的一種排列。所以,一個有n個字符的字符集,最多有n!種不同的代換表,也就是密鑰空間為n!。

二、英文字母單表代換

現(xiàn)在給出一個26個小寫英文字母的單表代換例子。

#include<iostream> #include<map> using namespace std; //encrypt, message is clear text and table is the substitution table. string encrypt(string message,map<char,char>& table){for(int i=0;i<message.size();i++){message[i]=table[message[i]];}return message; } //decipher, rtable is the inverse of substitution table string decipher(string ciphertext,map<char,char>& rtable){for(int i=0;i<ciphertext.size();i++){ciphertext[i]=rtable[ciphertext[i]];}return ciphertext; } int main(){map<char,char> table,rtable;table['a']='n',table['b']='d',table['c']='q',table['d']='g',table['e']='i';table['f']='a',table['g']='m',table['h']='z',table['i']='s',table['j']='w';table['k']='y',table['l']='t',table['m']='c',table['n']='l',table['o']='f';table['p']='r',table['q']='e',table['r']='p',table['s']='k',table['t']='u';table['u']='o',table['v']='x',table['w']='v',table['x']='j',table['y']='h',table['z']='b';for(auto it:table){rtable[it.second]=it.first;}cout<<"Please input message:";string message;cin>>message;cout<<"The ciphertext is:";string ciphertext;ciphertext=encrypt(message,table);cout<<ciphertext<<endl;;cout<<"After deciphering:"<<decipher(ciphertext,rtable)<<endl; }

總結(jié)

以上是生活随笔為你收集整理的单表代换密码体制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。