您现在的位置:首页 >> 编解码 >> 内容

基于matlab的AES加解密算法仿真

时间:2022/12/14 20:17:22 点击:

  核心提示:A119,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y5qTlJ1p

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览

    s_box : 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 

            ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 

            b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 

            04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 

            09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 

            53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 

            d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 

            51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 

            cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 

            60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db 

            e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79 

            e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 

            ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a 

            70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e 

            e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df 

            8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16 

 

inv_s_box : 52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb 

            7c e3 39 82 9b 2f ff 87 34 8e 43 44 c4 de e9 cb 

            54 7b 94 32 a6 c2 23 3d ee 4c 95 0b 42 fa c3 4e 

            08 2e a1 66 28 d9 24 b2 76 5b a2 49 6d 8b d1 25 

            72 f8 f6 64 86 68 98 16 d4 a4 5c cc 5d 65 b6 92 

            6c 70 48 50 fd ed b9 da 5e 15 46 57 a7 8d 9d 84 

            90 d8 ab 00 8c bc d3 0a f7 e4 58 05 b8 b3 45 06 

            d0 2c 1e 8f ca 3f 0f 02 c1 af bd 03 01 13 8a 6b 

            3a 91 11 41 4f 67 dc ea 97 f2 cf ce f0 b4 e6 73 

            96 ac 74 22 e7 ad 35 85 e2 f9 37 e8 1c 75 df 6e 

            47 f1 1a 71 1d 29 c5 89 6f b7 62 0e aa 18 be 1b 

            fc 56 3e 4b c6 d2 79 20 9a db c0 fe 78 cd 5a f4 

            1f dd a8 33 88 07 c7 31 b1 12 10 59 27 80 ec 5f 

            60 51 7f a9 19 b5 4a 0d 2d e5 7a 9f 93 c9 9c ef 

            a0 e0 3b 4d ae 2a f5 b0 c8 eb bb 3c 83 53 99 61 

            17 2b 04 7e ba 77 d6 26 e1 69 14 63 55 21 0c 7d 

 

 

********************************************

*                                          *

*        R C O N   C R E A T I O N         *

*                                          *

********************************************

 

rcon : 01 00 00 00 

       02 00 00 00 

       04 00 00 00 

       08 00 00 00 

       10 00 00 00 

       20 00 00 00 

       40 00 00 00 

       80 00 00 00 

       1b 00 00 00 

       36 00 00 00 

 

 

********************************************

*                                          *

*        K E Y   E X P A N S I O N         *

*                                          *

********************************************

 

w(1:4, :) :       00 01 02 03 

                  04 05 06 07 

                  08 09 0a 0b 

                  0c 0d 0e 0f 

 

After rot_word :  0d 0e 0f 0c 

 

After sub_bytes : d7 ab 76 fe 

 

rcon(05, :) :     01 00 00 00 

 

After rcon xor :  d6 ab 76 fe 

 

w(05, :) :        d6 aa 74 fd 

 

w(06, :) :        d2 af 72 fa 

 

w(07, :) :        da a6 78 f1 

 

w(08, :) :        d6 ab 76 fe 

 

After rot_word :  ab 76 fe d6 

 

After sub_bytes : 62 38 bb f6 

 

rcon(09, :) :     02 00 00 00 

 

After rcon xor :  60 38 bb f6 

 

w(09, :) :        b6 92 cf 0b 

 

w(10, :) :        64 3d bd f1 

 

w(11, :) :        be 9b c5 00 

 

w(12, :) :        68 30 b3 fe 

 

After rot_word :  30 b3 fe 68 

 

After sub_bytes : 04 6d bb 45 

 

rcon(13, :) :     04 00 00 00 

 

After rcon xor :  00 6d bb 45 

 

w(13, :) :        b6 ff 74 4e 

 

w(14, :) :        d2 c2 c9 bf 

 

w(15, :) :        6c 59 0c bf 

 

w(16, :) :        04 69 bf 41 

 

After rot_word :  69 bf 41 04 

 

After sub_bytes : f9 08 83 f2 

 

rcon(17, :) :     08 00 00 00 

 

After rcon xor :  f1 08 83 f2 

 

w(17, :) :        47 f7 f7 bc 

 

w(18, :) :        95 35 3e 03 

 

w(19, :) :        f9 6c 32 bc 

 

w(20, :) :        fd 05 8d fd 

 

After rot_word :  05 8d fd fd 

 

After sub_bytes : 6b 5d 54 54 

 

rcon(21, :) :     10 00 00 00 

 

After rcon xor :  7b 5d 54 54 

 

w(21, :) :        3c aa a3 e8 

 

w(22, :) :        a9 9f 9d eb 

 

w(23, :) :        50 f3 af 57 

 

w(24, :) :        ad f6 22 aa 

 

After rot_word :  f6 22 aa ad 

 

After sub_bytes : 42 93 ac 95 

 

rcon(25, :) :     20 00 00 00 

 

After rcon xor :  62 93 ac 95 

 

w(25, :) :        5e 39 0f 7d 

 

w(26, :) :        f7 a6 92 96 

 

w(27, :) :        a7 55 3d c1 

 

w(28, :) :        0a a3 1f 6b 

 

After rot_word :  a3 1f 6b 0a 

 

After sub_bytes : 0a c0 7f 67 

 

rcon(29, :) :     40 00 00 00 

 

After rcon xor :  4a c0 7f 67 

 

w(29, :) :        14 f9 70 1a 

 

w(30, :) :        e3 5f e2 8c 

 

w(31, :) :        44 0a df 4d 

 

w(32, :) :        4e a9 c0 26 

 

After rot_word :  a9 c0 26 4e 

 

After sub_bytes : d3 ba f7 2f 

 

rcon(33, :) :     80 00 00 00 

 

After rcon xor :  53 ba f7 2f 

 

w(33, :) :        47 43 87 35 

 

w(34, :) :        a4 1c 65 b9 

 

w(35, :) :        e0 16 ba f4 

 

w(36, :) :        ae bf 7a d2 

 

After rot_word :  bf 7a d2 ae 

 

After sub_bytes : 08 da b5 e4 

 

rcon(37, :) :     1b 00 00 00 

 

After rcon xor :  13 da b5 e4 

 

w(37, :) :        54 99 32 d1 

 

w(38, :) :        f0 85 57 68 

 

w(39, :) :        10 93 ed 9c 

 

w(40, :) :        be 2c 97 4e 

 

After rot_word :  2c 97 4e be 

 

After sub_bytes : 71 88 2f ae 

 

rcon(41, :) :     36 00 00 00 

 

After rcon xor :  47 88 2f ae 

 

w(41, :) :        13 11 1d 7f 

 

w(42, :) :        e3 94 4a 17 

 

w(43, :) :        f3 07 a7 8b 

 

w(44, :) :        4d 2b 30 c5 

 

 

********************************************

*                                          *

*    P O L Y _ M A T   C R E A T I O N     *

*                                          *

********************************************

 

    poly_mat : 02 03 01 01 

               01 02 03 01 

               01 01 02 03 

               03 01 01 02 

 

inv_poly_mat : 0e 0b 0d 09 

               09 0e 0b 0d 

               0d 09 0e 0b 

               0b 0d 09 0e 

3.算法概述

        AES算法在对明文加密的时候,并不是把整个明文一股脑的加密成一整段密文,而是把明文拆分成一个个独立的明文块,每一个明文块长度128bit。这些明文块经过AES加密器复杂处理,生成一个个独立的密文块,这些密文块拼接在一起,就是最终的AES加密的结果。

      但这里涉及到一个问题,假如一段明文长度是196bit,如果按每128bit一个明文块来拆分的话,第二个明文块只有64bit,不足128bit。这时候怎么办呢?就需要对明文块进行填充(Padding) 。

4.部分源码

clc;

clear;

close all;

warning off;

addpath(genpath(pwd));

% Initialization

[s_box, inv_s_box, w, poly_mat, inv_poly_mat] = aes_init;

plaintext_hex = {'00' '11' '22' '33' '44' '55' '66' '77' ...

                 '88' '99' 'aa' 'bb' 'cc' 'dd' 'ee' 'ff'};

plaintext = hex2dec (plaintext_hex);

ciphertext = cipher (plaintext, w, s_box, poly_mat, 1);

re_plaintext = inv_cipher (ciphertext, w, inv_s_box, inv_poly_mat, 1);

A119

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168