密碼學中的數字簽名演算法 (DSA)
隱私和保密的需求適用於每個組織和個人在個人和公務方面的事務。只有在保持機密性的情況下,計劃和方案才能取得成功。在數字世界中,每天交換數百萬條資訊,也需要遵守隱私。例如,處理銀行和電子商務的敏感網站需要更高的保密性。欺詐和偽造、駭客攻擊和勒索要求變得非常普遍。公司如何防範此類危險?“秘密”和“書寫”是“加密”和“圖形”這兩個術語的字面含義。
為什麼密碼學是一種智慧解決方案
就像使用程式碼的交通訊號一樣,密碼學隱藏普通文字並使用特定的語言。因此,只有訊息的目標接收者才能閱讀和理解它。這種密碼學在多種方面有所幫助。文字無法被竊取或更改。此外,實現了使用者確認。密碼學不再僅僅代表加密。數學和計算機語言構成了密碼學的基礎。
密碼學的基礎
數學原理與特定的計算演算法一起使用,將訊息轉換為難以理解的程式碼。由此產生的數字金鑰和簽名有助於在接收端驗證訊息的真實性。它們防止在傳輸和接收之間進行篡改和偽造。信用卡和簽帳金融卡需要非常強大的驗證,因為涉及金錢。如果沒有每一步都有效的數字簽名,資料隱私和網路瀏覽將被削弱。將純文字轉換為程式碼的過程稱為加密。將密碼或編碼文字轉換回普通文字的過程稱為解密。
數字簽名的作用
重要的官方檔案、資料和信件需要此類數字簽名,以防止任何人竊取它們或更改內容。需要加密,並且使用私鑰進行加密。接收者透過公鑰進行解密。這兩個金鑰相關聯,因此使用公鑰解碼可以確認用於簽名的私鑰。因此,確認了源的有效性。
RSA 演算法(Rivest-Shamir-Adleman)
與 DSA 相比,RSA 是公鑰密碼系統,並使用公鑰技術。它使用精確連線的私鑰和公鑰。訊息使用私鑰簽名,資料被加密。傳送方擁有私鑰。公鑰和私鑰在數學上相關聯,傳送方的公鑰是解密訊息的唯一方法。私鑰需要高度保密,但任何希望驗證傳送方的人都可以使用公鑰。公鑰和私鑰一起驗證數字簽名。
瞭解數字簽名演算法 (DSA)
DSA 演算法或系統保證了三個關鍵優勢。可以使用金鑰驗證傳送方。內容無法被幹擾,因為訊息無法被解密。此外,傳送方無法拒絕訊息,因為簽名確認了傳送方。認識到其重要性,國家標準與技術研究院 (NIST) 在 1991 年提出後,於 1994 年在全球範圍內將其標準化。DSA 成為聯邦資訊處理標準 (FIPS) 或數字簽名的標誌。
DSA 的主要優勢
DSA 穩健、執行速度快、免受專利限制,並且需要的儲存空間很少。與某些其他簽名驗證演算法相比,DSA 相對優越。金鑰生成速度很快。DSA 迴圈所需的儲存空間最少。“免專利”表示它在全球範圍內不收取任何費用,因此每個人都能夠使用。
DSA 如何工作?
存在許多不同的資料傳輸演算法,大多數演算法使用傳送方的私鑰。這可能被稱為數字指紋,但簽名的是訊息摘要,而不是資料本身。簽名很小。DSA 執行良好。DSA 需要一對數字來構成數字簽名。這些數字來自特定的演算法。接收者可以確認訊息有效。
DSA 從傳送方的私有開始,在接收方的終端公開。傳送方在訊息上簽名,但任何人都可以接收它。DSA 透過複雜的過程生成兩個數字簽名。DSA 建立簽名,但不加密資料。匯入和匯出過程與 DSA 無關,但適用於 RSA。
DSA 過程
DSA 不會使用私鑰加密資料。DSA 使用公鑰解密資料。DSA 使用兩個 160 位數字,使用數學原理建立這兩個數字。私鑰與訊息摘要一起使用。這是一個使用公鑰進行驗證的複雜過程。兩個金鑰都確保資料更穩定。訊息摘要使用雜湊函式建立。
訊息摘要與 DSA 演算法一起建立數字簽名。簽名隨訊息一起傳送。接收者使用相同的雜湊函式進行身份驗證。
DSA 步驟回顧
使用金鑰生成演算法,金鑰用於對訊息進行簽名。
數字簽名演算法提供簽名。
雜湊用於建立訊息摘要。
結合 DSA 和訊息摘要生成數字簽名。
數字簽名隨傳輸的訊息一起傳送。
驗證演算法有助於確認有效性,並使用相同的雜湊函式。
DSA 的缺點
美國國家標準遵循適用於私有和非私有訊息的 DSA,但除了主要優勢之外,還存在一些弱點。SHA 代表安全雜湊演算法,共有六種型別。它們負責將訊息的可變長度修剪為固定引數。在 DSA 中,資料不會被加密,而只能被確認有效。驗證遵循複雜的過程,需要大量時間。
結論
醫療保健和教育、旅遊和運輸等全球行業迫切需要線上安全才能安全有效地執行。隨著 21 世紀的大部分世界轉向線上,尤其是在新冠疫情期間,保證網路安全是一個巨大的問題。
儘管有數字簽名和數字安全演算法,但欺詐者和駭客仍然能夠得逞,而且此類案例每年都在增加。如果所有安全措施都以熱情和奉獻精神來應用,工作和業務中斷的可能性就會降低。研究正在如火如荼地進行,很快就會找到更安全的方法來更好地保護寶貴資料。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP