Hill加密算法(matlab 实现)
生活随笔
收集整理的這篇文章主要介紹了
Hill加密算法(matlab 实现)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、主要函數解析
- 二、注意事項
- 三、演示圖
- 四、問題
- 五、代碼
一、主要函數解析
1、function [ret] = Hill(M,Str)
M為密鑰矩陣
Str為待轉換數組
二、注意事項
1、Hill函數的功能僅為轉換數組,而不區分加密或解密;當M為密鑰矩陣時,Hill輸出密文;當M為密鑰矩陣的逆時,Hill輸出明文
2、該算法中矩陣的逆定義不同于常規定義
三、演示圖
四、問題
1、當前僅實現明密文轉換,密鑰矩陣及其逆矩陣的生成尚未實現
ps:此處提供一密鑰矩陣及其逆矩陣供參考
%M: [17 17 5;21 18 21;2 2 19]
%M^-1:[4 9 15;15 17 6;24 0 17]
五、代碼
function [ret] = Hill(M,Str) temp=size(M); m=temp(1); S_len=size(Str); SM_len=round(S_len(2)/m)+(mod(S_len(2),m)>0); Str_Matrix=zeros(SM_len,m); for i=1:S_len(2)Str_Matrix((fix(i/m)+~(mod(i,m)==0)),((mod(i,m)==0)*(m)+(~(mod(i,m)==0))*(mod(i,m))))=Str(i); end %i,m %mod(i,m) %row:(fix(i/m)+~(mod(i,m)==0)) %line:((mod(i,m)==0)*(m)+(~(mod(i,m)==0))*(mod(i,m)))T=mod(Str_Matrix*M,26); ret=zeros(1,SM_len*m); for i=1:SM_lenret(1,((i-1)*m+1):i*m)=T(i,:); end end總結
以上是生活随笔為你收集整理的Hill加密算法(matlab 实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Playfair加密算法(C 实现)
- 下一篇: Leetcode题库 598.N叉树的前