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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

一文看懂碼靈半導體CFW32C7UL系列MPU產品應用(三): 國際標準加解密算法

碼靈半導體 ? 2022-06-13 10:59 ? 次閱讀

歡迎再次來到“碼靈半導體CFW32C7UL系列產品應用介紹”連載專題。通過前幾期對CFW32C7UL系列的國密算法介紹,相信大家對碼靈半導體CFW32C7UL系列的國密硬件模塊有了充分的了解。

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

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

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

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

    關注

    146

    文章

    17314

    瀏覽量

    352220
  • MPU
    MPU
    +關注

    關注

    0

    文章

    375

    瀏覽量

    48897
收藏 人收藏

    評論

    相關推薦

    關于4G模組LuatOS開發:通用加解密函數(crypto)|全攻略

    本次我要說的攻略是關于4G模組LuatOS開發的通用加解密函數,我以我常用的Air780E模組為例子供大家參考。
    的頭像 發表于 11-30 09:52 ?411次閱讀
    關于4G模組LuatOS開發:通用<b class='flag-5'>加解密</b>函數(crypto)|全攻略

    網線工程類線線徑國際標準是多少

    網線線徑的國際標準主要依據美國導線規格(AWG)進行標注。以下是對網線線徑國際標準的詳細解釋: 、AWG標準 定義:AWG是美國于1887年制定的區分圓銅
    的頭像 發表于 11-16 16:45 ?2424次閱讀

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

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

    看懂光刻膠的堅膜工藝及物理特性和常見光刻膠

    原文標題:看懂光刻膠的堅膜工藝及物理特性和常見
    的頭像 發表于 11-01 11:08 ?1118次閱讀

    半導體精彩亮相EtherCAT中國路演2024,以全新EtherCAT產品賦能工控應用!

    2024年10月21日、23日、25日,2024年EtherCAT中國路演活動分別在北京、武漢和深圳舉辦。半導體攜全新EtherCAT芯片產品和多項解決方案亮相盛會,與業界各領域的
    的頭像 發表于 10-30 08:05 ?303次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導體</b>精彩亮相EtherCAT中國路演2024,以全新EtherCAT<b class='flag-5'>產品</b>賦能工控應用!

    全球半導體巨頭近期聚焦哪些創新?

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

    EtherCAT 中國路演2024 | 半導體與您相約!

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

    半導體攜EtherCAT芯片亮相2024上海工博會(IAS)

    性工業博覽會。工業級芯片提供商半導體攜最新EtherCAT系列芯片及解決方案亮相本次展會,并在ETG聯合展臺(展位:6.1H-D129)帶來產品
    的頭像 發表于 09-26 08:07 ?690次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導體</b>攜EtherCAT芯片亮相2024上海工博會(IAS)

    【展會預告】半導體@上海工博會(IAS)

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

    半導體攜眾多產品及EtherCAT方案精彩亮相2024深圳國際電子展

    作為亞太地區頗具影響力的前沿科技成果展會,elexcon2024深圳國際電子展已于8月27日盛大開幕,半導體攜帶最新產品以及豐富的行業應
    的頭像 發表于 08-30 12:44 ?564次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導體</b>攜眾多<b class='flag-5'>產品</b>及EtherCAT方案精彩亮相2024深圳<b class='flag-5'>國際</b>電子展

    半導體攜EtherCAT從站芯片亮相2024年華南國際工業博覽會

    2024年6月19日,2024年華南國際工業博覽會在深圳會展中心(寶安新館)隆重開幕,半導體攜帶CF110x系列EtherCAT從站控制
    的頭像 發表于 06-21 08:23 ?592次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導體</b>攜EtherCAT從站芯片亮相2024年華南<b class='flag-5'>國際</b>工業博覽會

    半導體入選2024年度福建省數字經濟核心產業創新企業

    日前,福建省發展和改革委員會網站公示了“2024年度福建省數字經濟核心產業領域創新企業”名單,廈門半導體技術有限公司(以下簡稱“
    的頭像 發表于 06-18 08:23 ?600次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導體</b>入選2024年度福建省數字經濟核心產業創新企業

    半導體邀您相約2024年華南國際工業博覽會

    2024年華南國際工業博覽會將于2024年6月19-21日在深圳國際會展中心(寶安新館)盛大舉行。工業級芯片供應商,半導體將出席此次盛會
    的頭像 發表于 06-14 08:23 ?374次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導體</b>邀您相約2024年華南<b class='flag-5'>國際</b>工業博覽會

    產品簡介 | RZ/A系列MPU

    產品簡介 | RZ/A系列MPU
    的頭像 發表于 05-24 08:06 ?466次閱讀
    <b class='flag-5'>產品</b>簡介 | RZ/A<b class='flag-5'>系列</b><b class='flag-5'>MPU</b>

    鴻蒙OS開發問題:(ArkTS)【 RSA加解密,解決中文亂碼等現象】

    RSA加解密開始構建工具類就是舉步維艱,官方文檔雖然很全,但是還是有很多小瑕疵,在自己經過幾天的時間,徹底解決了中文亂碼的問題、分段加密的問題。
    的頭像 發表于 03-27 21:23 ?1885次閱讀
    鴻蒙OS開發問題:(ArkTS)【 RSA<b class='flag-5'>加解密</b>,解決中文亂碼等現象】
    主站蜘蛛池模板: 精品理论片 | 亚洲男人的性天堂 | 久久男人的天堂色偷偷 | 在线免费你懂的 | 亚洲黄色小视频 | 色天天综合久久久久综合片 | 大尺度视频在线观看 | 看黄视频免费 | 色姑娘网| hs视频在线观看 | 夜夜操com | 5566成人免费视频观看 | 五月婷婷色丁香 | 四虎在线最新地址4hu | 亚洲一卡二卡在线 | 四虎精品影院4hutv四虎 | 欧洲精品不卡1卡2卡三卡四卡 | 99免费观看视频 | 亚洲国产精品乱码在线观看97 | 欧美一级鲁丝片 | 99日精品欧美国产 | 亚洲福利秒拍一区二区 | 久久久噜噜噜久久久 | 1024你懂的国产欧美日韩在 | 午夜性视频 | 香蕉黄色网 | 性刺激的欧美三级视频 | 久久精品看片 | 国产在线麻豆自在拍91精品 | 黄色自拍偷拍 | 91视频综合网 | 亚洲+国产+图片 | 中文字幕欧美日韩 | 天天干天天干天天干天天干天天干 | 中文字幕一区二区精品区 | 最近高清在线视频观看免费 | 99青草青草久热精品视频 | 2o18国产大陆天天弄 | 午夜性刺激免费视频观看不卡专区 | 天天做天天爰夜夜爽 | 播放毛片|