主頁 >  其他 > SM2加密演算法

SM2加密演算法

2023-07-04 07:55:48 其他

幾何學基礎

  1. 歐式幾何
  • 從一點向另一點可以引一條直線,
  • 任意線段能無限延伸成一條直線,
  • 給定任意線段,可以以其一個端點作為圓心,該線段作為半徑作一個圓,
  • 所有直角都相等,
  • 若兩條直線都與第三條直線相交,并且在同一邊的內角之和小于兩個直角,則這兩條直線在這一邊必定相交,
  1. 羅巴切夫斯基幾何
  • 第五公設不能被證明,
  • 在新的公理體系中展開的一連串推理,得到了一系列在邏輯上無矛盾的新的定理,并形成了新的理論,這個理論像歐氏幾何一樣是完善的、嚴密的幾何學,
  1. 黎曼幾何
    對于三維空間,有以下三種情形:
  • 曲率恒等于零
  • 曲率為負常數
  • 曲率為正常數

前兩種情形分別對應于歐幾里得幾何學和羅巴切夫斯基幾何學,而第三種情形則是黎曼本人的創造,它對應于另一種非歐幾何學,黎曼的這第三種幾何就是用命題“過直線外一點所作任何直線都與該直線相交”代替第五公設作為前提,保留歐氏幾何學的其他公理與公設,經過嚴密邏輯推理而建立起來的幾何體系,這種幾何否認“平行線”的存在,是另一種全新的非歐幾何,這就是如今狹義意義下的黎曼幾何,它是曲率為正常數的幾何,也就是普通球面上的幾何,又叫球面幾何,

橢圓曲線

定義:一條橢圓曲線就是一組被 \(y^2 = x^3 + ax + b\) 定義的且滿足 \(4a3+27b2≠0\) 的點集,

橢圓曲線加法(非有限域):
在橢圓曲線上取一點P(Xp,Yp),再取一點Q(Xq,Yq),連接P、Q兩點作一條直線,這條直線將在橢圓曲線上交于第三點G,過G點作垂直于X軸的直線,將過橢圓曲線另一點R(一般是關于X軸對稱的點),R點則被定義為P+Q的結果,既P+Q=R:
橢圓曲線加法(有限域):
公式如下
Xr = (λ2 - Xp - Xq) mod p
Yr = (λ(Xp - Xr) - Yp) mod p
橢圓曲線乘法:
乘法簡化成加法

伽羅瓦域

有限域亦稱伽羅瓦域(galois field),是僅含有限個元素的域,它是伽羅瓦(Galois,E.)于18世紀30年代研究代數方程根式求解問題時引出的.有限域的特征數必為某一素數p,因此它含的素域同構于Zp.若F是特征為p的有限域,則F中元素的個數為p?,n為某一正整數.元素個數相同的有限域是同構的.因此,通常用GF(p?)表示p?元的有限域.GF(p?)的乘法群是(p?-1)階的回圈群.

有限域橢圓曲線點的階

如果橢圓曲線上一點P,存在最小的正整數n使得數乘 \(n P = O ∞ ?\) ,則將n稱為P的階
若n不存在,則P是無限階的.

加密原理

考慮 \(K=kG\) ,其中K、G為橢圓曲線Ep(a,b)上的點,n為G的階(\(nG=O∞ \)? ),k為小于n的整數,則給定k和G,根據加法法則,計算K很容易但反過來,給定K和G,求k就非常困難,因為實際使用中的ECC原則上把p取得相當大,n也相當大,要把n個解點逐一算出來列成上表是不可能的,這就是橢圓曲線加密演算法的數學依據 ,

  • 點G稱為基點(base point)

  • \(k(k<n)\) 為私有密鑰(private key)

  • K為公開密鑰(public key)

    下面是利用橢圓曲線進行加密通信的程序:

    1. 用戶A選定一條橢圓曲線Ep(a,b),并取橢圓曲線上一點,作為基點G,
    2. 用戶A選擇一個私有密鑰k,并生成公開密鑰K=kG,
    3. 用戶A將Ep(a,b)和點K,G傳給用戶B,
    4. 用戶B接到資訊后 ,將待傳輸的明文編碼到Ep(a,b)上一點M(編碼方法很多,這里不作討論),并產生一個隨機整數r(r<n),
    5. 用戶B計算點 \(C1 = M + r K \)和\(C2 = M + r K \),
    6. 用戶B將 C 1 、 C 2傳給用戶A,
    7. 用戶A接到資訊后,計算 \(C 1 ? k C 2\) ?,結果就是點M,再對點M進行解碼就可以得到明文, 因為\( C 1 ? k C 2 = M + r K ? k ( r G ) = M + r k G ? k r G = M\)

密鑰交換ECDH

ECDH使得交換雙方可以在不共享任何秘密的情況下協商出一個密鑰,密鑰磋商程序:
假設密鑰交換雙方為Alice、Bob,有相同的橢圓曲線,

  1. Alice生成亂數私鑰a,計算a*G, 生成Alice公鑰
  2. Bob生成亂數私鑰b,計算b*G, 生成Bob公鑰
  3. Alice將公鑰aG和基點G傳遞給Bob,竊聽者C可以獲取公鑰aG和基點G,
  4. Bob將bG傳遞給Alice,同理,竊聽者C同樣可以獲得bG,
  5. Bob收到Alice傳遞過來的公鑰a*G,計算Q =baG;
  6. Alice收到Bob傳遞的公鑰b*G,計算Q=abG,竊聽者C可以獲得G、aG、bG但是得不到abG

簽名

用私鑰 a 對訊息 m簽名,得到的結果是兩個整數 (r,s),計算程序如下,

  1. 隨機生成臨時私鑰 k,并計算其對應的公鑰 K=k?G=(xK,yK)
  2. 計算 \(r=xK mod n\),若 r為 0,則回到第一步
  3. 計算訊息 m的哈希 e=hash(m),并將 e的二進制序列轉成一個整數
  4. 計算\( s=k?1(e+ra)modn\),若 s為 0,則回到第一步
  5. 得到簽名 (r,s)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/556526.html

標籤:其他

上一篇:【專案報告】編程技術刷題報告【編號:刷題01號】

下一篇:返回列表

標籤雲
其他(162020) Python(38266) JavaScript(25520) Java(18286) C(15238) 區塊鏈(8275) C#(7972) AI(7469) 爪哇(7425) MySQL(7281) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5876) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4609) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2438) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1985) HtmlCss(1983) 功能(1967) Web開發(1951) C++(1942) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1882) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • SM2加密演算法

    幾何學基礎 歐式幾何 從一點向另一點可以引一條直線。 任意線段能無限延伸成一條直線。 給定任意線段,可以以其一個端點作為圓心,該線段作為半徑作一個圓。 所有直角都相等。 若兩條直線都與第三條直線相交,并且在同一邊的內角之和小于兩個直角,則這兩條直線在這一邊必定相交。 羅巴切夫斯基幾何 第五公設不能被 ......

    uj5u.com 2023-07-04 07:55:48 more
  • 【專案報告】編程技術刷題報告【編號:刷題01號】

    摘要: 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-07-03 07:42:45 more
  • 最優化問題簡介及優秀教材《凸優化》介紹

    前言 最優化廣泛應用于科學與工程計算、資料科學、機器學習、人工智能、影像和信號處理、金融和經濟、管理科學等眾多領域。 最優化問題可以歸納為如下定義: 最優化問題一般很難求解,除了一些特例。目前已經發展成熟的,能夠有效求解的最優化問題可以歸為以下三類: 最小二乘問題 least-squares pro ......

    uj5u.com 2023-07-03 07:42:39 more
  • 主題 3 編輯器(Vim)

    # 主題 3 編輯器(Vim) [編輯器 (Vim) · the missing semester of your cs education (missing-semester-cn.github.io)](https://missing-semester-cn.github.io/2020/edi ......

    uj5u.com 2023-07-03 07:42:25 more
  • 【筆試實戰】LeetCode題單刷題-編程基礎 0 到 1【一】

    摘要: 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-07-03 07:42:13 more
  • MBR初認識

    1.什么是MBR 說實話,我一直都不喜歡在一大堆內容一開始就拋出一長條概念,這很勸退,但現在記錄一下是很有必要的,否則后續忘記就難理解了。 簡單來講,MBR記錄著硬碟各個磁區的大小和位置資訊,就像人口普查一樣,對整個硬碟的分布了熟于心。它是開機后訪問硬碟時要讀取的第一個扇區,不難理解,畢竟要知道自己 ......

    uj5u.com 2023-07-03 07:42:06 more
  • 最優化問題簡介及優秀教材《凸優化》介紹

    前言 最優化廣泛應用于科學與工程計算、資料科學、機器學習、人工智能、影像和信號處理、金融和經濟、管理科學等眾多領域。 最優化問題可以歸納為如下定義: 最優化問題一般很難求解,除了一些特例。目前已經發展成熟的,能夠有效求解的最優化問題可以歸為以下三類: 最小二乘問題 least-squares pro ......

    uj5u.com 2023-07-03 07:41:38 more
  • 【筆試實戰】LeetCode題單刷題-編程基礎 0 到 1【一】

    摘要: 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-07-03 07:41:08 more
  • 主題 3 編輯器(Vim)

    # 主題 3 編輯器(Vim) [編輯器 (Vim) · the missing semester of your cs education (missing-semester-cn.github.io)](https://missing-semester-cn.github.io/2020/edi ......

    uj5u.com 2023-07-03 07:40:39 more
  • MBR初認識

    1.什么是MBR 說實話,我一直都不喜歡在一大堆內容一開始就拋出一長條概念,這很勸退,但現在記錄一下是很有必要的,否則后續忘記就難理解了。 簡單來講,MBR記錄著硬碟各個磁區的大小和位置資訊,就像人口普查一樣,對整個硬碟的分布了熟于心。它是開機后訪問硬碟時要讀取的第一個扇區,不難理解,畢竟要知道自己 ......

    uj5u.com 2023-07-03 07:39:44 more