DES算法的matlab实现

本文详细介绍了如何在MATLAB中实现DES(Data Encryption Standard)加密算法,包括reshape()、hex2dec()、dec2bin()、str2num()、mod()等关键函数的使用,并给出了加密和解密的示例代码及结果截图。
摘要由CSDN通过智能技术生成

DES算法流程图(图片来源:www.baidu.com)

DES算法流程图(来源:www.baidu.com)

%DES算法Matlab代码  
function C=DES(D,K,M)  
%   输入16进制数表示的字符串格式明文D和密钥K,M=1表示加密 
%% ----------------------------------数据初始化----------------------------------- 
%将以字符串形式输入的明文和密钥转换成01数字串 
DB=[]; 
for i=1:16     
    Di=D(i);      
    DBi=['0000',dec2bin(hex2dec(Di))];     
    DBi=DBi(end-3:end);      
    DBi=[str2num(DBi(1)),str2num(DBi(2)),str2num(DBi(3)),str2num(DBi(4))];     
    DB=[DB,DBi]; 
end
D=DB; 
KB=[]; 
for i=1:16     
    Ki=K(i);      
    KBi=['0000',dec2bin(hex2dec(Ki))];     
    KBi=KBi(end-3:end);      
    KBi=[str2num(KBi(1)),str2num(KBi(2)),str2num(KBi(3)),str2num(KBi(4))];     
    KB=[KB,KBi]; 
end
K=KB;   
%64位数据IP置换表 
IP=[58 50 42 34 26 18 10 2;     
    60 52 44 36 28 20 12 4;     
    62 54 46 38 30 22 14 6;     
    64 56 48 40 32 24 16 8;     
    57 49 41 33 25 17 9 1;     
    59 51 43 35 27 19 11 3;     
    61 53 45 37 29 21 13 5;     
    63 55 47 39 31 23 15 7];  
IP0=reshape(IP',1,64);
%转换成行向量 
D_IP=D(IP0);%对D初始置换   
%E盒为数据扩展 
E=[32, 1, 2, 3, 4, 5;     
    4, 5, 6, 7, 8, 9;     
    8, 9,10,11,12,13;    
    12,13,14,15,16,17;    
    16,17,18,19,20,21;
    20,21,22,23,24,25;    
    24,25,26,27,28,29;    
    28,29,30,31,32,1];  
S1=[14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7;     
    0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8;     
    4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0;     
    15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13]; 
S2=[15, 1, 8, 14, 6, 11, 3, 4, 9, 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值