當前位置:首頁 » 操作系統 » 數字簽名dsa演算法

數字簽名dsa演算法

發布時間: 2022-12-08 19:27:35

『壹』 什麼是數字簽名

簡單地說,所謂數字簽名就是附加在數據單元上的一些數據,或是對數據單元所作的密碼變換。這種數據或變換允許數據單元的接收者用以確認數據單元的來源和數據單元的完整性並保護數據,防止被人(例如接收者)進行偽造。它是對電子形式的消息進行簽名的一種方法,一個簽名消息能在一個通信網路中傳輸。基於公鑰密碼體制和私鑰密碼體制都可以獲得數字簽名,目前主要是基於公鑰密碼體制的數字簽名。包括普通數字簽名和特殊數字簽名。普通數字簽名演算法有RSA、ElGamal、Fiat-Shamir、Guillou-
Quisquarter、Schnorr、Ong-Schnorr-Shamir數字簽名演算法、Des/DSA,橢圓曲線數字簽名演算法和有限自動機數字簽名演算法等。特殊數字簽名有盲簽名、代理簽名、群簽名、不可否認簽名、公平盲簽名、門限簽名、具有消息恢復功能的簽名等,它與具體應用環境密切相關。顯然,數字簽名的應用涉及到法律問題,美國聯邦政府基於有限域上的離散對數問題制定了自己的數字簽名標准(DSS)。一些國家如法國和德國已經制定了數字簽名法。
您可到GlobalSign
的官方網站進行詳細了解!

『貳』 在數字簽名演算法DSA中,如果Alice簽名時秘密隨即選取的k被泄露,那麼將會發生什麼問題

簽名可以理解為用alice的私鑰對需要簽名的數據進行加密的過程。由於私鑰只有本人持有且加密過的內容只能由對應的公鑰解開,所以對方用alice的公開密鑰解密就可以知道是不是由alice本人簽發。

所以你的問題不正確,alice不能用隨機選取的key簽名,而只能用自己的私鑰簽名。
如果私鑰泄露了,那持有這把私鑰的人就可以冒用alice的身份。另外,持有了私鑰,就可以解開別人給alice發送的私信(用alice的公鑰加密的信息)。

『叄』 帶密鑰的消息摘要演算法——數據簽名演算法

數字簽名演算法可以看做是一種帶有密鑰(公鑰+私鑰)的消息摘要演算法,也就是說,數據簽名演算法是非對稱加密演算法和消息摘要演算法的結合體。該演算法包含簽名和驗證兩項操作,遵循 「私鑰簽名,公鑰驗證」 的簽名/驗證方式。

1、甲方構建密鑰對,並能公布公鑰給乙方。
2、甲方想乙方發送數據需要附加簽名。
3、乙方使用公鑰和簽名驗證數據。

RSA數字簽名演算法主要可以分為:MD、SHA兩類。該演算法公鑰通常要比私鑰短。

RSA數字簽名示例:

在實現層面上,可以認為DSA演算法實現就是RSA演算法實現的精簡版。DSA演算法僅支持SHA系列消息摘要演算法。

DSA數字簽名示例:

ECDSA演算法相對於傳統簽名演算法具有速度快、強度高、簽名短等優點。微軟操作系統及辦公軟體的序列號驗證就使用了該演算法。

ECDSA演算法示例:

『肆』 dsa的簽名過程比rsa短

   DSA(用於數字簽名演算法)的簽名生成速度很快,驗證速度很慢,加密時更慢,但解密時速度很快,安全性與RSA密鑰相等,而密鑰長度相等。此為一些重要的話,現在是一些觀點。

        RSA演算法(可用於加密和數字簽名)的安全性基於這樣的事實:大整數的因式分解被認為是『難以破解』(困難的),而DSA安全性基於離散對數問題。今天已知用於分解大整數塊的最快演算法是通用數字場篩(可以理解為對簡單合理篩或二次篩的改進演算法),也是解決有限域中的離散對數問題的最快演算法,該演算法以DSA指定的大素數為模。

        如果你的計算機安裝了OpenSSL,請運行。您將看到DSA在生成簽名時執行的很快,但在驗證具有相同密鑰長度的簽名時速度要慢得多。通常來說你想要驗證得(速度)更快,如果你處理的是一個已簽名的文件,(而如果你的)簽名只生成一次,這很好,但文件簽名最終可能會被用戶頻繁地驗證(這就不好了,因為驗證速度很慢)。

『伍』 什麼是古典加密演算法

古典加密演算法分為替代演算法和置換移位法。

1.替代演算法
替代演算法指的是明文的字母由其他字母或數字或符號所代替。最著名的替代演算法是愷撒密碼。凱撒密碼的原理很簡單,其實就是單字母替換。我們看一個簡單的例子:

明文:abcdefghijklmnopq

密文:defghijklmnopqrst

若明文為student,對應的密文則為vwxghqw 。在這個一一對應的演算法中,愷撒密碼將字母表用了一種順序替代的方法來進行加密,此時密鑰為3,即每個字母順序推後3個。由於英文字母為26個,因此愷撒密碼僅有26個可能的密鑰,非常不安全。

為了加強安全性,人們想出了更進一步的方法:替代時不是有規律的,而是隨機生成一個對照表。

明文:abcdefghijklmnopqrstuvwxyz

密文:xnyahpogzqwbtsflrcvmuekjdI

此時,若明文為student,對應的密文則為 vmuahsm 。這種情況下,解密函數是上面這個替代對照表的一個逆置換。

不過,有更好的加密手段,就會有更好的解密手段。而且無論怎樣的改變字母表中的字母順序,密碼都有可能被人破解。由於英文單詞中各字母出現的頻度是不一樣的,通過對字母頻度的統計就可以很容易的對替換密碼進行破譯。為了抗擊字母頻度分析,隨後產生了以置換移位法為主要加密手段的加密方法。

2.置換移位法
使用置換移位法的最著名的一種密碼稱為維吉尼亞密碼。它以置換移位為基礎的周期替換密碼。

前面介紹的替代演算法中,針對所有的明文字母,密鑰要麼是一個唯一的數,要麼則是完全無規律可尋的。在維吉尼亞密碼中,加密密鑰是一個可被任意指定的字元串。加密密鑰字元依次逐個作用於明文信息字元。明文信息長度往往會大於密鑰字元串長度,而明文的每一個字元都需要有一個對應的密鑰字元,因此密鑰就需要不斷循環,直至明文每一個字元都對應一個密鑰字元。對密鑰字元,我們規定密鑰字母a,b,c,d……y,z對應的數字n為:0,1,2,3……24,25。每個明文字元首先找到對應的密鑰字元,然後根據英文字母表按照密鑰字元對應的數字n向後順序推後n個字母,即可得到明文字元對應的密文字元。

如果密鑰字為deceptive , 明文為 wearediscoveredsaveyourself,則加密的過程為:

明文: wearediscoveredsaveyourself

密鑰: deceptivedeceptivedeceptive

密文: zicvtwqngrzgvtwavzhcqyglmgj

對明文中的第一個字元w,對應的密鑰字元為d,它對應需要向後推3個字母,w,x,y,z,因此其對應的密文字元為z。上面的加密過程中,可以清晰的看到,密鑰deceptive被重復使用。

古典密碼體制將數學的方法引入到密碼分析和研究中。這為現代加密技術的形成和發展奠定了堅實的基礎。

『陸』 12 簽名演算法

簽名演算法是公鑰密碼學的「消息認證碼」,它主要包括3個部分:

簽名演算法可以在加密演算法的基礎上構建。使用一個私鑰,可以對一個消息產生一個值,通常是使用hash演算法來生成。任何人都可以用公鑰來檢查這個值,計算該值是否由消息計算得到,然後將兩者進行驗證。和公鑰加密演算法一個明顯的不同是,使用私鑰來產生消息(這個情形下就是簽名),使用公鑰去解析它,這個和加密的過程是反過來的。

上面的說明是對後面很多重要細節的概述。本文將繼續討論一些細節。

數字簽名演算法(Digital Signature Algorithm DSA)是英國聯邦政府的一個數字簽名標准。它由NIST(National Institute of Standards and Technology)在1991年第一次提出,用來作為數字簽名的標准(Digital Signature Standard DDS)。該演算法由NSA的技術顧問David W.Kravitz發布。

DSA的密鑰生成分為兩步:第一步,選擇在用戶中共享的參數。第二步,為每一個用戶生成一份公私鑰對。

首先需要挑選一個被推薦的密碼hash函數H,密鑰長度L和一個素數長度N。原始的DSS中推薦L的長度為512和1024之間,現在NIST推薦密鑰的長度為3072位這樣密鑰的安全生命周期就可以到2030年。隨著L的增長,N也需要增長。

接下來選擇素數q,其長度為N位。N需要小於或者等於hash輸出的長度。再選擇一個L位長度的素數p,使得p-1是q的倍數。

最後一部分是最容易讓人困惑的。需要找到一個數字g,它的乘法序模p是q。最簡單的方法是設

也可以嘗試其他比2大,比p-1小的數。

一旦確定了(p,q,g),可以將其在用戶中共享。

有了參數,就該來位用戶計算公鑰和私鑰了。首先,選擇隨機數x (0<x<q), 接下來計算y y=g^x(mod p).這樣私鑰就是x,公鑰為(p,q,g,y)。

為了對消息進行簽名,簽名者在0-q之間挑選一個隨機數k。如何挑選k是一個很敏感和相關的過程,這個在之後進行討論。當k選定後,可以計算消息m的簽名的兩部分r和s:

如果兩者中任意一個是0(罕見時間),再重新選擇一個k。

驗證簽名需要一個復雜的計算。給定消息m和簽名(r,s):

如果簽名是有效的,那麼v就會等於r,也就是簽名的第二部分。

雖然目前DSA演算法自身沒有什麼問題,但是它卻很容易出錯。進一步說,DSA是非常敏感的,僅僅是一個很小的實現上的錯誤就可以毀掉整個機制。

特殊來看,簽名參數k的選擇是非常嚴格的。可以說是密碼系統中對於隨機數選擇中最嚴格的。例如,很多演算法需要一個nonce值。nonce值僅僅需要唯一,它不需要私密。它也不需要不可預測。nonce值通常可以使用簡單的計數器或者時鍾。很多其他演算法例如CBC模式,需要一個初始化向量。它不需要是唯一的,只需要是不可預測的。它也不需要是私密的:初始化向量通常和密文一起。但是DSA演算法的隨機數k是以上的組合:

如果沒有滿足這些特性,攻擊者可以嘗試從一定數量的簽名中得到你的私鑰。例如,攻擊者只要知道k的一些位,和比較多的有效簽名,就可以恢復出私鑰。[NS00]

實際中DSA的很多實現都不能保證唯一性,愉快地重用隨機數k。這就使得只需要使用簡單的數學就可以恢復密鑰。因為這個攻擊很容易理解,應用非常廣泛並且可以造成非常嚴重的影響,本節將討論它的細節。

假設攻擊者看到了很多對於不同消息mi的簽名(ri,si),它們使用了相同的k。攻擊者可以挑選出兩個簽名(r1,s1)和(r2,s2),假設它們的原消息位m1和m2.s1和s2的是通過如下計算得到的

攻擊者可以推斷出r1和r2是相同的,因為

重用了相同的k,而r僅僅依賴於k,所以r是相同的。另外由於簽名者使用的是同一個密鑰,兩個公式中的x也是相同的。

將兩個s相減,得到一下的計算:

可以得到k

兩個hash值H(m1)和H(m2)很容易計算。它們並沒有加密,被簽名的消息是公開的。簽名的兩個s1和s2是簽名的組成部分,攻擊者都可以看到。所以攻擊者可以計算得到k。目前它還沒有得到私鑰x,然後用私鑰去偽造簽名。

再次看下s的計算過程,這次把k當作是已知項,x作為需要解決的變數。

所有有效的簽名都滿足這個等式,所以可以嘗試任意一個簽名。來解出x

同樣的H(m)是公開的,攻擊者可以計算出k。假設他們已經計算出了k,s本身就是簽名的一部分。現在只需要計算r^(-1)(mod q)(也就是r相對於模q的逆元),這個同樣也可以計算出來。(更多信息可以查看附錄中有關於現代數學,記住q是個素數,所以這個模的逆元是可以直接計算的)。這也就意味著攻擊者,只要發現了任何簽名的k,就可以得到私鑰的值。

目前為止,本節中假設的是簽名者一直使用的同一個隨機數k。更糟的是,簽名者只要在攻擊者可以看到的簽名中,有兩個簽名復用k一次。如上,k重復了,r就會重復。而r是簽名的一部分,簽名者的這個錯誤非常容易被觀察到。這樣即便簽名者只是很罕見地重用了k(比方說隨機數生成器的問題),只一次,攻擊者就可以打破這個DSA系統。

簡而言之,在DSA簽名演算法中重用參數k就意味著攻擊者可以破解出私鑰。

TODO:

和一般的DSA相同,k的選擇是極為嚴格的。攻擊者可以使用幾千個簽名,這些簽名的nonce僅僅有一些位泄漏,攻擊者便可以破解出簽名的私鑰。

本章描述的簽名演算法有一個特點被稱為:不可抵賴性。簡單說,它意味著不可以否認自己就是簽名消息的發送者。任何人都可以驗證你用私鑰簽署的簽名。但是簽名只有你可以做。

這通常並不是一個有用的特性,只有少數接受者可以驗證簽名可能更加謹慎。這種演算法通常需要只有接受者才可以計算出這個特殊的值。

這些消息是可以拒絕的,例如一種通常被稱為「可以否認的消息認證」。一個發送者認證一條消息給接收者,發送者之後可以否認它發送了這條消息。接收者也無法向任何人證明發送者給他發送了特定的消息。

『柒』 DSA數字簽名演算法的證明中的步驟不解,請大家幫幫忙指導一下,謝謝!

因為p、q互素,因此v中的mod p不影響同餘關系,g、y也是不影響同餘關系的,
因此可以把u1和u2直接代入v中。

『捌』 數字簽名演算法的三個條件是什麼

數字簽名演算法至少應該滿足三個條件:

  1. 接收者能夠核實發送者對報文的簽名;

  2. 發送者事後不能抵賴對其報文的簽名;

  3. 接收者無法偽造對報文的簽名。

    數字簽名演算法是數字簽名標準的一個子集,表示了只用作數字簽名的一個特定的公鑰演算法。密鑰運行在由SHA-1產生的消息哈希:為了驗證一個簽名,要重新計算消息的哈希,使用公鑰解密簽名然後比較結果。縮寫為DSA。

    數字簽名是電子簽名的特殊形式。到目前為止,至少已經有 20 多個國家通過法律 認可電子簽名,其中包括歐盟和美國,我國的電子簽名法於 2004 年 8 月 28 日第十屆全 國人民代表大會常務委員會第十一次會議通過。數字簽名在 ISO 7498-2 標准中定義為: 「附加在數據單元上的一些數據,或是對數據單元所作的密碼變換,這種數據和變換允許數據單元的接收者用以確認數據單元來源和數據單元的完整性,並保護數據,防止被人(例如接收者)進行偽造」。數字簽名機制提供了一種鑒別方法,以解決偽造、抵賴、冒充和篡改等問題,利用數據加密技術、數據變換技術,使收發數據雙方能夠滿足兩個條件:接收方能夠鑒別發送方所宣稱的身份;發送方以後不能否認其發送過該數據這一 事實。

    數字簽名是密碼學理論中的一個重要分支。它的提出是為了對電子文檔進行簽名,以 替代傳統紙質文檔上的手寫簽名,因此它必須具備 5 個特性。

    (1)簽名是可信的。

    (2)簽名是不可偽造的。

    (3)簽名是不可重用的。

    (4)簽名的文件是不可改變的。

    (5)簽名是不可抵賴的。

    參考鏈接:數字簽名演算法_網路

    http://ke..com/view/11763940.htm

『玖』 數據在網路上傳輸為什麼要加密現在常用的數據加密演算法主要有哪些

數據傳輸加密技術的目的是對傳輸中的數據流加密,通常有線路加密與端—端加密兩種。線路加密側重在線路上而不考慮信源與信宿,是對保密信息通過各線路採用不同的加密密鑰提供安全保護。

端—端加密指信息由發送端自動加密,並且由TCP/IP進行數據包封裝,然後作為不可閱讀和不可識別的數據穿過互聯網,當這些信息到達目的地,將被自動重組、解密,而成為可讀的數據。

數據存儲加密技術的目的是防止在存儲環節上的數據失密,數據存儲加密技術可分為密文存儲和存取控制兩種。前者一般是通過加密演算法轉換、附加密碼、加密模塊等方法實現;後者則是對用戶資格、許可權加以審查和限制,防止非法用戶存取數據或合法用戶越權存取數據。

常見加密演算法

1、DES(Data Encryption Standard):對稱演算法,數據加密標准,速度較快,適用於加密大量數據的場合;

2、3DES(Triple DES):是基於DES的對稱演算法,對一塊數據用三個不同的密鑰進行三次加密,強度更高;

3、RC2和RC4:對稱演算法,用變長密鑰對大量數據進行加密,比 DES 快;

4、IDEA(International Data Encryption Algorithm)國際數據加密演算法,使用 128 位密鑰提供非常強的安全性;

5、RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的,非對稱演算法; 演算法如下:

首先, 找出三個數,p,q,r,其中 p,q 是兩個不相同的質數,r 是與 (p-1)(q-1) 互為質數的數。

p,q,r這三個數便是 private key。接著,找出 m,使得 rm == 1 mod (p-1)(q-1).....這個 m 一定存在,因為 r 與 (p-1)(q-1) 互質,用輾轉相除法就可以得到了。再來,計算 n = pq.......m,n 這兩個數便是 public key。

6、DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准),嚴格來說不算加密演算法;

7、AES(Advanced Encryption Standard):高級加密標准,對稱演算法,是下一代的加密演算法標准,速度快,安全級別高,在21世紀AES 標準的一個實現是 Rijndael 演算法。

8、BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快;

9、MD5:嚴格來說不算加密演算法,只能說是摘要演算法;

對MD5演算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。

(9)數字簽名dsa演算法擴展閱讀

數據加密標准

傳統加密方法有兩種,替換和置換。上面的例子採用的就是替換的方法:使用密鑰將明文中的每一個字元轉換為密文中的一個字元。而置換僅將明文的字元按不同的順序重新排列。單獨使用這兩種方法的任意一種都是不夠安全的,但是將這兩種方法結合起來就能提供相當高的安全程度。

數據加密標准(Data Encryption Standard,簡稱DES)就採用了這種結合演算法,它由IBM制定,並在1977年成為美國官方加密標准。

DES的工作原理為:將明文分割成許多64位大小的塊,每個塊用64位密鑰進行加密,實際上,密鑰由56位數據位和8位奇偶校驗位組成,因此只有56個可能的密碼而不是64個。

每塊先用初始置換方法進行加密,再連續進行16次復雜的替換,最後再對其施用初始置換的逆。第i步的替換並不是直接利用原始的密鑰K,而是由K與i計算出的密鑰Ki。

DES具有這樣的特性,其解密演算法與加密演算法相同,除了密鑰Ki的施加順序相反以外。

參考資料來源:網路-加密演算法

參考資料來源:網路-數據加密

『拾』 密碼加密的演算法有哪些

主要分為 對稱加密演算法 和 非對稱加密演算法兩類

對稱加密演算法:使用單個密鑰對數據進行加密或解密,其特點是計算量小,加密效率高.
代表 DES 演算法

非對稱加密演算法:此演算法均有兩個密鑰(公用密鑰和私有密鑰),只有二者搭配使用才能完成加密和解密的全過程.
代表 DSA演算法, 數字簽名演算法(DSA) , MD5演算法 , 安全散列演算法(SHA)

熱點內容
無線網檢查網路配置是怎麼回事 發布:2025-05-16 14:04:03 瀏覽:219
網路爬蟲python代碼 發布:2025-05-16 14:03:26 瀏覽:516
汽車小組件怎麼弄到安卓桌面 發布:2025-05-16 13:51:12 瀏覽:219
linuxg編譯器下載 發布:2025-05-16 13:50:58 瀏覽:776
centosc編譯器 發布:2025-05-16 13:50:17 瀏覽:948
安卓手機如何變換桌面 發布:2025-05-16 13:39:33 瀏覽:514
sql存儲過程命令 發布:2025-05-16 13:17:54 瀏覽:145
用紙做解壓小玩具西瓜 發布:2025-05-16 13:04:09 瀏覽:935
區域網xp無法訪問win7 發布:2025-05-16 13:03:58 瀏覽:942
油卡如何修改密碼 發布:2025-05-16 13:00:35 瀏覽:901