2008-12-31 144 views
2

首先,我想問問您是否有人知道使用密鑰加密數據的加密算法,但沒有解密數據的密鑰。這似乎不太可能,如果不是不可能的話,那麼對不起,如果這是一個愚蠢的問題。識別加密算法

我的最後一個問題是,假設您在加密之前可以訪問純文本數據,用於加密純文本數據的密鑰以及生成的加密數據將計算出用於加密數據的算法可行?

+1

爲什麼用密鑰進行加密如果有人可以解密它?你不能只是發送明文,然後呢?如果你只是想打亂你的數據,使用ROT13 ... – 2008-12-31 16:42:44

回答

0

我不相信有這樣的算法,會使用密鑰進行加密,但不解密。 (傻的答案就像一個26字符Caesar cipher一邊...)

你的第二個問題,是的;這取決於你願意花多少時間在它上面。在理論密碼學中,假定算法總是可以確定的。無論是通過盜竊算法還是物理機器,或者在您的情況下使用純文本和密文對。

8

首先,我想問一下 如果你們知道,使用一個密鑰來加密 數據的加密算法 的,但沒有密鑰解密 數據。

不。有一些算法使用不同的密鑰進行解密而不是加密,但無鑰匙方法依賴於算法的保密性,通常被認爲是一個糟糕的想法。

我的最後一個問題是,說你有 之前 訪問純文本數據是加密的,用於 加密的明文數據的密鑰,並且 產生的加密數據,將 搞清楚哪些算法用於對數據加密 是否可行?

最有可能的是,尤其是考慮的關鍵。一個好的加密算法依賴於密鑰的保密性和密鑰本身。請參閱kerckhoff's principle

此外,如果使用常見的算法,它將是一個簡單的嘗試和錯誤的問題,除了cryptotext通常伴隨着元數據告訴你算法的細節。

編輯:根據意見,你可能會想的digital signature(僅需要在發送側的祕密),一個hash algorithm(它不需要密鑰,但不加密),或zero-knowledge proof(能證明知識的祕密而不透露它)。

1

首先,我想問你們是否有人知道使用密鑰加密數據的加密算法,但沒有解密數據的密鑰。

你想說什麼的?提出一對符合規範要求的函數是微不足道的,但如果不知道意圖,很難提供更有用的答案。

說,你有機會獲得明文數據被加密之前,使用純文本加密數據的密鑰,並將得到的加密數據,會搞清楚哪些算法用於加密數據是可行的?

如果算法是好的輸出將無法區分隨機噪聲,所以沒有分析解決方案。實際上,廣泛使用的只有很多可信算法。反過來嘗試每一個都會很快,但是會因爲一個實現在字節順序(小端到大端),密鑰派生(如果你有一個密碼短語實際的加密密鑰本身),加密模式和填充。

正如frankodwyer指出的那樣,這種情況不屬於常見的威脅模型。這對你有利,因爲它使算法更有可能是一個衆所周知的算法。

5

抽象地,我們可以認爲加密系統是這樣的:

   ------------------- 
plaintext ---> | algorithm & key | ---> ciphertext 
       ------------------- 

系統必須保證以下幾點:

解密加密(明文,算法,密鑰),算法,密鑰)=明文

首先,我想問一下 如果你們知道,使用一個密鑰來加密 數據的加密算法 的,但沒有密鑰解密 數據。

是的,在這樣的系統中,密鑰是多餘的;所有「祕密」在於算法。

我的最後一個問題 的,說你有機會獲得純 文本數據被加密之前,使用純文本加密 數據,並將得到的加密 數據 鍵,會搞清楚哪些 用於加密數據的算法是 可行嗎?

實際上,您可能只有一小部分算法空間,所以簡單的蠻力搜索是可行的。但是,可能有多個算法符合給定的信息。請看下面的例子:

我們定義了下面加密和解密操作,其中明文,密文,算法和密鑰是實數(假定算法是非零):

加密(明文算法,鍵)=算法X(明文+鍵)=密文

解密(密文,算法,密鑰)=密文/算法 - 鍵=明文

現在,假設明文+密鑰= 0。對於算法的任何選擇,我們都有密文= 0。因此,我們不能推斷使用的算法。

1

如果沒有解碼器中已知的密鑰,最好的解決方法是添加一些默默無聞的密碼。例如,如果解碼算法的第一步是除去每十個字符以外的所有內容,那麼您的編碼密鑰可用於爲每十個字符中的九個生成一些隨機垃圾。因此,對於不同的密鑰,您可以實現不同的編碼結果,這些編碼結果將被解碼爲相同的消息,而解碼器不需要密鑰。

但是,這並沒有增加太多真正的安全性,不應該僅僅依靠保護關鍵數據。我只是在想,如果你只是試圖證明一個觀點或者增加一個安全級別,那麼我可能會這樣做。