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

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

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

3天內不再提示

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

碼靈半導體 ? 2022-06-07 10:40 ? 次閱讀

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


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

在這里插入圖片描述


SM4 算法流程圖
① 設置SM4密鑰接口
void SM4_SetKey(uint32_t *keyin, uint32_t *ivin, uint32_t mode, uint8_t swap_en,uint8_t mask_en)
函數參數
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)
函數參數:
Datain: 數據輸入指針
Dataout:數據輸出指針
Length :數據長度(length = bit長度 \128)
Enc: 加密/解密模式
vsm4_en: 偽SM4運算使能
使用范例
加密過程:
SM4_DRV_CPU (plain, result, 1, SM4_ENCRYPTION, SM4_VSM4_DISABLE);
明文為plain,輸出的密文為result, 數據長度為128bit ,加密模式,不使能偽sm4運算
解密過程:
SM4_DRV_CPU (result, decryp, 1, SM4_DECRYPTION,SM4_VSM4_DISABLE);
輸入密文為result,輸出的明文為decryp, 數據長度為128bit,解密模式,不使能偽sm4運算
開發模式二:Linux SDK
通過操作linux系統中/dev/wokoo_sm4 ,就可以進行SM4分組加解密算法的運算。
① SM4算法底層接口
open:打開設備節點
read:讀取加解密后的數據
write:寫入key數據和需要加解密的數據
ioctl:啟動加解密操作
② 接口描述
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,其它失敗
ioctl:
函數原型:static long uac_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
參數:file:文件名,cmd:控制參數,arg:其它參數
返回值:成功0,其它失敗
③ 使用示例
fd = open("/dev/wokoo_sm4", O_RDWR); 打開sm4節點
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)); 讀出加密/解密的結果
CFW32C7UL系列 SM4算法的效率
我們通過輸入128KB明文數據,執行加解密運算后輸出加解密運算結果,并記錄下含接口數據傳輸的芯片工作時長,得到CFW32C7UL系列 SM4算法的效率。
SM4接口加密運算(ECB模式)

在這里插入圖片描述

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

在這里插入圖片描述

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

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

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

開發模式二:Linux SDK
通過操作linux系統中/dev/wokoo_sm2 ,可以進行SM2加解密算法的運算。
① SM2算法底層接口
open:打開設備節點
read:讀取加解密后的數據或私鑰和公鑰對
write:寫入明文數據
ioctl:設置是加密還是解密操作
② 接口描述
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,其它失敗
ioctl:
函數原型:static long uac_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
參數:file:文件名,cmd:控制參數,arg:其它參數
返回值:成功0,其它失敗
③ 使用示例
sm2_fd = open("/dev/wokoo_sm2", O_RDWR); 打開sm2節點
ioctl(sm2_fd, SM2_DIR_KEY, NULL); 設置讀取私鑰和公鑰對
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); 讀取解密/解密結果
CFW32C7UL 系列SM2算法的效率

在這里插入圖片描述

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

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

    關注

    456

    文章

    50936

    瀏覽量

    424670
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17173

    瀏覽量

    351656
  • MPU
    MPU
    +關注

    關注

    0

    文章

    371

    瀏覽量

    48851
  • 掃碼
    +關注

    關注

    0

    文章

    22

    瀏覽量

    5123
收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

    和應用專家,以及各領域的方案集成商將匯聚堂,共同探討EtherCAT技術領域的最新應用趨勢和創新解決方案。半導體將攜全新EtherCAT從站芯片及多款創新應用方
    的頭像 發表于 10-17 08:04 ?380次閱讀
    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 ?642次閱讀
    <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 ?283次閱讀
    【展會預告】<b class='flag-5'>碼</b><b class='flag-5'>靈</b><b class='flag-5'>半導體</b>@上海工博會(IAS)

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

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

    紫光芯攜存儲系列產品出席2024慕尼黑上海電子展

    2024年7月8日至10日,西安紫光半導體股份有限公司(簡稱:紫光芯,證券代碼:874451)精彩亮相慕尼黑上海電子展。紫光芯聚焦人
    的頭像 發表于 07-11 11:28 ?782次閱讀

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

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

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

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

    協議網關與IPSec VPN技術:保障數據安全傳輸的新途徑

    )是互聯網協議安全的種標準,用于保護網絡通信的安全性和保密性。算法是由中國國家密碼管理局制定的一系列密碼
    的頭像 發表于 05-28 14:24 ?1333次閱讀
    <b class='flag-5'>國</b><b class='flag-5'>密</b>協議網關與IPSec VPN技術:保障數據安全傳輸的新途徑

    美新半導體發布eOIS影像穩定系列產品MSD4100WA

    近日,全球MEMS傳感技術領軍者美新半導體重磅發布了款新的eOIS影像穩定驅動系列產品——MSD4100WA。這款產品集成了高精度、低噪聲的硅基線性霍爾傳感器,為影像穩定系統提供了前
    的頭像 發表于 05-17 10:34 ?595次閱讀

    晶科能源Tiger Neo系列產品榮獲全球首家UL 2000V認證

    近期,晶科能源Tiger Neo系列產品,通過了第三方權威機構UL在今年2月發布的UL61730關于2000V光伏組件的認證要求決議中一系列嚴格的安全和性能評估,被認可能夠承受2000
    的頭像 發表于 03-25 11:18 ?508次閱讀
    晶科能源Tiger Neo<b class='flag-5'>系列產品</b>榮獲全球首家<b class='flag-5'>UL</b> 2000V認證

    Nexperia發布全新模擬開關系列產品

    全球基礎半導體器件領域的領軍企業Nexperia(安世半導體)最近發布了全新的專用于監測和保護1.8V電子系統的4通道和8通道模擬開關系列產品。這創新
    的頭像 發表于 03-11 10:08 ?722次閱讀

    什么是算法?工業網關為什么要支持算法

    工業網關是應用于工業物聯網關的常見通信交換傳輸設備,由于在使用過程中通常涉及工業敏感數據,因此也需要支持算法實現數據加密傳輸,保障工業物聯網安全穩定。
    的頭像 發表于 01-31 16:55 ?1174次閱讀
    什么是<b class='flag-5'>國</b><b class='flag-5'>密</b><b class='flag-5'>算法</b>?工業網關為什么要支持<b class='flag-5'>國</b><b class='flag-5'>密</b><b class='flag-5'>算法</b>?

    安世半導體發布全新兩路輸出LCD偏壓電源系列產品

    安世半導體(Nexperia)近日發布了款全新的兩路輸出LCD偏壓電源系列產品,這款產品具有節省空間和高效率的特性。該系列產品的設計目標是
    的頭像 發表于 01-15 14:23 ?947次閱讀
    主站蜘蛛池模板: 手机看片国产免费永久| 欧美色图一区| 一区二区三区久久| 亚洲高清一区二区三区四区| 在线观看日本亚洲一区| 热re99久久国产精品| www.午夜视频| 亚洲婷婷在线视频| 五月天婷婷综合网| 亚洲日本高清| 天天干国产| 成人看片在线观看| 一级不卡毛片| 免费观看片| 2018天天干夜夜操| 在线 | 一区二区三区四区| 亚洲深夜| 亚洲四虎影院| 日韩高清特级特黄毛片| 就要爱综合| 白嫩美女在线啪视频观看| 天天操天天干天天摸| 九九国产精品视频| 在线观看亚洲一区二区| 一 级 黄 中国色 片| 日本三级特黄| 国产精品日本亚洲777| 天天爽夜夜爽每晚高澡| 国产精品莉莉欧美自在线线| 亚洲欧洲一区二区三区在线观看| 亚洲综合成人在线| 日本特黄在线观看免费| 国产色视频一区| 日本高清一本视频| 免费黄色大片视频| 亚洲人成电影综合网站色| 欧美日韩国产网站| 在线女同免费观看网站| 夜夜操操操| yy8090韩国日本三理论免费| 欧美三j片|