1. 程式人生 > >常見的加密演算法之DSA 演算法

常見的加密演算法之DSA 演算法

DSA(Digital Signature Algorithm)是Schnorr和ElGamal簽名演算法的變種,被美國NIST作為DSS(DigitalSignature Standard)。 DSA是基於整數有限域離散對數難題的。

DSA是一種更高階的驗證方式。一般用於數字簽名和認證。DSA 不單單隻有公鑰、私鑰,還有數字簽名。私鑰加密生成數字簽名,公鑰驗證資料及簽名。在DSA數字簽名和認證中,傳送者使用自己的私鑰對檔案或訊息進行簽名,接受者收到訊息後使用傳送者的公鑰來驗證簽名的真實性。如果資料和簽名不匹配則認為驗證失敗!數字簽名的作用就是校驗資料在傳輸過程中不被修改。數字簽名,是單向加密的升級!

DSA加密演算法的安全性

DSA加密演算法主要依賴於整數有限域離散對數難題,素數P必須足夠大,且p-1至少包含一個大素數因子以抵抗Pohlig &Hellman演算法的攻擊。M一般都應採用資訊的HASH值。DSA加密演算法的安全性主要依賴於p和g,若選取不當則簽名容易偽造,應保證g對於p-1的大素數因子不可約。

算術中運用的引數

DSA演算法中應用了下述引數:

p:L bits長的素數。L是64的倍數,範圍是512到1024;

q:p – 1的160bits的素因子;

g:g = h^((p-1)/q) mod p,h滿足h < p – 1, h^((p-1)/q) mod p > 1;

x:x < q,x為私鑰 ;

y:y = g^x mod p ,( p, q, g, y )為公鑰;

H( x ):One-Way Hash函式。DSS中選用SHA( Secure Hash Algorithm )。

p, q, g可由一組使用者共享,但在實際應用中,使用公共模數可能會帶來一定的威脅。

簽名及驗證協議

P產生隨機數k,k < q;P計算 r = ( g^k mod p ) mod q

s = ( k^(-1) (H(m) + xr)) mod q

簽名結果是( m, r, s )。

驗證時計算 w = s^(-1)mod q

u1 = ( H( m ) * w ) mod q

u2 = ( r * w ) mod q

v = (( g^u1 * y^u2 ) mod p ) mod q

若v = r,則認為簽名有效。

——————————————————————————————————

SSL證書是HTTP明文協議升級HTTPS加密協議的重要渠道,是網路安全傳輸的加密通道。關於更多SSL證書的資訊,請關注數安時代(GDCA)。GDCA致力於網路資訊保安,已通過WebTrust 的國際認證,是全球可信任的證書籤發機構。GDCA專業技術團隊將根據使用者具體情況為其提供最優的產品選擇建議,並針對不同的應用或伺服器要求提供專業對應的HTTPS解決方案。

文章轉載https://www.trustauth.cn/baike/24387.html

相關推薦

常見加密演算法DSA 演算法

DSA(Digital Signature Algorithm)是Schnorr和ElGamal簽名演算法的變種,被美國NIST作為DSS(DigitalSignature Standard)。 DSA是基於整數有限域離散對數難題的。DSA是一種更高階的驗證方式。一般用於數字

常見加密演算法DES演算法

DES演算法的定義 DES全稱為Data Encryption Standard,即資料加密標準,是一種使用金鑰加密的塊演算法,是1972年美國IBM公司研製的對稱密碼體制加密演算法。其金鑰長度為56位,明文按64位進行分組,將分組後的明文組和56位的金鑰按位替代或交

常見加密/簽名/雜湊演算法效能比較 (多平臺 AES/DES, DH, ECDSA, RSA等)

常見加密/簽名/雜湊演算法效能比較 (多平臺) 各CPU平臺處理數值單位是seconds of cpu time, 通過計算執行該程序的CPU時間。 1、 AES/DES: 2、Hashs 3、AEAD 4、Diffie-Hel

聚類演算法DBSCAN演算法二:高維資料剪枝應用NQ-DBSCAN

一、經典DBSCAN的不足 1.由於“維度災難”問題,應用高維資料效果不佳 2.執行時間在尋找每個點的最近鄰和密度計算,複雜度是O(n2)。當d>=3時,由於BCP等數學問題出現,時間複雜度會急劇上升到Ω(n的四分之三次方)。 二、DBSCAN在高維資料的改進 目前的研究有

聚類演算法DBSCAN演算法之一:經典DBSCAN

DBSCAN是基於密度空間的聚類演算法,與KMeans演算法不同,它不需要確定聚類的數量,而是基於資料推測聚類的數目,它能夠針對任意形狀產生聚類。 1.epsilon-neighborhood epsoiln-neighborhood(簡稱e-nbhd)可理解為密度空間,表示半徑為e

WF曲速未來:區塊鏈核心演算法Paxos演算法

Paxos演算法解決的問題是在一個可能發生訊息可能會延遲、丟失、重複的分散式系統中如何就某個值達成一致,保證不論發生以上任何異常,都不會破壞決議的一致性。 先帶你會看一下libpaxos3的程式碼: 第一步獲取和編譯LibPaxos3所需的基本步驟: 執行示例  

資料探勘演算法K_means演算法

轉載地址:https://blog.csdn.net/baimafujinji/article/details/50570824   聚類是將相似物件歸到同一個簇中的方法,這有點像全自動分類。簇內的物件越相似,聚類的效果越好。支援向量機、神經網路所討論的分類問題都是有監督的學習方式

連結分析演算法 HITS演算法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

python 資料結構與演算法歸併演算法

def merge_sort(alist): n=len(alist) if n<=1: return alist mid=n//2 left_list =merge_sort(alist[:mid]) right_list =mer

字串匹配演算法KMP演算法詳情

package demo; /* 字串匹配演算法 */ public class StringKMP { //找出從第一個字元開始 子串T在主串S的第一個位置 如果沒有則返回-1 public static int index(String S, String T)

在Object-C中學習資料結構與演算法排序演算法

筆者在學習資料結構與演算法時,嘗試著將排序演算法以動畫的形式呈現出來更加方便理解記憶,本文配合Demo 在Object-C中學習資料結構與演算法之排序演算法閱讀更佳。 目錄 選擇排序 氣泡排序 插入排序 快速排序 雙路快速排序 三路快速排序 堆排序 總結與收穫

大資料探勘領域十大經典演算法—CART演算法(附程式碼)

簡介 CART與C4.5類似,是決策樹演算法的一種。此外,常見的決策樹演算法還有ID3,這三者的不同之處在於特徵的劃分: ID3:特徵劃分基於資訊增益 C4.5:特徵劃分基於資訊增益比 CART:特徵劃分基於基尼指數 基本思想 CART假設決策樹是二叉樹,

最小生成樹演算法Kruskal演算法

最近做大題目主要運用的都是資料結構方面的題,既有之前的最短路徑的相關的演算法,也有現在的最小生成樹,這裡先講解Kruskal演算法,主要是我先在剛會這個,prim演算法,明天再看。 Kruskal演算法演算法其實和之前的djs演算法有點類似,主要還是每次迴圈找出

資料探勘領域十大經典演算法—SVM演算法(超詳細附程式碼)

簡介 SVM(Support Vector Machine)中文名為支援向量機,是常見的一種判別方法。在機器學習領域,是一個有監督的學習模型,通常用來進行模式識別、分類以及迴歸分析。 相關概念 分類器:分類器就是給定一個樣本的資料,判定這個樣本屬於哪個類別的演算法。例如在股

(3)聚類演算法DBSCAN演算法

文章目錄 1.引言 2.`DBSCAN`相關定義 3.`DBSCAN`密度聚類思想 3.1 `DBSCAN`演算法定義 3.2 DBSCAN演算法流程 4.`DBSCAN`演算法實現 4.1 使用`n

資料探勘十大經典演算法KNN演算法

KNN演算法(監督性學習) 1.演算法思想        KNN是通過測量不同特徵值之間的距離進行分類。它的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,其

資料探勘領域十大經典演算法—SVM演算法

本文轉自:https://blog.csdn.net/fuqiuai/article/details/79483057 簡介 SVM(Support Vector Machine)中文名為支援向量機,是常見的一種判別方法。在機器學習領域,是一個有監督的學習模型,通常用來

求解強連通分量演算法---Kosaraju演算法

本文提綱: 問題描述 Kosaraju 演算法 問題描述: 什麼是強連通分量(StronglyConnected Component)(或者,被稱為強連通子圖,Strongly Connected Subgraph)? 首先需要明白的是,強連通分量只可能存在於有

壓縮感知重構演算法IRLS演算法python實現

IRLS(iteratively reweighted least squares)演算法 (本文給出的程式碼未進行優化,只是為了說明演算法流程 ,所以執行速度不是很快) IRLS(iteratively reweighted least squar

淺談路徑規劃演算法Dijkstra演算法

 迪傑斯特拉(dijkstra)演算法是典型的用來解決最短路徑的演算法,也是很多教程中的範例,由荷蘭電腦科學家狄克斯特拉於1959年提出,用來求得從起始點到其他所有點最短路徑。該演算法採用了貪心的思想,每次都查詢與該點距離最的點,也因為這樣,它不能用來解決存在負權邊的圖。解