Playfair密码编写;(或者,维吉尼亚密码编写,输入明文长度是任意的)
明文:量子通信保密技术的诞生和快速发展主要取决于以下两个因素:a、经典保密通信面临着三个难以彻底解决的关键问题,即密钥协商、身份识别和窃听检测,这些问题的有效解决需要新技术。b、在对新技术的探索中,人们发现了量子内在的安全特性及其可能的应用。
请写出你的密码机输出结果。
Playfair密码编写;(或者,维吉尼亚密码编写,输入明文长度是任意的)
明文:量子通信保密技术的诞生和快速发展主要取决于以下两个因素:a、经典保密通信面临着三个难以彻底解决的关键问题,即密钥协商、身份识别和窃听检测,这些问题的有效解决需要新技术。b、在对新技术的探索中,人们发现了量子内在的安全特性及其可能的应用。
请写出你的密码机输出结果。
你好,弗吉尼亚密码编写:
给个matlab代码例子,仅供参考
function codeTestMain %主程序
key = 'ZHANGYIXINGAIXUEXI'; % 密钥
words = 'ILOVEYOUBABYILOVEZHANGYIXINGILOVESTUDY'; %要加密的字母(我爱你宝贝我爱张艺兴我爱学习)
codeEncoded = encode(words,key)%输出加密后的明文
codeDecoded = decode(codeEncoded,key)%输出解密后的字母
end
function codeOut = encode(codeIn, key)%加密子函数
codeIn = upper(codeIn); % 先转换成大写字母比较方便计算
key = upper(key);% 先转换成大写字母比较方便计算
codeLen = length(codeIn);%要加密的字符串长度
s = mod(0:codeLen-1, length(key))+1;% 密钥重复位置
codeOut = mod(codeIn + key(s) - 2*'A',26)+'A';%加密
codeOut = char(codeOut);%转成字母
end
function codeOut = decode(codeIn, key) % 解密子函数
codeIn = upper(codeIn); % 先转换成大写字母比较方便计算
key = upper(key);% 先转换成大写字母比较方便计算
codeLen = length(codeIn);%要加密的字符串长度
s = mod(0:codeLen-1, length(key))+1;% 密钥重复位置
codeOut = mod(codeIn - key(s),26)+'A';%解密
codeOut = char(codeOut);%转成字母
end
我的例子中输出的加密和解密信息:
codeEncoded =
'HSOIKWWRJNHYQIIZBHGHNTEGFFVTOLWSYWQCCF'
codeDecoded =
'ILOVEYOUBABYILOVEZHANGYIXINGILOVESTUDY'
可见解密后就是原来的文字,加解密正确