資料加密方案

2021-10-25 04:37:58 字數 1928 閱讀 8208

資料加密又稱密碼學,它是一門歷史悠久的技術,指通過加密演算法和加密金鑰將明文轉變為密文,而解密則是通過解密演算法和解密金鑰將密文恢復為明文。資料加密目前仍是計算機系統對資訊進行保護的一種最可靠的辦法。它利用密碼技術對資訊進行加密,實現資訊隱蔽,從而起到保護資訊的安全的作用。

資料加密技術要求只有在指定的使用者或網路下,才能解除密碼而獲得原來的資料,這就需要給資料傳送方和接受方以一些特殊的資訊用於加解密,這就是所謂的金鑰。其金鑰的值是從大量的隨機數中選取的。按加密演算法分為對稱金鑰和非對稱金鑰兩種。

1.2.1 對稱金鑰
加密和解密時使用同乙個金鑰,即同乙個演算法。如des和mit的kerberos演算法。單金鑰是最簡單方式,通訊雙方必須交換彼此金鑰,當需給對方發資訊時,用自己的加密金鑰進行加密,而在接收方收到資料後,用對方所給的金鑰進行解密。當乙個文字要加密傳送時,該文字用金鑰加密構成密文,密文在通道上傳送,收到密文後用同乙個金鑰將密文解出來,形成普通文體供閱讀。在對稱金鑰中,金鑰的管理極為重要,一旦金鑰丟失,密文將無密可保。這種方式在與多方通訊時因為需要儲存很多金鑰而變得很複雜,而且金鑰本身的安全就是乙個問題。常用的演算法有:des、3des、tdea、blowfish、rc2、rc4、rc5、idea、skipjack等。

1.2.2 非對稱金鑰
非對稱金鑰由於兩個金鑰(加密金鑰和解密金鑰)各不相同,因而可以將乙個金鑰公開,而將另乙個金鑰保密,同樣可以起到加密的作用。在這種編碼過程中,乙個密碼用來加密訊息,而另乙個密碼用來解密訊息。在兩個金鑰中有一種關係,通常是數學關係。公鑰和私鑰都是一組十分長的、數字上相關的素數(是另乙個大數字的因數)。有乙個金鑰不足以翻譯出訊息,因為用乙個金鑰加密的訊息只能用另乙個金鑰才能解密。每個使用者可以得到唯一的一對金鑰,乙個是公開的,另乙個是保密的。公共金鑰儲存在公共區域,可在使用者中傳遞,甚至可印在報紙上面。而私鑰必須存放在安全保密的地方。任何人都可以有你的公鑰,但是只有你乙個人能有你的私鑰。它的工作過程是:「你要我聽你的嗎?除非你用我的公鑰加密該訊息,我就可以聽你的,因為我知道沒有別人在偷聽。只有我的私鑰(其他人沒有)才能解密該訊息,所以我知道沒有人能讀到這個訊息。我不必擔心大家都有我的公鑰,因為它不能用來解密該訊息」。 常用的演算法有: rsa、dsa、ecdsa等。

公開金鑰的加密機制雖提供了良好的保密性,但難以鑑別傳送者,即任何得到公開金鑰的人都可以生成和傳送報文。數字簽名機制提供了一種鑑別方法,以解決偽造、抵賴、冒充和篡改等問題。 數字簽名一般採用非對稱加密技術(如rsa),通過對整個明文進行某種變換,得到乙個值,作為核實簽名。接收者使用傳送者的公開金鑰對簽名進行解密運算,如其結果為明文,則簽名有效,證明對方的身份是真實的。當然,簽名也可以採用多種方式,例如,將簽名附在明文之後。數字簽名普遍用於銀行、電子**等。

數字簽名不同於手寫簽字:數字簽名隨文字的變化而變化,手寫簽字反映某個人個性特徵,是不變的;數字簽名與文字資訊是不可分割的,而手寫簽字是附加在文字之後的,與文字資訊是分離的。

值得注意的是,能否切實有效地發揮加密機制的作用,關鍵的問題在於金鑰的管理,包括金鑰的生存、分發、安裝、保管、使用以及作廢全過程。

對稱加密演算法

非對稱加密演算法

客戶端使用rsa + aes對重要資訊進行加密。客戶端加密過程主要分為以下三個步驟:

這樣在傳輸的過程中,即時加密後的aes金鑰被別人擷取,對其也無濟於事,因為他並不知道rsa的私鑰,無法解密得到原本的aes金鑰,就無法解密用aes加密後的重要資訊。

服務端使用rsa + aes對重要資訊進行解密。服務端解密過程主要分為以下兩個步驟:

檔案加密方案

使用者輸入密碼,軟體驗證密碼是否正確。傳統的對稱加密演算法,給出密文,隨意給出乙個金鑰,使之來解密。演算法都是可以繼續的,即使解密出來的資訊是亂的。如何驗證使用者的密碼是否正確?最差的解決方案 把使用者的檔案先加密,然後將使用者的密碼儲存到檔案末尾。解密時,驗證使用者輸入的金鑰是否和檔案末尾相同,如...

Paillier加密方案

carmichael函式 n in z forall a in z n 若能滿足 a x equiv 1 mod n 的最小x,記為 n 稱為carmichael函式 定理 n in z 設 n n 1 n 2 且 n 1,n 2 1,則 n n 1 n 2 證明.forall a in z n a...

CKKS加密方案

本文內容來自 protecting privacy throughhomomorphic encryption 主要學習裡面的ckks部分。ckks是一種同態加密方案,其安全性依賴於rlwe問題。明文是實數向量,表示為定點型別計算方式 實數表示方法 浮點計算和定點計算 該方案很支援以simd方式在這...