2017-03-01 13 views
0

我是一名學生,我想通過使用c#實現基於身份的加密。基於身份加密(IBE)的C#實現

例子:我想通過使用接收器的電子郵件地址(公鑰)和發件人將這個消息發送到接收加密郵件。一旦接收者接收到這個加密的消息,他將使用他的私鑰對這個消息進行解密。

這在理論上看起來不錯,但我正在努力做到這一點實際。

我不知道

  1. 如何使用接收器的電子郵件地址
  2. 接收器將如何詆譭-PT加密郵件加密郵件?
  3. 接收者將如何獲得他的私鑰?

我期待這個平臺的幫助,因爲我已經花了很多時間來搜索這個。

我曾嘗試:

我試圖加密和解密使用RSA算法,但這裏的問題是RSA生成自己的公共和私有密鑰對。而且我不能使用收件人電子郵件地址作爲公鑰來加密郵件。

預先感謝您。 阿肖克

+0

密鑰可以通過協議進行交換,如Diffie-Hellman密鑰交換,但會引起雙方認證問題。或者他們可以通過郵件等其他渠道進行交換。還有PKI(公鑰基礎結構)。 – zaph

+0

@zaph感謝您的回覆。是的,我們可以做到這一點。我很熟悉密鑰交換。但我的主要目標是從電子郵件地址生成密鑰..是否有可能? – Ashok

+0

我還沒有看到基於配對的加密或甚至基於身份的加密的C#實現。你需要自己實現它。它不是那麼容易。也許你可以在[PBC](https://crypto.stanford.edu/pbc/)上寫一個封裝。無論哪種方式,您的問題都無法用簡短而明智的代碼來回答。 –

回答

1

您可以生成一個電子郵件地址的安全對稱密鑰,任何字符串對於這個問題,有一個密鑰導出函數,如PBKDF2(又名Rfc2898DeriveBytes)。

RSA是非對稱加密與用於加密和解密單獨的鍵,對稱加密諸如AES同時用於加密和解密一個密鑰。

諸如RSA之類的非對稱加密具有兩個密鑰的優點,其中加密密鑰可以是公知的。但它非常慢,數據量大,密鑰很大(2048位是當前安全大小),數據長度僅限於密鑰大小,通常用於加密對稱密鑰。除了長度以外,不能控制對稱密鑰對的創建。僅在必須使用公鑰/私鑰對時才使用非對稱加密。

非對稱加密諸如AES是快速的,具有128位共用和安全較小鍵和能夠處理基本上任何長度的數據。

+0

感謝您的回覆...兩個不同的鑰匙公共和私人都必須爲我....我需要使用非對稱算法......正如你所提到的,RSA使用了兩個密鑰,但是我的基本問題是它會生成自己的公鑰和私鑰。而不是我想用我自己的公鑰如Email ID和它的公鑰各自產生的私人密鑰..任何私人密鑰被接受.. – Ashok

+0

基本上我想要的是使用收件人電子郵件ID加密一個文本和接收器將使用他自己的私人密鑰對此文本進行解密....私人密鑰可以是什麼......我沒有私鑰問題... – Ashok

+0

爲什麼需要兩個密鑰?爲什麼不使用相同的密鑰進行加密和解密。公鑰/私鑰對的工作方式不允許任何公鑰的選擇。 – zaph

相關問題