99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文看懂碼靈半導(dǎo)體CFW32C7UL系列MPU產(chǎn)品應(yīng)用(三): 國(guó)際標(biāo)準(zhǔn)加解密算法

碼靈半導(dǎo)體 ? 2022-06-13 10:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

歡迎再次來(lái)到“碼靈半導(dǎo)體CFW32C7UL系列產(chǎn)品應(yīng)用介紹”連載專題。通過(guò)前幾期對(duì)CFW32C7UL系列的國(guó)密算法介紹,相信大家對(duì)碼靈半導(dǎo)體CFW32C7UL系列的國(guó)密硬件模塊有了充分的了解。

由于發(fā)展歷程原因,目前市場(chǎng)上商用密碼使用仍然以國(guó)際標(biāo)準(zhǔn)加解密算法為主,不過(guò)隨國(guó)家對(duì)國(guó)密算法的推進(jìn),未來(lái)國(guó)密算法的應(yīng)用也會(huì)越來(lái)越廣泛。碼靈半導(dǎo)體CFW32C7UL系列的加解密模塊除了之前介紹的國(guó)密密碼算法以外,還支持國(guó)際標(biāo)準(zhǔn)算法的AES加解密算法和SHA-1、SHA-256哈希算法。本專題聚焦于CFW32C7UL系列所支持的國(guó)際標(biāo)準(zhǔn)加解密算法硬件模塊:AES分組加解密算法和SHA哈希算法。以下我們具體介紹下CFW32C7UL系列AES和SHA模塊的使用以及加解密的速度等。
一、AES分組加解密算法
AES是Advanced Encryption Standard的縮寫(xiě),即高級(jí)加密標(biāo)準(zhǔn),在密碼學(xué)中又稱Rijndael加密法,是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。高級(jí)加密標(biāo)準(zhǔn)是由美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)于2001年11月26日發(fā)布于FIPS PUB 197,并在2002年5月26日成為有效的標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)用來(lái)替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用,至2006年,高級(jí)加密標(biāo)準(zhǔn)已然成為對(duì)稱密鑰加密中最流行的算法之一。
1、CFW32C7UL AES分組算法的實(shí)現(xiàn)
CFW32C7UL 系列的AES模塊可完成標(biāo)準(zhǔn)AES加解密運(yùn)算和AES-CM、AES-F8加密運(yùn)算。標(biāo)準(zhǔn)AES算法即AES標(biāo)準(zhǔn)(FIPS-197)中規(guī)定的算法。AES-CM和AES-F8算法在The Secure Real-time Transport Protocol(SRTP)中有詳細(xì)說(shuō)明,這兩種算法均以標(biāo)準(zhǔn)AES算法為基礎(chǔ),并對(duì)標(biāo)準(zhǔn)AES算法進(jìn)行迭代運(yùn)用。
AES模塊中的標(biāo)準(zhǔn)AES算法除了支持CPU輸入輸出外,還支持DMA輸入和DMA輸出,而AES-CM、AES-F8只支持DMA輸出。
2、CFW32C7UL AES分組算法的使用
開(kāi)發(fā)模式一:裸機(jī)SDK
目前CFW32C7UL系列裸機(jī)SDK支持AES-CM, AES-F8,以及標(biāo)準(zhǔn)的AES加解密方式。其中AES-CM和AES-F8只支持加密,不支持解密。標(biāo)準(zhǔn)的AES方式支持加密和解密。
在CFW32C7UL系列 AES的SDK中有個(gè)關(guān)鍵的CIPHER_AES_Init_TypeDef結(jié)構(gòu)體:
typedef struct {
uint32_t mode;
uint32_t encrypt;
uint32_t type;
uint32_t key_len;
uint32_t blk_num;
uint32_t key[8];
uint32_t key_f8_mask[8];
uint32_t *input_data;
uint32_t *output_data;
}CIPHER_AES_Init_TypeDef;
在使用AES算法之前需要初始化CIPHER_AES_Init_TypeDef結(jié)構(gòu)體,初始化范例:
cipher_aes_init.encrypt = CIPHER_AES_CTRL_ENCRYPT;
cipher_aes_init.input_data = (uint32_t *)aes_in_data;
cipher_aes_init.output_data = (uint32_t *)aes_out_data;
cipher_aes_init.blk_num = 1; 加解密輪數(shù)
cipher_aes_init.key_len = CIPHER_AES_KEY_LEN_128BIT;
cipher_aes_init.key[0] = 0x21212121; 設(shè)置AES 密鑰,可自定義
cipher_aes_init.key[1] = 0x43434343;
cipher_aes_init.key[2] = 0x65656565;
cipher_aes_init.key[3] = 0x87878787;
配置cipher_aes_init結(jié)構(gòu)體的初始化參數(shù)后,便可以進(jìn)行相對(duì)應(yīng)的AES加密運(yùn)算。
AES CM加密算法:
cipher_aes_init.mode = CIPHER_AES_MODE_AES_CM;
HAL_CIPHER_CM_AES(&cipher_aes_init);
AES F8加密算法:
cipher_aes_init.mode = CIPHER_AES_MODE_AES_F8;
HAL_CIPHER_F8_AES(&cipher_aes_init);
標(biāo)準(zhǔn)AES 加解密方式:
加密范例:
cipher_aes_init.encrypt = CIPHER_AES_CTRL_ENCRYPT;
cipher_aes_init.mode = CIPHER_AES_MODE_AES_STD;
HAL_CIPHER_StdAES(&cipher_aes_init);
解密范例:
cipher_aes_init.encrypt = CIPHER_AES_CTRL_DECRYPT;
cipher_aes_init.mode = CIPHER_AES_MODE_AES_STD;
HAL_CIPHER_StdAES(&cipher_aes_init);
開(kāi)發(fā)模式二:Linux SDK
通過(guò)操作linux系統(tǒng)中/dev/wokoo_aes ,就可以進(jìn)行標(biāo)準(zhǔn)AES分組加密算法的運(yùn)算。
AES算法底層接口
open:打開(kāi)設(shè)備節(jié)點(diǎn)
read:讀取加密/解密后的數(shù)據(jù)
write:寫(xiě)入加密前/解密前的數(shù)據(jù)以及密鑰和配置
接口描述:
open:
函數(shù)原型 static int uac_open(struct inode *inode, struct file * file)
參數(shù) file:文件名
返回值 成功0,其它失敗
read:
函數(shù)原型 static ssize_t uac_read(struct file * file, char __user *buffer, size_t size , loff_t *p)
參數(shù) file:文件名,buffer:讀出數(shù)據(jù)緩存,size:讀出數(shù)據(jù)長(zhǎng)度
返回值 成功0,其它失敗
write:
函數(shù)原型 static ssize_t uac_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
參數(shù) file:文件名,buf:寫(xiě)入數(shù)據(jù)緩存,count:寫(xiě)入數(shù)據(jù)長(zhǎng)度
返回值 成功0,其它失敗
使用示例:
fd = open("/dev/wokoo_aes", O_RDWR); 打開(kāi)aes節(jié)點(diǎn)
write(fd, &wokoo_aes, sizeof(struct wokoo_aes_t)); 寫(xiě)入明文/密文,密鑰等配置
read(fd, wokoo_aes.output_data, sizeof(wokoo_aes.output_data)); 讀出密文/明文
注:這里的write寫(xiě)入的wokoo_aes結(jié)構(gòu)體,如同在裸機(jī)中使用一樣,會(huì)在調(diào)用前初始化一些參數(shù),通過(guò)write把密鑰和模式配置寫(xiě)入。
3、CFW32C7UL AES算法的效率:
目前碼靈半導(dǎo)體CFW32C7UL系的可以實(shí)現(xiàn)標(biāo)準(zhǔn)AES加密速率是85KB/s。
二、SHA哈希算法模塊
1、CFW32C7UL SHA哈希算法的實(shí)現(xiàn)
CFW32C7UL系列的SHA哈希算法支持SHA-1以及SHA-256。SHA1是SHA的較舊版本,可生成160位哈希值,而SHA256是SHA2的一種類型,可生成256位哈希值。
CFW32C7UL系列的SHA模塊支持DMA輸入和CPU輸入,輸出僅支持CPU輸出。

2、CFW32C7UL SHA算法的使用
開(kāi)發(fā)模式一:裸機(jī)SDK
目前裸機(jī)開(kāi)發(fā)支持SHA-1以及SHA-256兩種哈希算法SDK,兩種算法分別有CPU輸入和DMA輸入的方式。
在CFW32C7UL系列 SHA的SDK中有個(gè)關(guān)鍵的CIPHER_SHA_Init_TypeDef結(jié)構(gòu)體,結(jié)構(gòu)體定義如下:
typedef struct {
uint32_t mod;
uint32_t line_num;
uint32_t *input_data;
uint32_t *output_data;
}CIPHER_SHA_Init_TypeDef;
使用SHA SDK之前,需初始化這個(gè)結(jié)構(gòu)體。包括設(shè)置數(shù)據(jù)量和設(shè)置數(shù)據(jù)的輸入輸出流。
cipher_sha_init.line_num = 0x01; 設(shè)置SHA的數(shù)據(jù)輸入輪數(shù)為1
cipher_sha_init.input_data = (uint32_t *)sha_in_data; 設(shè)置SHA 輸入流
cipher_sha_init.output_data = (uint32_t *)sha_out_data; 設(shè)置SHA輸出流
配置完cipher_sha_init結(jié)構(gòu)體的初始化參數(shù)后,便可以進(jìn)行相對(duì)應(yīng)的SHA哈希運(yùn)算。
調(diào)用HAL_CIPHER_SHA_DMA()進(jìn)行DMA輸入方式SHA哈希運(yùn)算。
cipher_sha_init.mod = CIPHER_SHA_MOD_SHA1; 配置SHA-1算法
HAL_CIPHER_SHA_DMA(&cipher_sha_init); 啟動(dòng)SHA-1算法 (DMA Input)
cipher_sha_init.mod = CIPHER_SHA_MOD_SHA256; 配置SHA-256算法
HAL_CIPHER_SHA_DMA(&cipher_sha_init); 啟動(dòng)SHA-256算法 (DMA Input)
調(diào)用HAL_CIPHER_SHA_CPU ()進(jìn)行 CPU輸入方式SHA哈希運(yùn)算。
cipher_sha_init.mod = CIPHER_SHA_MOD_SHA1; 配置SHA-1算法
HAL_CIPHER_SHA_CPU (&cipher_sha_init); 啟動(dòng)SHA-1算法(CPU Input)
cipher_sha_init.mod = CIPHER_SHA_MOD_SHA256; 配置SHA-256算法
HAL_CIPHER_SHA_CPU (&cipher_sha_init); 啟動(dòng)SHA-256算法(CPU Input)
開(kāi)發(fā)模式二:Linux SDK
通過(guò)操作linux系統(tǒng)中/dev/wokoo_sha ,便可以進(jìn)行SHA算法的運(yùn)算。
SHA算法底層接口
open:打開(kāi)設(shè)備節(jié)點(diǎn)
read:讀取哈希后的數(shù)據(jù)
write:寫(xiě)入哈希的數(shù)據(jù)以及配置模式
接口描述
open:
函數(shù)原型 static int uac_open(struct inode *inode, struct file * file)
參數(shù) file:文件名
返回值 成功0,其它失敗
read:
函數(shù)原型 static ssize_t uac_read(struct file * file, char __user *buffer, size_t size , loff_t *p)
參數(shù) file:文件名,buffer:讀出數(shù)據(jù)緩存,size:讀出數(shù)據(jù)長(zhǎng)度
返回值 成功0,其它失敗
write:
函數(shù)原型 static ssize_t uac_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
參數(shù) file:文件名,buf:寫(xiě)入數(shù)據(jù)緩存,count:寫(xiě)入數(shù)據(jù)長(zhǎng)度
返回值 成功0,其它失敗
使用范例:
fd = open("/dev/wokoo_sha", O_RDWR); 打開(kāi)sha節(jié)點(diǎn)
write(fd, &wokoo_sha, sizeof(struct wokoo_sha_t)); 寫(xiě)入需要哈希的數(shù)據(jù)
read(fd, wokoo_sha.output_data, sizeof(wokoo_sha.output_data)); 讀出哈希后的數(shù)據(jù)
類似地,LINUX在初始化wokoo_sha結(jié)構(gòu)體時(shí)會(huì)根據(jù)給定參數(shù)選擇不同的算法,輸入數(shù)據(jù)輪數(shù)和輸入方式,根據(jù)不同的參數(shù)計(jì)算不同的結(jié)果。如下示例:
wokoo_sha.bit_mod = CIPHER_SHA_MOD_SHA256; 選擇SHA-256方式
wokoo_sha.data_mod = CIPHER_SHA_TYPE_DMA; 選擇DMA輸入方式
wokoo_sha.line_num = 1; 設(shè)置數(shù)據(jù)輸入輪數(shù)為1

3、CFW32C7UL SHA算法的效率
目前碼靈半導(dǎo)體CFW32C7UL系列SHA-1以及SHA-256的加密速率可以實(shí)現(xiàn)87KB/s。
通過(guò)這幾期對(duì)碼靈半導(dǎo)體CFW32C7UL系列的國(guó)密及國(guó)際標(biāo)準(zhǔn)加解密算法的介紹,相信大家對(duì)CFW32C7UL系列的加解密模塊有一個(gè)相對(duì)全面的了解。國(guó)密算法與國(guó)際標(biāo)準(zhǔn)加解密算法的對(duì)標(biāo)關(guān)系是:國(guó)密算法的SM4和國(guó)際標(biāo)準(zhǔn)加解密算法AES對(duì)標(biāo),國(guó)密算法的SM3算法與國(guó)際標(biāo)準(zhǔn)加解密算法MD5、SHA-256等哈希算法對(duì)標(biāo),國(guó)密算法的SM2算法與國(guó)際標(biāo)準(zhǔn)加解密算法RSA、ECC算法對(duì)標(biāo)。其實(shí)CFW32C7UL系列在芯片安全機(jī)制方面,除了加解密模塊外還有其它的安全特性和功能配置,那它們具體都是什么呢?又有什么特點(diǎn)呢?讓我們帶著這些問(wèn)題,在下期中繼續(xù)探尋吧。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17985

    瀏覽量

    367348
  • MPU
    MPU
    +關(guān)注

    關(guān)注

    0

    文章

    415

    瀏覽量

    49948
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    harmony-utils之AES,AES加解密

    harmony-utils之AES,AES加解密 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmony-utils] 款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類,致力于
    的頭像 發(fā)表于 06-30 17:30 ?167次閱讀

    harmony-utils之DES,DES加解密

    harmony-utils之DES,DES加解密 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmony-utils]款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類,致力于
    的頭像 發(fā)表于 06-30 17:16 ?124次閱讀

    harmony-utils之RSA,RSA加解密

    harmony-utils之RSA,RSA加解密 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmony-utils] 款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類,致力于
    的頭像 發(fā)表于 06-30 16:52 ?142次閱讀

    harmony-utils之SM2,SM2加解密

    harmony-utils之SM2,SM2加解密 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmony-utils] 款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類,致力于
    的頭像 發(fā)表于 06-30 16:47 ?171次閱讀

    harmony-utils之SM4,SM4加解密

    harmony-utils之SM4,SM4加解密 harmony-utils 簡(jiǎn)介與說(shuō)明 harmony-utils 款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類,致力于助力
    的頭像 發(fā)表于 06-28 18:36 ?138次閱讀

    全球首個(gè)Micro-LED陣列國(guó)際標(biāo)準(zhǔn)立項(xiàng)

    近日,維信諾參股子公司辰顯光電在國(guó)際電工委員會(huì)(IEC)牽頭制定的國(guó)際標(biāo)準(zhǔn)提案《半導(dǎo)體器件 第5-17部分:光電子器件 發(fā)光二極管 微型發(fā)光二極管陣列器件光電參數(shù)測(cè)試方法》通過(guò)了新工作項(xiàng)目提案(NP
    的頭像 發(fā)表于 06-07 14:35 ?759次閱讀

    半導(dǎo)體攜國(guó)產(chǎn)EtherCAT芯片及系列方案聚力2025廈門工博會(huì),引領(lǐng)行業(yè)芯生態(tài)

    5月9-12日,2025廈門工博會(huì)在廈門國(guó)際博覽中心隆重舉行,匯聚了眾多國(guó)內(nèi)外業(yè)界知名企業(yè)。國(guó)內(nèi)領(lǐng)先的工控芯片提供商半導(dǎo)體攜最新EtherCAT
    的頭像 發(fā)表于 05-13 17:13 ?564次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導(dǎo)體</b>攜國(guó)產(chǎn)EtherCAT芯片及<b class='flag-5'>系列</b>方案聚力2025廈門工博會(huì),引領(lǐng)行業(yè)芯生態(tài)

    洛微科技核心產(chǎn)品UL 61010國(guó)際安全標(biāo)準(zhǔn)認(rèn)證

    近期,洛微科技D系列ToF相機(jī)成功通過(guò)UL61010國(guó)際安全標(biāo)準(zhǔn)認(rèn)證。這認(rèn)證標(biāo)志著洛微科技在產(chǎn)品
    的頭像 發(fā)表于 04-27 10:58 ?398次閱讀
    洛微科技核心<b class='flag-5'>產(chǎn)品</b>獲<b class='flag-5'>UL</b> 61010<b class='flag-5'>國(guó)際</b>安全<b class='flag-5'>標(biāo)準(zhǔn)</b>認(rèn)證

    4G模組加解密藝術(shù):通用函數(shù)的深度解讀

    今天是對(duì)加解密通用函數(shù)的深度解讀,我將詳細(xì)講解,建議收藏,不可錯(cuò)過(guò)。
    的頭像 發(fā)表于 11-12 09:58 ?633次閱讀
    4G模組<b class='flag-5'>加解密</b>藝術(shù):通用函數(shù)的深度解讀

    半導(dǎo)體精彩亮相EtherCAT中國(guó)路演2024,以全新EtherCAT產(chǎn)品賦能工控應(yīng)用!

    2024年10月21日、23日、25日,2024年EtherCAT中國(guó)路演活動(dòng)分別在北京、武漢和深圳舉辦。半導(dǎo)體攜全新EtherCAT芯片產(chǎn)品和多項(xiàng)解決方案亮相盛會(huì),與業(yè)界各領(lǐng)域的
    的頭像 發(fā)表于 10-30 08:05 ?653次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導(dǎo)體</b>精彩亮相EtherCAT中國(guó)路演2024,以全新EtherCAT<b class='flag-5'>產(chǎn)品</b>賦能工控應(yīng)用!

    全球半導(dǎo)體巨頭近期聚焦哪些創(chuàng)新?

    本周新品速遞將分享瑞薩電子、英飛凌、Microchip微芯和Nexperia安世半導(dǎo)體四家頭部半導(dǎo)體廠商的產(chǎn)品動(dòng)向,主要集中在MCU、MPU、功率IC、傳感器IC和觸控控制器。 最近
    的頭像 發(fā)表于 10-28 11:24 ?696次閱讀
    全球<b class='flag-5'>半導(dǎo)體</b>巨頭近期聚焦哪些創(chuàng)新?

    EtherCAT 中國(guó)路演2024 | 半導(dǎo)體與您相約!

    和應(yīng)用專家,以及各領(lǐng)域的方案集成商將匯聚堂,共同探討EtherCAT技術(shù)領(lǐng)域的最新應(yīng)用趨勢(shì)和創(chuàng)新解決方案。半導(dǎo)體將攜全新EtherCAT從站芯片及多款創(chuàng)新應(yīng)用方
    的頭像 發(fā)表于 10-17 08:04 ?779次閱讀
    EtherCAT 中國(guó)路演2024 | <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導(dǎo)體</b>與您相約!

    半導(dǎo)體攜EtherCAT芯片亮相2024上海工博會(huì)(IAS)

    性工業(yè)博覽會(huì)。工業(yè)級(jí)芯片提供商半導(dǎo)體攜最新EtherCAT系列芯片及解決方案亮相本次展會(huì),并在ETG聯(lián)合展臺(tái)(展位:6.1H-D129)帶來(lái)產(chǎn)品
    的頭像 發(fā)表于 09-26 08:07 ?1254次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導(dǎo)體</b>攜EtherCAT芯片亮相2024上海工博會(huì)(IAS)

    【展會(huì)預(yù)告】半導(dǎo)體@上海工博會(huì)(IAS)

    亮相本次展會(huì),并在ETG聯(lián)合展臺(tái)(展位:6.1H-D129)帶來(lái)產(chǎn)品展示。展品方面,此次半導(dǎo)體將攜CF110x系列EtherCAT從站控
    的頭像 發(fā)表于 09-12 08:07 ?562次閱讀
    【展會(huì)預(yù)告】<b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導(dǎo)體</b>@上海工博會(huì)(IAS)

    半導(dǎo)體攜眾多產(chǎn)品及EtherCAT方案精彩亮相2024深圳國(guó)際電子展

    作為亞太地區(qū)頗具影響力的前沿科技成果展會(huì),elexcon2024深圳國(guó)際電子展已于8月27日盛大開(kāi)幕,半導(dǎo)體攜帶最新產(chǎn)品以及豐富的行業(yè)應(yīng)
    的頭像 發(fā)表于 08-30 12:44 ?1038次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導(dǎo)體</b>攜眾多<b class='flag-5'>產(chǎn)品</b>及EtherCAT方案精彩亮相2024深圳<b class='flag-5'>國(guó)際</b>電子展