在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言實現AES算法

嵌入式應用開發 ? 來源: 嵌入式應用開發 ? 作者: 嵌入式應用開發 ? 2022-11-21 19:29 ? 次閱讀

AES加密算法流程圖如下圖所示:

pYYBAGN7X1KAAgBSAABxCYz0hKI495.png

明文P:未加密的原始數據;密鑰K:加密原始數據密碼,對稱算法中,加密與解密所需的密鑰相同,該密鑰不能直接進行傳輸,否則會造成密鑰泄露;常規的做法是使用非對稱算法對密鑰進行加密之后再進行傳輸。

AES加密函數加密函數將傳入的密鑰K與明文P進行處理,之后生成一個被加密的信息密文C。

密文C:經過密鑰加密后的數據。

AES解密函數解密函數將傳入的密鑰K與密文C進行處理,之后生成一個沒有加密的明文P。

代碼部分講解:

AES算法相關接口在AES.h內,主要的接口:

uint8_t *aes_init(size_t key_size);
void aes_key_expansion(uint8_t *key, uint8_t *w);
void aes_inv_cipher(uint8_t *in, uint8_t *out, uint8_t *w);
void aes_cipher(uint8_t *in, uint8_t *out, uint8_t *w);

aes_init()函數作用:初始化aes變量,創建擴展密鑰所需要的內存
key_size:擴展密鑰所需內存大小

aes_key_expansion()作用:創建擴展密鑰
key:擴展密鑰
w:擴展密鑰內存首地址

aes_inv_cipher()作用:數據解密
in:輸入加密的信息
out:輸出解密后的信息
w:擴展密鑰內存首地址

aes_cipher()作用:數據加密
in:輸入未加密的信息
out:輸出加密后的信息
w:擴展密鑰內存首地址

代碼實現例程如下:

int main() {
    uint8_t i = 0;
    /* 256 bit key */
    uint8_t key[] = {
        0x00, 0x01, 0x02, 0x03,
        0x04, 0x05, 0x06, 0x07,
        0x08, 0x09, 0x0a, 0x0b,
        0x0c, 0x0d, 0x0e, 0x0f,
        0x10, 0x11, 0x12, 0x13,
        0x14, 0x15, 0x16, 0x17,
        0x18, 0x19, 0x1a, 0x1b,
        0x1c, 0x1d, 0x1e, 0x1f};
    uint8_t in[] = {
        0x00, 0x11, 0x22, 0x33,
        0x44, 0x55, 0x66, 0x77,
        0x88, 0x99, 0xaa, 0xbb,
        0xcc, 0xdd, 0xee, 0xff};
    uint8_t out[16];
    uint8_t *w = NULL;

    w = aes_init(sizeof(key));
    aes_key_expansion(key, w);
    printf("Plaintext message:n");
    for (i = 0; i < 4; i++) {
        printf("%02x %02x %02x %02x ", in[4*i+0], in[4*i+1], in[4*i+2], in[4*i+3]);
    }
    printf("n");
    aes_cipher(in, out, w);
    printf("Ciphered message:n");
    for (i = 0; i < 4; i++) {
        printf("%02x %02x %02x %02x ", out[4*i+0], out[4*i+1], out[4*i+2], out[4*i+3]);
    }
    printf("n");
    aes_inv_cipher(out, in, w);
    printf("Original message (after inv cipher):n");
    for (i = 0; i < 4; i++) {
        printf("%02x %02x %02x %02x ", in[4*i+0], in[4*i+1], in[4*i+2], in[4*i+3]);
    }
    printf("n");
    free(w);
    return 0;
}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4681

    瀏覽量

    94326
  • C語言
    +關注

    關注

    180

    文章

    7626

    瀏覽量

    139617
  • 代碼
    +關注

    關注

    30

    文章

    4878

    瀏覽量

    69970
  • 加密算法
    +關注

    關注

    0

    文章

    216

    瀏覽量

    25729
  • AES算法
    +關注

    關注

    0

    文章

    13

    瀏覽量

    7892
收藏 0人收藏
  • jf_354121731

評論

相關推薦

C語言實現數字信號處理算法

C語言實現數字信號處理算法
發表于 08-16 23:17

CRC算法c語言實現

CRC算法c語言實現
發表于 08-20 19:21

PID控制算法C語言實現(完整版)

PID控制算法C語言實現(完整版)
發表于 02-06 17:08

PID控制算法C語言實現(完整版)

PID控制算法C語言實現(完整版)
發表于 04-02 11:39

PID控制算法C語言實現(完整版)

PID控制算法C語言實現(完整版)
發表于 05-01 11:03

請問如何使用Verilog硬件描述語言實現AES密碼算法?

如何使用Verilog硬件描述語言實現AES密碼算法?
發表于 04-14 06:29

C語言實現常用排序算法是什么?

C語言實現常用排序算法是什么?
發表于 10-19 06:41

CRC算法原理及C語言實現

CRC算法原理及C語言實現:本文從理論上推導出CRC 算法實現原理,給出三種分別適應不同計算機或微控制器硬件環境的
發表于 09-23 23:38 ?31次下載

C語言實現DES算法

C語言實現DES算法 本DES算法,使用了效率很高的C完成。目前,國內知名企業的POS終端中,單DES
發表于 01-16 10:09 ?3295次閱讀

C語言實現FFT算法

C語言實現FFT算法 /*****************fft programe*********************/#include "typedef.h" #include "math.h" struct
發表于 10-30 13:39 ?6406次閱讀

DSP算法c語言實現

DSP算法c語言實現,又需要的朋友下來看看。
發表于 05-09 10:59 ?0次下載

卡爾曼濾波算法C語言實現

卡爾曼濾波算法C語言實現 可以運行STM32 和 arduino上 已測試成功
發表于 09-27 16:34 ?68次下載

PID控制算法C語言實現(完整版)

PID控制算法C語言實現一 PID算法原理
發表于 11-05 15:45 ?0次下載

4個重要算法C語言實現源代碼

4個重要算法C語言實現源代碼
發表于 06-10 08:00 ?13次下載

CRC校驗算法原理及c語言實現

CRC校驗算法原理及c語言實現
發表于 11-30 10:04 ?10次下載

電子發燒友

中國電子工程師最喜歡的網站

  • 2931785位工程師會員交流學習
  • 獲取您個性化的科技前沿技術信息
  • 參加活動獲取豐厚的禮品
主站蜘蛛池模板: 免费大片黄国产在线观看 | china3p单男精品自拍 | 黄色网址中文字幕 | 欧美日韩国产一区二区三区不卡 | 一级大片免费观看 | 影音先锋在线亚洲精品推荐 | 日本三级黄在线观看 | 一区二区3区免费视频 | 四虎永久免费观看 | 欧美日韩一区二区三区毛片 | 色婷亚洲 | 男人午夜天堂 | 国产中出视频 | 日本免费大黄 | h视频在线免费看 | 亚洲天堂导航 | 天天干夜夜怕 | 天堂中文网 | 2021日本三级理论影院 | 亚洲综合色婷婷 | 日本理论在线观看被窝网 | 一级特黄aaa大片大全 | 欧美xxxxxxxxx | 国产拍拍拍精品视频 | 亚洲444kkk| 男啪女色黄无遮挡免费视频 | 快播久久 | 12306影院午夜入口 | 色天使美国 | 久久精品国产99久久72 | 泰国一级毛片aaa下面毛多 | 日本www色视频 | 香蕉视频久久久 | 久久精品国产乱子伦多人 | 成人久久伊人精品伊人 | 四虎影院新网址 | 午夜在线观看免费 | 亚洲综合久久久久久888 | 日操夜干 | 福利社藏经阁 | 日韩 ed2k|