簡體   English   中英

如何使用特定密鑰設置.net RSA?

[英]How to set up .net RSA with a specific key?

據我了解,RSA是為整個公鑰/私鑰創建的,但是如果我不需要在線建立密鑰怎么辦?

鮑勃和愛麗絲在一家酒吧見面,並商定了一個1024位數字。 除了在加密從一個發送到另一個的消息時,永遠不要在任何地方重復此號碼。

是否可以使用.net內置的RSA加密工具來簡化這種情況? 我以為它會像這樣下去

Dim encryptor as new something(ByteArrayContainingTheKey)
Dim EncryptedBytes() as byte = encryptor.encrypt(NotEncryptedBytes)

而另一端的另一種方式,簡單嗎? 但是,.net中有關RSA的所有材料都集中在私鑰/公鑰上,我不知道如何將其操縱到更簡單的狀態。

您所談論的是對稱加密,其中僅使用一個秘密密鑰,而該密鑰必須同時存在於兩個(或多個)參與方中。 另請參見非對稱和對稱加密方法之間的區別?

該問題提供了代碼,但不建議使用ECB模式。 您應該使用某些身份驗證模式,例如GCM或CCM。 在我看來, API沒有提供它 ,因此CBC模式應與消息身份驗證代碼一起使用。 AES密鑰可以為128、192或256位寬,可能超出了您的需要。

您當然可以使用RSA實現類似的功能,這可能會給您帶來更大的靈活性。 雙方都生成兩個私鑰/公鑰對(一個用於加密,一個用於簽名)。 雙方會面並交換其公共密鑰或兩個密鑰對,以便驗證密鑰。 現在,您可以直接為對方加密某些東西,或者可以某種方式建立臨時對稱密鑰並使用混合加密 ,也可以通過使用Diffie-Hellman密鑰交換來建立臨時對稱密鑰,並使用為該消息顯式生成的密鑰對消息進行簽名。簽名。 Diffie-Hellman密鑰交換可以明確進行,但必須經過驗證/真實。 當然,兩者的組合是可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM