1. 程式人生 > >圖解SM2演算法流程(合)

圖解SM2演算法流程(合)

A. SM2主要功能

A.1. 公私鑰

私鑰:BN_大整數

公鑰:EC-Point橢圓曲線上的點

整體結構


A.2 第2部分——數字簽名演算法

A.2.1 簽名(User A)

l  簽名者使用者A的金鑰對包括其私鑰dA公鑰PA=[dA]G= (xA,yA)

l  簽名者使用者A具有長度為entlenA位元的可辨別標識IDA,

l  ENTLA是由整數entlenA轉換而成的兩個位元組

l  ZA=H256(ENTLA || IDA || a || b || xG || yG|| xA || yA)。

l  待簽名的訊息為M

l  數字簽名(r,s)


說明:第5步若r=0r+k=n則返回第3步;第6步若s=0則返回第

3步。

A.2.2 驗籤(User B)

l  簽名者使用者A的金鑰對包括其私鑰dA公鑰PA=[dA]G= (xA,yA)

l  簽名者使用者A具有長度為entlenA位元的可辨別標識IDA,

l  ENTLA是由整數entlenA轉換而成的兩個位元組

l  ZA=H256(ENTLA || IDA || a || b || xG || yG|| xA || yA)。

l  訊息為M數字簽名(r,s)

 

A.2.3 原理

首先,驗證流程B4計算的點(x1y1) 和簽名步驟A3 計算的點 ( x1y)相等。

計算流程

(x1y1)

= [s′]G + [t]PA

[s′]G + [s′] PA

 + [r′] PA

[s′]G +[s′][dAG +[r·dAG

[(1+ dA)×s′] G+[r·dAG

[k − r · dA) ] G+[r·dAG

[k] G

x1y)

A.3 第3部分——金鑰交換協議

A.3.1 金鑰交換(User A & User B)


A.3.2 原理

參與KDF運算的所有輸入資料均相等,所以得到的協商金鑰自然相同。

A.4 第4部分——金鑰封裝和加解密

A.4.1 加密(User A)


說明:第3步計算S=[h]PB略,因h=1。

A.4.2 解密(User B)


說明:第2步計算S=[h]C1略,因h=1。

A.4.3 原理

關鍵在於說明加密流程第4步計算的 [k]PB= (x2y2) 與解密流程第2步計算的 [dB]C= (x2y2) 相等。解密流程第2步計算

計算流程

(x2y2)

= [dB]C1

=[dB][k]G

=[k] [dB] G

=[ k] PB

[k]PB是加密流程第4步計算值。所以加密流程第4步計算的[k]P= (x2,y2) 與解密流程第2步計算的[dB]C= (x2y2) 相等。

相關推薦

圖解SM2演算法流程

A. SM2主要功能A.1. 公私鑰私鑰:BN_大整數公鑰:EC-Point橢圓曲線上的點整體結構A.2 第2部分——數字簽名演算法A.2.1 簽名(User A)l  簽名者使用者A的金鑰對包括其私鑰dA和公鑰PA=[dA]G= (xA,yA)l  簽名者使用者A具有長度為

聚類方法:DBSCAN演算法研究1--DBSCAN原理、流程、引數設定、優缺點以及演算法

DBSCAN聚類演算法三部分: 1、        DBSCAN原理、流程、引數設定、優缺點以及演算法; 2、        matlab程式碼實現; 3、        C++程式碼實現及與matlab例項結果比較。 DBSCAN(Density-based

理解Android進程創建流程

object c mman appdata sel failed scrip sca emp 不足 /frameworks/base/core/java/com/android/internal/os/ - ZygoteInit.java - Zygote

理解Android線程創建流程

ttr cal 創建失敗 指向 ear long readn nbsp bar /android/libcore/libart/src/main/java/java/lang/Thread.java /art/runtime/native/java_lang_Thread

HBase源代碼分析之HRegion上MemStore的flsuh流程

初始化 back represent 代碼分析 讀數 ott pass expect 出現異常 繼上篇《HBase源代碼分析之HRegion上MemStore的flsuh流程(一)》之後。我們繼續分析下HRegion上MemStore flush的核心方

圖解排序算法之堆排序

穩定 for 根據 設計 編號 簡單的 重新 heapsort 其中 預備知識 堆排序   堆排序是利用堆這種數據結構而設計的一種排序算法,堆排序是一種選擇排序,它的最壞,最好,平均時間復雜度均為O(nlogn),它也是不穩定排序。首先簡單了解下堆結構。 堆   堆是具有以

vue項目開發流程

訪問 running you 命令 http nbsp div spa new vue的環境配置好之後,讓項目運行起來,一般是localhost:8080,如果是移動端,想在手機上查看效果,可以用電腦ip連接訪問 1.打開控制臺查看本機ip,輸入命令:ipconfig

Android系統啟動流程解析init進程啟動過程

option 寫入 android change failed miss 通知 target sna 前言 作為“Android框架層”這個大系列中的第一個系列,我們首先要了解的是Android系統啟動流程,在這個流程中會涉及到很多重要的知識點,這個系列我們就來一一講解它們

weexapp 開發流程其他頁面創建

導航 引入 組件 創建 exp 輪播圖 slider 分享圖片 -c 1.首頁 (1)輪播圖 步驟一:創建 輪播圖 組件(Slider.vue) src / assets / components / Slider.vue <!-- 輪播圖 組件 --> &l

goDaddy SSL證書 Nginx配置全流程

server div targe out list target num cert openss 好長時間沒動過這玩意了,今天突然用到,忘的一幹二凈。在此做個筆記吧! 一、購買Godaddy SSL證書 1、打開Godaddy官網 http://www.godadd

Spark執行流程

dep 相關 集群管理 十個 多個 運行原理 啟動 因此 分享圖片   原文地址:http://blog.jobbole.com/102645/    我們使用spark-submit提交一個Spark作業之後,這個作業就會啟動一個對應的Driver進程。

hadoop學習筆記:hdfs體系結構和讀寫流程

sim 百萬 服務器 發表 繼續 什麽 lose 基於 一次 原文:https://www.cnblogs.com/codeOfLife/p/5375120.html 目錄 HDFS 是做什麽的 HDFS 從何而來 為什麽選擇 HDFS 存儲數據 HDFS

小程序名片生成流程附圖

term ima 生成 ron ESS blog 依據 廣泛 size 隨著小程序的大熱,小程序的使用在目前已經越來越廣泛了,小到一張名片也是用小程序就可以完成了,完全代替了以前的紙質名片。而且小程序名片功能非常多,使用起來也便捷。下面就為大家介紹小程序名片生成流程。第一步

區塊鏈ico發幣的基本流程

服務 合成 edge 自動化腳本 聯網 互聯網 區塊 繼續 國外 今天卓誌就帶你完整的了解區塊鏈發幣的流程。這是第一篇。首先我們來明確一下概念。什麽是區塊鏈?區塊鏈(英文:Blockchain)是由一串使用密碼學方法產生的數據塊組成的,每一個區塊都包含了上一個區塊的哈希值(

OpenStack-liberty版虛擬機創建流程

meta ron 請求 identity 節點 tex 生成 con 創建 虛擬機創建流程: 根據官方提供的流程圖,我個人將OpenStack雲主機的創建步驟分為四個階段: 1、KeyStone驗證階段 2、Nova服務組件交換 3、OpenStack其它服務交換 4、執行

基於深度學習的目標檢測演算法綜述截止20180821

參考:https://zhuanlan.zhihu.com/p/40047760 目標檢測(Object Detection)是計算機視覺領域的基本任務之一,學術界已有將近二十年的研究歷史。近些年隨著深度學習技術的火熱發展,目標檢測演算法也從基於手工特徵的傳統演算法轉向了基於深度神經網路的檢測技

基於深度學習的目標檢測演算法綜述截止20180821

參考:https://zhuanlan.zhihu.com/p/40102001 基於深度學習的目標檢測演算法綜述分為三部分: 1. Two/One stage演算法改進。這部分將主要總結在two/one stage經典網路上改進的系列論文,包括Faster R-CNN、YOLO、SSD等經

基於深度學習的目標檢測演算法綜述截止20180821

參考:https://zhuanlan.zhihu.com/p/40020809 基於深度學習的目標檢測演算法綜述分為三部分: 1. Two/One stage演算法改進。這部分將主要總結在two/one stage經典網路上改進的系列論文,包括Faster R-CNN、YOLO、SSD等經

資料結構與演算法入門1

一、資料結構 資料之間相互存在的一種或多種特定的關係的元素的集合。 邏輯結構 資料物件中資料元素之間的相互關係 1.集合結構 在資料結構中,如果不考慮資料元素之間的關係,這種結構稱為集合結構。 各個元素是平等的,共同屬性是屬於同一個集合 2.線性結構 線性結構中的資料元素之間

基本演算法學習—— 排序

排序 一、氣泡排序   演算法思想: 在每一次對比排序中將大的數放在後面,整個排下來後,就變成有序的數列了   演算法實現:       1.(範圍為整個陣列),從前向後兩兩比較,如果前面比後面大就交換位置。第一遍後就將大的放在了最後       2.(縮小範圍),從頭再次重