數字籤名的工作原理

2020-09-24 沃通WoTrus

上期我們了解了數字籤名的三個等級類型以及數字籤名在商業、教育、醫療和政府等眾多領域的應用,所以這期我們要接著深入了解,數字證書的技術原理。


數字籤名是公鑰基礎結構的基礎部分。當我們說PKI時,一般想到的是數字證書,證書頒發機構(CA),銀行使用的Key,以及SSL通信等等。

數字證書,一般都是成對存在的,包含證書的公鑰,和證書對應的私鑰,公鑰本身有一定的身份標識功能(如ssl證書中的域名信息,郵件客戶端證書的郵箱地址等),對於數字證書的應用比較廣泛,但其基本原理簡單來說就是公鑰用來加密,私鑰用來解密。私鑰用來籤名,公鑰用來驗證籤名。

那麼,在我們了解數字籤名的技術原理之前,我們先要明白一個和數字籤名密切相關的算法:Hash算法。

hash算法是一種散列(密碼雜湊)算法。簡單來說這個算法有幾個很顯著的特性:

1. 易壓縮性,可以很容易的將任何長度的數據映射到固定長度的輸出。

2. 單向性,它是一種單向密碼體制,根據源數據計算一個哈希值很容易,但是要根據計算出的結果得出源數據是不可能的。

3. 高靈敏性,就是對於輸入數據的變化非常靈敏,即使很小的變化都會輸出差異性很大的結果。

4. 抗碰撞性,對於不同的數據塊,其hash值相同的可能性極小;對於一個指定的數據塊,找到和它hash值相同的數據塊極為困難。

由於具有這些特性,所以它非常適合用來做數據完整性和文件完整性的校驗。目前應用較為廣泛的哈希算法主要有sha1,sha256,sha384等,而我們國密與之相對應的是SM3算法,其安全性也是遞增的。幾年前Google就對SHA-1碰撞實驗,就是為了驗證其安全性。現在隨著科技的飛速的發展和計算能力的提升,sha1也即將要退出歷史舞臺。


工作原理:創建數字籤名

現在,讓我們逐步了解一下數字籤名的過程:

1、將要籤名的文件進行hash計算。

2、用私鑰將文件的hash值進行籤名。

3、除了籤名外,還可以添加時間戳以指示籤名時間。

這個就是數字籤名的主要過程,總的來說就是先對文檔進行哈希處理,然後籤名者用自己的私鑰對文件生成的哈希值進行籤名,使用時將原文件和籤名數據一起發送。

值得注意的是,數字籤名並沒有對整個文件進行籤名,而是對文件的hash值進行了籤名。這樣的不僅節約了資源而且提高了效率。

好的,接下來我們討論一下如何讀取和認證籤名。


工作原理:驗證數字籤名

我們已經知道了創建數字籤名的過程,隨著要來進行數字籤名驗證。主要過程有以下步驟:

1、將原文件進行hash計算得到hash值。

2、將籤名的公鑰從籤名數據中計算出籤名數據中的hash值。

3、將步驟1中得到的hash值和步驟2得到的hash值進行對比,如果對比結果一致則驗證通過,反之驗證失敗。



為什麼我們要對所有內容進行數字籤名?(數字籤名的優勢)

  • 防偽造:數字籤名中的私鑰具有唯一性,除籤名者之外都不能偽造籤名,並防止被假冒。
  • 完整性:由於數字籤名中包含hash算法,對籤名文檔的任何未經授權的修改將立即被顯見。
  • 身份標識:證書頒發機構可以對證書的持有者的身份進行識別和驗證,可信的CA機構籤發的證書可以用於做身份標識。
  • 時間戳:知道文檔籤署的時間是非常重要的,數字籤名可以蓋上指示創建籤名時間的時間戳。
  • 防抵賴:數字籤名不僅可以成為身份識別的依據,同時它也是籤名者進行籤名操作的有效證據,防止籤名方對其產生的行為進行抵賴。

除了要點之外,數字籤名的應用會越來越廣泛,如今連電子發票和電子合同都加入了數字籤名的應用行列,所以它的重要性可以預見。


本文技術文案指導:探花郎

高級軟體工程師,從事PKI相關技術研發工作多年,熟悉Linux網絡編程,擅長C/C++語言。現任職沃通CA,負責國密ssl相關庫的開發工作。


本文為沃通原創,轉載請註明。

相關焦點

  • 一文看懂數字籤名的概念及其原理
    小編:記得關注哦來源:能鏈科技原文標題:科普 | 數字籤名的概念及其原理在數字時代中,數位化文檔的認證性、完整性和不可否認性,是實現信息化安全的基本要求。數字籤名則是滿足上述要求的主要方式之一,亦是現代密碼學的研究內容之一。數字籤名有哪些形式?基於密碼學的數字籤名優勢幾何?有哪些常用的數字籤名實現方案?
  • 數字籤名設計的原理和過程
    數字籤名的文件的完整性是很容易驗證的(不需要騎縫章,騎縫籤名,也不需要筆跡專家),而且數字籤名具有不可抵賴性(不需要筆跡專家來驗證)。以下就是時間財富網為您推薦的數字籤名設計的原理和過程。簡單地說,所謂數字籤名就是附加在數據單元上的一些數據,或是對數據單元所作的密碼變換。
  • 數字籤名的原理是什麼?這篇文章給你答案(java代碼實現)
    數字籤名在數據的交互中一直都佔據著很重要的地位,因此,這篇文章對其原理進行整理總結一下。最後再給出代碼的實現。一、簡單認識相信我們都寫過信,在寫信的時候落款處總是要留下自己的名字,用來表示寫信的人是誰。我們籤的這個字就是生活中的籤名:而數字籤名呢?
  • 區塊鏈數字籤名技術的過程及原理介紹
    隨著網際網路的發展,網絡交易普及,在交易過程中經常會碰到數字籤名這個概念,當然區塊鏈中也通過數字籤名來驗證交易信息的可靠性,這裡簡單介紹下數字籤名的概念,如有理解不當的地方,請及時指正。 籤名:在現實社會中,籤名作為籤名者身份的一種證明,籤名代表對籤名文件的認可,不可抵賴。理論上簽名是可信、不可偽造的。
  • 數字籤名技術概覽
    引用本文:程朝輝.數字籤名技術概覽[J].信息安全與通信保密,2020(7):48-62.摘 要本文對數字籤名技術進行概覽綜述,以便讀者對該技術有一個比較全面的了解。文章首先介紹數字籤名技術的基本原理,然後回顧數字籤名技術四十年發展的歷程以及期間發生的一些具有標誌性的事件。
  • 數字籤名是如何在數字貨幣交易中工作的
    電子籤名 隨著技術的發展,電子籤名出現了。它們有時也被稱為合成溼信號。電子籤名是由應用程式或服務生成的,這些應用程式或服務將物理溼籤名轉換為圖片或PDF文件,然後將圖片或PDF文件附加到數字文檔以證明身份。 此類服務的例子包括HelloSign或Pandadoc。這些服務要求用戶上傳他們的溼籤名照片,然後應用程式將其數位化。
  • 數字籤名與電子籤名
    數字籤名就是其中之一。隨著越來越多的人希望以數字方式執行文檔,此類行為的跨境合法性可能成為障礙。儘管現在大多數工業化國家都承認並接受數字籤名具有法律約束力,但從一個案件到另一個案件可能會有一些規定。幸運的是,無論在何處執行合同,您都可以採取一些幾乎被普遍接受的原則和步驟來確保您的數字籤名可以接受。
  • iOS應用籤名原理以及重籤名
    一、iOS應用籤名原理及過程 >籤名的過程如上圖,接下來我們來簡單看下描述文件,打開目錄: 隨便選擇一個證書,用命令查看: 找到 : 這個 就是權限配置,App重籤名會用到。
  • 數字貨幣、錢包還是籤名?
    數字籤名有許多不同的技術可用於生成和驗證數字籤名,支持您工作的數學原理超出了本文的範圍。對於那些不熟悉密碼學的人來說,這裡描述的過程最初可能看起來令人難以置信。現在我將簡要地提及這些技術用於許多常見的Internet協議,並且是信息科學不可或缺的一部分。
  • 非對稱加密的逆應用——數字籤名
    為了更好地結合數字籤名的使用流程說明問題,這裡也不能免俗的杜撰一個如下虛擬場景:IT好青年小明向他的女神小麗寫了封電子情書,出於表白真心並炫耀技術的目的,小明要在情書上附加一個數字籤名。首先,小明計算出情書的數字摘要值,然後用他的私鑰加密這個摘要值,得到了一個加密結果,而這個加密結果,就是數字籤名。
  • 數字萬用表工作原理
    數字萬用表是高精度儀器。數字萬用表的雙積分ADC是讓萬用表達到高精度的關鍵器件。圖1是雙積分ADC的工作原理。
  • 數字籤名是什麼?
    "數字籤名"(digital signature)和"數字證書"(digital certificate)到底是什麼。下面用圖加文字的方式描述1、加密方法可以分為兩大類。
  • 蘋果ios企業籤名原理及機制介紹
    蘋果ios企業籤名作為一種數字籤名,主要的功效就是用來驗證信息的真偽性,而蘋果ios企業籤名又比較特殊,要經過雙重驗證才能正常使用。想必很多開發者都不是特別理解,那麼我們今天就來介紹一下,蘋果ios企業籤名原理及機制。
  • 數字證書籤名,Lets Encrypt和數字證書安全
    現在安全體系中,最重要的一部分是數字安全加密體系,包括數字內容的加密解密,數字籤名和驗證。本文蟲蟲給大家介紹一下數字證書籤名以及世界最大的網站Https免費籤名Let's Encrypts,及數字證書籤名的安全性等問題。
  • 數字籤名技術概覽(轉載)
    ——————————————————————————————————01數字籤名原理人類在很長時間都是以手寫籤名、印章或指模等來確認作品、文件等的真實性,包括認定作品的創作者、文件籤署者的身份,推定作品的真偽或者文件內容的真實性。數字籤名技術用於在數字社會中實現類似於手寫籤名或者印章的功能,即實現對數字文檔進行籤名。
  • 「數字世界」基本的工作原理
    導讀:重磅系列文章《數字孿生——一半是火焰,一半是海水》第三篇之「數字世界」基本的工作原理。首先回顧並評述了數據孿生概念的起源,其次回顧並評述了各大工業軟體巨頭是如何定義和使用數字孿生的,之後從「數字世界」基本的工作原理角度重新審視了數字孿生,在前述工作的基礎上給出了個人關於數字孿生的觀點,並對想進入該領域的後來者給出了本人的忠告。本系列文章的寫作,得到了e-works數位化企業網總編黃培博士的鼓勵,並給出了寶貴的意見,在此表示衷心的感謝!。
  • 解析TF籤名實現原理,TF籤名這三大優勢你可知
    近期時間的企業籤名歷經幾度浮沉,頻繁的掉籤已廣受開發者和運營商詬病。大家紛紛把目光投向TF籤名(TestFlight上架),它是蘋果公司認可的一種應用內測分發渠道,成功上架到TestFlight應用商店後,穩定性和性價比甚至超越超級籤名。那麼TF籤名是如何實現的?TF籤名的原理是什麼?TF籤名的三大優勢你都知道多少呢?
  • 數字電晶體的工作原理及作用
    打開APP 數字電晶體的工作原理及作用 合晶芯城 發表於 2020-02-14 12:43:46 與普通電晶體相比,數字電晶體的輸入-輸出呈線性關係,而且工作狀況穩定。   數字電晶體的工作原理   數字電晶體的工作原理與與普通電晶體一樣,如圖1。在這個電路中,在NPN電晶體的基極(B)-發射極(E)之間輸入一個正向電壓,注入基極電流。就是說,在基極(B)領域注入+空穴。
  • 數字證書籤名、Lets Encrypt和證書劫持
    現在安全體系中,最重要的一部分是數字安全加密體系,包括數字內容的加密解密,數字籤名和驗證。本文蟲蟲給大家介紹一下數字證書籤名以及世界最大的網站Https免費籤名Let's Encrypts,及數字證書籤名的安全性等問題。
  • 數字籤名與數字證書
    在介紹數字籤名和數字證書前,先簡單了解兩個算法:Hash算法和RSA算法。Hash算法:Hash算法是將可變長度的數據塊M作為輸入,產生固定長度的Hash值(或者叫做摘要)。可以將Hash算法看作一個非常複雜的CRC算法,例如CRC32。CRC32可以對任意長度的數據塊計算出長度為4個字節CRC值。