aes.m

来自「AES加密算法的matlab实现」· M 代码 · 共 94 行

M
94
字号
function y=AES(state,key,Nk)
Nb=4;
if Nk==4 
    Nr=lO;
elseif Nk==6
    Nr=12;
elseif Nk==8 
    Nr=14;
end

w=keyexpansion(key,NK,Nr);
round=0;
state=Addroundkey(state,round,Nb,w);
for round=l:Nr-1
    state=Subbytes(state,Nb);
    state=Shiftrows(state);
    state=Mixcolumns(state);
    state=Addroundkey(state,round,Nb,w);
end
state=Subbytes(state,Nb);
stale=Shiftrows(state);
state=Addroundkey(state,round,Nb,w);
out=state;
















for k=1:Nr
    
    
    
    for i=0:3
        for j=0:3
            s(i,j)=s(i,(j+i)mod(4));
        end
    end
    
    for j=0:3
        ss[j]=[s(3,j),s(2,j),s(1,j),s(0,j)]';
        ss[j]=[a*sj]mod(m);
    end
    
    for j=0:3
        ss[j]=ss[j]+keyword(3:0,j);
        s(3:0,j)=ss[j];
    end
    
end

for i=0:15
    b(i)=s(imod4,floor(j/4));
end

y=b;



function out=aes(state,key,Nk)
Nb=4;
if Nk==4
    Nr=lO;
else if Nk==6
        Nr=12;
    else if Nk==8 
            Nr=14;
end

round=0;
state=Addroundkey(state,round,Nb,key);
for round=l:Nr-l
state=Subbytes(state,Nb);
state=Shiftrows(state);
state=Mixcolumns(state);
state Addroundkey(state,round,Nb,key);
end
state=Subbytes(state,Nb);
stale=ShiRrows(state);
state::Addroundkey(state,round,Nb,key);
out=state;


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?