對一堆檔案中的每乙個檔案單獨加密,如果已知其中一些檔案的明文和密文,是否會導致能推斷出金鑰?

時間 2021-05-14 10:07:52

1樓:邏輯

這個要看情況。

如果是傳統的移位密碼等,可以推導出來。

如果是現代對稱加密,可以降低破解難度。

如果是如RSA這種非對稱加密,目前還不行。

2樓:黔耶c

秘鑰有限長的情況下,隨著已知密文對應明文的數目增多,破解機率會越來越大

如果是一次一密,那跟m數量無關,破解的難度不會隨著m的值變化而變化

3樓:

題主是不是想問存在一些明文,如果能收集到大量(明文-------密文)對映,還是很有可能破解出內容來的。

CBC就防止了ECB出現的問題,具體做法就是將加密後的輸出混入到下乙個輸入塊,即明文加密前首先和當前加密結果進行異或:

在內容有稍許偏差的時候,CBC模式相當於每乙個塊都使用了變換過的明文進行加密,保證了不會出現ECB的問題。所以IV並沒有什麼用處。。。胡亂填乙個只會影響第乙個塊解密。

下面就是非對稱密碼了(比較牽強。。。不看也罷),不需要大量檔案,兩個就夠了。

首先是RSA

RSA的工作原理非常簡潔精彩,加密解密過程就是同乙個操作:

原理就是由於即d和e互為模逆

現在存在一種情況,Alice和Bob對同乙個訊息P使用不同且互質的e進行加密分別得到了和,千不該萬不該他們共享同一對pq,導致N相同。那麼存在一對xy使得,使用擴充套件歐幾里得輾轉相除便可以算出x和y。

現在將兩個密文進行一些運算:

恢復出明文P。

然後是ECC

直接無恥傳送門:為什麼當年XBOX 360被破解了而PS3沒有?

如果加密檔案金鑰是通過KDF(公鑰,輸入檔案長度)產生的,那麼破解難度取決於KDF,但是兩個同樣大小的檔案,共用了金鑰,便可以隨意破解。

ref:

how to use common modulus attack?

Elliptic Curve Digital Signature Algorithm

4樓:

首先,加密技術可大致分為對稱加密不對稱加密兩種。這兩種加密方式的破解思路是完全不同的。

對稱加密就是在密匙和演算法確定的情況下,原文和密文的一一對應。就是所謂的「天對地,雨對風。大陸對長空」。

因此即使你不知道密匙也不了解演算法的細節,你也能利用大量的密文與原文的對應關係,反推出金鑰和演算法的部分或者全部細節。以此用來解密其他利用該演算法和金鑰加密後的密文。舉個例子,詞頻的利用,基本可以讓任何乙個字母替代類的加密演算法形同虛設。

加密和沒加密幾乎沒任何區別。

對稱加密演算法中,你怎麼加密就怎麼解密。就是說加密演算法和解密是互逆的。你知道怎麼加密就知道怎麼解密,反之亦然。可非對稱加密就不一樣了,就像它的名字一樣。

非對稱加密演算法中,加密演算法和解密演算法是兩套相互配對但又不互逆的演算法,同時也需要有兩套密匙,乙個公開的,用於加密(公鑰);乙個不公開的,用於解密(私鑰)。由於非對稱加密演算法在加密時使用了大量的取模運算和隨機數,這導致雖然演算法的細節都是公開的,且公鑰一般也都是公開的,但公鑰和私鑰依舊是無法相互推導的。加密的人都無法自己解密自己加密的檔案。

能解密的人自己無法用一樣的原文加密出一樣的密文。此外隨機數的應用導致同乙個原文加密2次獲得的密文都是不一樣的。雖然這兩個不一樣的密文解密後得到的是同乙個原文。

由於非對稱加密的加密演算法和解密演算法是公開的,因此非對稱加密的破解目的是利用窮舉法破解得到解密使用的私鑰,以此來解密密文。。從而大大減少窮舉法破解時所需要的時間。(我記得某個加密演算法/裝置的破解還需要利用裝置斷電來實現)

所以題主的問題需要分兩步來回答

1.針對對稱加密,當M增大,金鑰被破解的可能性X會隨之增大,當M到達乙個特定值M'時,X=100%。M'的值取決於演算法的複雜度和金鑰的長度。

2.針對非對稱加密,當M增大,金鑰被破解的可能新X不會必然隨之增大,這取決於演算法的缺陷。此外也取決於執行窮舉破解的速度(比如電腦CPU運算量,及是否有多台機器並行破解)。

5樓:Ivony

在電影模仿遊戲中,圖靈僅僅通過推測明文中可能會出現weather(天氣)這個詞,就通過密文推算出了金鑰。

事實也如此,對於對稱加密,明文、密文和金鑰(含加密演算法)之間的關係是完全對應的。

所以,和檔案都沒有關係,只要有足夠長的密文和明文的對應,理論上金鑰就一定可以破解出來,只是個時間問題。

怎麼用python統計乙個txt檔案中的三個中文名字出現的次數?

coder 謝公子 import re text open text.txt r read name 張飛 關羽 劉備 for i in name result re.findall i,text print i,出現了 d次 len result z666 text open 路徑,encodin...

c 能否把所有要用的標頭檔案在某乙個標頭檔案中全inlcude了,然後其他檔案只用include這個

qugx0528 每個cpp都是乙個編譯單元,編譯時生成多個obj檔案,在link的時候,也會極大的拖慢速度。有這麼一種情況,我有乙個很大的UI介面,其對應的實現 操作類也很龐大,我想把他們分解到多個cpp實現中。這樣就產生了這麼乙個問題 代表ui的標頭檔案會在每個cpp中被include一次,這樣...

如何取乙個檔案的占用空間

小於簇大小的Stream是直接跳過的。邏輯大概是下面這樣 void ParseStreamInfo FILE STREAM INFO info,LARGE INTEGER size,DWORD clusterSize if info NextEntryOffset 0 BYTE p reinterp...