91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

一文看懂碼靈半導體CFW32C7UL系列產(chǎn)品應用(二): 國密算法●下篇

碼靈半導體 ? 2022-06-07 10:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

歡迎再次來到“碼靈半導體CFW32C7UL系列產(chǎn)品應用介紹”連載專題。通過上期對CFW32C7UL系列國密算法SM3和真隨機數(shù)發(fā)生器TRNG的介紹,相信您對CFW32C7UL系列國密硬件模塊有了更進一步的了解。今天我們繼續(xù)介紹CFW32C7UL系列另外兩個非常重要的加解密算法:分組加密算法SM4和非對稱加密算法SM2。那么SM2和SM4國密模塊又是如何使用的?它們加解密的速度如何呢?帶著這些問題,今天我們詳細介紹下CFW32C7UL系列的SM2和SM4模塊及其具體使用方法。


一、SM4分組算法模塊
SM4屬于對稱加密算法,由國家密碼管理局于2012年3月21日發(fā)布的無線局域網(wǎng)標準的分組數(shù)據(jù)算法。顧名思義,對稱加密(也叫私鑰加密)指加密和解密使用相同密鑰的加密算法。對這兩個操作使用單個KEY使其成為一個簡單的過程,因此稱為“對稱”。對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高。與非對稱加密算法相比,對稱加密的速度要快得多,需要的計算能力更少,在互聯(lián)網(wǎng)中不需降低互聯(lián)網(wǎng)速度。意味著,當加密的數(shù)據(jù)量很大時,對稱加密是一個不錯的選擇。另外同類的對稱加密方法還有AES,RC4,DES,3DES,RC5,RC6等。
SM4算法是一個分組算法,該算法的分組長度為128比特,密鑰長度為128比特。加密算法與密鑰擴展算法都采用32輪非線性迭代結(jié)構(gòu)。解密算法與加密算法的結(jié)構(gòu)相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。在碼靈半導體CFW32C7UL系列中SM4算法是通過硬件方式實現(xiàn)的。
下面我們具體介紹下CFW32C7UL 系列SM4算法的使用方法。
開發(fā)模式一:裸機SDK

在這里插入圖片描述


SM4 算法流程圖
① 設(shè)置SM4密鑰接口
void SM4_SetKey(uint32_t *keyin, uint32_t *ivin, uint32_t mode, uint8_t swap_en,uint8_t mask_en)
函數(shù)參數(shù)
keyin:128bit密鑰指針
Ivin :CBC工作模式時的初始向量(使用CBC模式需要配置)
mode :SM4模式選擇
swap_en :SWAP模式使能, 即大小端配置
mask_en :隨機掩碼使能
使用范例
SM4_SetKey(key1,iv1_null,SM4_ECB_MODE,SM4_SWAP_DISABLE,SM4_MASK_DISABLE);
使用ECB模式,不使能SWAP模式,不使能隨機掩碼,key1為密鑰,iv1_null 為空
② 加解密接口
void SM4_DRV_CPU(uint32_t *datain, uint32_t *dataout, uint32_t length, uint8_t enc, uint8_t vsm4_en)
函數(shù)參數(shù):
Datain: 數(shù)據(jù)輸入指針
Dataout:數(shù)據(jù)輸出指針
Length :數(shù)據(jù)長度(length = bit長度 \128)
Enc: 加密/解密模式
vsm4_en: 偽SM4運算使能
使用范例
加密過程:
SM4_DRV_CPU (plain, result, 1, SM4_ENCRYPTION, SM4_VSM4_DISABLE);
明文為plain,輸出的密文為result, 數(shù)據(jù)長度為128bit ,加密模式,不使能偽sm4運算
解密過程:
SM4_DRV_CPU (result, decryp, 1, SM4_DECRYPTION,SM4_VSM4_DISABLE);
輸入密文為result,輸出的明文為decryp, 數(shù)據(jù)長度為128bit,解密模式,不使能偽sm4運算
開發(fā)模式二:Linux SDK
通過操作linux系統(tǒng)中/dev/wokoo_sm4 ,就可以進行SM4分組加解密算法的運算。
① SM4算法底層接口
open:打開設(shè)備節(jié)點
read:讀取加解密后的數(shù)據(jù)
write:寫入key數(shù)據(jù)和需要加解密的數(shù)據(jù)
ioctl:啟動加解密操作
② 接口描述
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ù)長度
返回值:成功0,其它失敗
write:
函數(shù)原型:static ssize_t uac_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
參數(shù):file:文件名,buf:寫入數(shù)據(jù)緩存,count:寫入數(shù)據(jù)長度
返回值:成功0,其它失敗
ioctl:
函數(shù)原型:static long uac_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
參數(shù):file:文件名,cmd:控制參數(shù),arg:其它參數(shù)
返回值:成功0,其它失敗
③ 使用示例
fd = open("/dev/wokoo_sm4", O_RDWR); 打開sm4節(jié)點
write(fd, &sm4_data, sizeof(struct sm4_data_t)); 寫入明文/密文
ioctl(fd, SM4_DIR_ENCRYPT/ SM4_DIR_DECRYPT, NULL); 選擇加密/解密
read(fd, sm4_data.dataout, sizeof(sm4_data.dataout)); 讀出加密/解密的結(jié)果
CFW32C7UL系列 SM4算法的效率
我們通過輸入128KB明文數(shù)據(jù),執(zhí)行加解密運算后輸出加解密運算結(jié)果,并記錄下含接口數(shù)據(jù)傳輸?shù)男酒ぷ鲿r長,得到CFW32C7UL系列 SM4算法的效率。
SM4接口加密運算(ECB模式)

在這里插入圖片描述

SM4接口解密運算(ECB模式)

在這里插入圖片描述

可以看到,碼靈半導體CFW32C7UL系列的SM4算法效率可以達到64Mbps。

二、SM2公鑰算法模塊
SM2屬于非對稱加密算法,是國家密碼管理局于2010年12月17日發(fā)布的橢圓曲線公鑰密碼算法。與對稱加密方法相反,非對稱加密涉及多個密鑰,用于數(shù)據(jù)的加密和解密,是在數(shù)學上彼此相關(guān)的兩個不同的加密密鑰,即:公開密鑰(簡稱公鑰)和私有密鑰(簡稱私鑰)。公鑰與私鑰是一對,如果用公鑰對數(shù)據(jù)進行加密,只有用對應的私鑰才能解密。非對稱加密與與對稱加密相比,在加密和解密花費的時間更長、速度相對較慢,比較適合對少量數(shù)據(jù)處理的應用場景。
SM2算法是基于ECC橢圓曲線算法,CFW32C7UL系列支持硬件PKI,ECC,DIV大數(shù)運算,同時SM2算法是通過軟件與硬件相結(jié)合的方式實現(xiàn),是一種安全性極高和效率極高的公鑰算法。同類算法如:RSA、Elgamal、背包算法、Rabin、D-H、ECC等。
下面我們具體介紹下CFW32C7UL系列 SM2算法的具體使用方法。
開發(fā)模式一:裸機SDK
① 產(chǎn)生密鑰對函數(shù)
GM_GenSM2keypair(uint32_t prikey[],uint32_t *Q_X,uint32_t *Q_Y)
函數(shù)參數(shù):
prikey: SM2私鑰數(shù)據(jù)
Q_X :公鑰 X坐標
Q_Y :公鑰 Y坐標
使用范例
GM_GenSM2keypair(prikey,public_keyX,public_keyY);
生成并獲取私鑰prikey,公鑰(public_keyX,public_keyY)
② SM2加密函數(shù)
GM_SM2Encrypt(uint32_t *encrydata, uint32_t *endatalen,uint32_t *plain, uint32_t plainlen, uint32_t *pub_X,uint32_t *pub_Y)
函數(shù)參數(shù)
encrydata:密文數(shù)據(jù)
endatalen:密文長度
plain:明文數(shù)據(jù)
plainlen:明文長度
pub_X:公鑰坐標X
pub_Y:公鑰坐標Y
使用范例
GM_SM2Encrypt(&endata[0],&endataLen,plain,plainlen,public_keyX,public_keyY)
使用公鑰public_key 加密明文plain,輸出密文endata。

③ SM2解密函數(shù)
GM_SM2Decrypt(uint32_t *DecDate, uint32_t DecDatelen,uint32_t *input , uint32_t inlen,uint32_t *pri_key )
函數(shù)參數(shù)
DecDate: 解密出來的明文數(shù)據(jù)
DecDatelen: 解密出來的明文長度
input: 輸入的密文
inlen: 輸入的密文長度
pri_key : 私鑰數(shù)據(jù)
使用范例
GM_SM2Decrypt(&dedata[0], plainlen, endata, endataLen, prikey);
使用私鑰 pricey 解密密文endata 輸出明文 dedata。

開發(fā)模式二:Linux SDK
通過操作linux系統(tǒng)中/dev/wokoo_sm2 ,可以進行SM2加解密算法的運算。
① SM2算法底層接口
open:打開設(shè)備節(jié)點
read:讀取加解密后的數(shù)據(jù)或私鑰和公鑰對
write:寫入明文數(shù)據(jù)
ioctl:設(shè)置是加密還是解密操作
② 接口描述
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ù)長度
返回值:成功0,其它失敗
write:
函數(shù)原型:static ssize_t uac_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
參數(shù):file:文件名,buf:寫入數(shù)據(jù)緩存,count:寫入數(shù)據(jù)長度
返回值:成功0,其它失敗
ioctl:
函數(shù)原型:static long uac_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
參數(shù):file:文件名,cmd:控制參數(shù),arg:其它參數(shù)
返回值:成功0,其它失敗
③ 使用示例
sm2_fd = open("/dev/wokoo_sm2", O_RDWR); 打開sm2節(jié)點
ioctl(sm2_fd, SM2_DIR_KEY, NULL); 設(shè)置讀取私鑰和公鑰對
read(sm2_fd, &sm2_data.prikey, sizeof(sm2_data.prikey) + sizeof(sm2_data.public_keyX) + sizeof(sm2_data.public_keyY));讀取私鑰和公鑰
write(sm2_fd, &sm2_data.plain, sizeof(sm2_data.plain)); 寫入明文/密文
ioctl(sm2_fd, SM2_DIR_ENCRYPT/ SM2_DIR_DECRYPT, NULL); 選擇加密/解密
read(sm2_fd, &sm2_data.en_data, 256); 讀取解密/解密結(jié)果
CFW32C7UL 系列SM2算法的效率

在這里插入圖片描述

三、加密算法的選擇
由于非對稱加密算法的運行速度比對稱加密算法的速度慢很多,當需要對大量的數(shù)據(jù)進行加密時,建議采用對稱加密算法,以提高加解密速度。對稱加密算法的密鑰管理是一個復雜的過程,密鑰的管理直接決定著他的安全性,因此當數(shù)據(jù)量很小時,我們可以考慮采用非對稱加密算法。
因?qū)ΨQ加密算法不能實現(xiàn)簽名,因此簽名時使用非對稱算法。在實際的操作過程中,我們通常采用的方式是:采用非對稱加密算法管理對稱算法的密鑰,然后用對稱加密算法加密數(shù)據(jù),這樣我們就集成了兩類加密算法的優(yōu)點,既實現(xiàn)了加密速度快的優(yōu)點,又實現(xiàn)了安全方便管理密鑰的優(yōu)點。
通過以上對CFW32C7UL系列 SM2和SM4算法模塊的介紹,相信您對國密模塊的使用有更深入的了解。碼靈半導體CFW32C7UL系列除了支持國密算法外,同樣也支持國際常見的通用加解密算法,如AES和SHA算法,這部分算法也是通過硬件實現(xiàn)。那么它們在CFW32C7UL系列中是如何具體使用呢?讓我們帶著這些問題,在下期中去探尋吧。

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

    關(guān)注

    463

    文章

    54018

    瀏覽量

    466334
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18935

    瀏覽量

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

    關(guān)注

    0

    文章

    455

    瀏覽量

    51355
  • 掃碼
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    加密全解析

    、能源、通信、物聯(lián)網(wǎng)等關(guān)鍵領(lǐng)域。核心特點:自主可控、安全合規(guī)、國產(chǎn)化適配,區(qū)別于國際通用的RSA、AES、SHA系列算法、核心
    的頭像 發(fā)表于 01-28 11:15 ?220次閱讀
    <b class='flag-5'>國</b><b class='flag-5'>密</b>加密全解析

    華工科技正式發(fā)布智醫(yī)療智能體系列產(chǎn)品

    1月20日,“華工科技醫(yī)工轉(zhuǎn)化聚焦AI醫(yī)療驅(qū)動發(fā)展論壇暨行智遠新品發(fā)布會”在華工科技中央研究院圓滿舉行。本次活動深度探討醫(yī)工融合發(fā)展路徑,并正式發(fā)布“智·醫(yī)療智能體”系列產(chǎn)品,標志著華工科技將產(chǎn)業(yè)級AI技術(shù)成功跨界應用于醫(yī)療
    的頭像 發(fā)表于 01-22 16:48 ?2665次閱讀

    GMSSL:算法SM2、SM3、SM4的高效實現(xiàn)

    GMSSL是個支持國家密碼算法算法)的開源密碼工具庫,它提供了與OpenSSL類似的功能,但特別強化了
    的頭像 發(fā)表于 01-05 20:59 ?387次閱讀
    GMSSL:<b class='flag-5'>國</b><b class='flag-5'>密</b><b class='flag-5'>算法</b>SM2、SM3、SM4的高效實現(xiàn)

    深入淺出GMSSL:掌握SM2、SM3、SM4算法的高效實踐

    將帶你從零開始,深入理解這三大核心算法在GMSSL中的高效使用方式,幫助你在實際項目中快速落地安全方案。 本文將以通信定位二合一系列Air780EGH核心板為例,帶你快速上手GMS
    的頭像 發(fā)表于 12-12 18:20 ?626次閱讀
    深入淺出GMSSL:掌握SM2、SM3、SM4<b class='flag-5'>國</b><b class='flag-5'>密</b><b class='flag-5'>算法</b>的高效實踐

    Cortex-M0+通用 MCU CW32F系列產(chǎn)品介紹

    Cortex-M0+ 通用 MCU CW32F系列家族型號展示 2021年10月14日,經(jīng)過多年的市場調(diào)研和潛心研發(fā),武漢芯源半導體自主研發(fā)的首款基于 Cortex-M0+ 內(nèi)核微控制器產(chǎn)品
    發(fā)表于 12-12 06:22

    半導體兩款LED芯片榮獲2025年廣東省名優(yōu)高新技術(shù)產(chǎn)品

    近日,廣東省高新技術(shù)企業(yè)協(xié)會正式發(fā)布《2025年第批廣東省名優(yōu)高新技術(shù)產(chǎn)品名單》,半導體自主研發(fā)的車規(guī)級LED芯片與垂直LED芯片兩大系列產(chǎn)品
    的頭像 發(fā)表于 12-02 15:10 ?3704次閱讀

    系列算法簡介及SM4算法原理介紹

    、 系列算法簡介 國家商用密碼算法(簡稱
    發(fā)表于 10-24 08:25

    安世半導體推出全新線性LED驅(qū)動器系列產(chǎn)品

    安世半導體近期推出了12/16/24通道、每通道100mA驅(qū)動能力的線性LED驅(qū)動系列產(chǎn)品。該系列產(chǎn)品集成芯片級ASIL-B功能安全,滿足車燈系統(tǒng)針對功能安全日漸增加的高要求,非常適用于車外照明中的轉(zhuǎn)向燈、剎車燈、貫穿式尾燈,以
    的頭像 發(fā)表于 09-26 17:35 ?2266次閱讀
    安世<b class='flag-5'>半導體</b>推出全新線性LED驅(qū)動器<b class='flag-5'>系列產(chǎn)品</b>

    半導體閃耀工博會,全系EtherCAT芯片與解決方案引領(lǐng)工控創(chuàng)新

    ,與各行業(yè)伙伴深度探討工控領(lǐng)域的最新發(fā)展趨勢和技術(shù)創(chuàng)新。展會上,半導體核心展區(qū)亮相了CF110x系列EtherCAT從站控制器芯片及多元創(chuàng)新產(chǎn)品
    的頭像 發(fā)表于 09-23 18:40 ?775次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導體</b>閃耀工博會,全系EtherCAT芯片與解決方案引領(lǐng)工控創(chuàng)新

    從原理到應用,讀懂半導體溫控技術(shù)的奧秘

    和精度能夠滿足光模塊在不同工況下的性能檢測要求,在光通訊行業(yè)的溫控應用中發(fā)揮作用。 依托帕爾貼效應這科學原理研發(fā)的高精度半導體溫控產(chǎn)品,通過多樣化的產(chǎn)品配置,在各領(lǐng)域的溫控環(huán)節(jié)中發(fā)揮
    發(fā)表于 06-25 14:44

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

    伙伴共同探討工控領(lǐng)域的最新發(fā)展趨勢和技術(shù)創(chuàng)新。本次展會上,半導體展示了CF110x系列EtherCAT從站控制器芯片及全系產(chǎn)品開發(fā)板。該
    的頭像 發(fā)表于 05-13 17:13 ?1106次閱讀
    <b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導體</b>攜國產(chǎn)EtherCAT芯片及<b class='flag-5'>系列</b>方案聚力2025廈門工博會,引領(lǐng)行業(yè)芯生態(tài)

    瓷(GUOCI)F系列貼片電容

    瓷F系列防嘯叫、低ESR貼片電容 瓷F系列產(chǎn)品采用特殊陶瓷材料設(shè)計,其由精確的介電材料和適當?shù)膶щ姖{料配制,自動化制程的穩(wěn)定生產(chǎn)和嚴謹?shù)馁|(zhì)量精確管控了介電設(shè)計厚度、電極完整性以及端
    發(fā)表于 05-09 15:14

    部署WoSign SSLRSA雙證書,實現(xiàn)HTTPS加密

    我國網(wǎng)絡(luò)安全法規(guī)體系不斷完善,形成了以《網(wǎng)絡(luò)安全法》為核心的立體化法律框架。阿里云數(shù)字證書管理服務提供國產(chǎn)品牌SSL證書,支持簽發(fā)基于算法的SSL/TLS證書,助力金融、政務等行業(yè)
    的頭像 發(fā)表于 03-26 10:58 ?857次閱讀
    部署WoSign SSL<b class='flag-5'>國</b><b class='flag-5'>密</b>RSA雙證書,實現(xiàn)<b class='flag-5'>國</b><b class='flag-5'>密</b>HTTPS加密

    云平臺如何部署WoSign SSL“RSA雙證書”

    阿里云WoSign品牌SSL證書是阿里云平臺熱銷的國產(chǎn)品牌證書之,支持簽發(fā)密合規(guī)的SM2算法SSL證書以及全球信任的RSA算法SSL證書
    的頭像 發(fā)表于 03-18 17:03 ?886次閱讀
    云平臺如何部署WoSign SSL“<b class='flag-5'>國</b><b class='flag-5'>密</b>RSA雙證書”

    先輯半導體HPM6E00系列產(chǎn)品能用來做EtherCAT的主站嗎

    雖然明確說明了先輯半導體HPM6E00系列產(chǎn)品能用來做EtherCAT的從站,但它可以用來做主站嗎,還是說必須用其他芯片做主站呢
    發(fā)表于 03-16 10:16