題:
您能說一次時間片加密是堅不可摧的,如果使用得當,那是最好的?
Saoud
2015-02-12 01:37:01 UTC
view on stackexchange narkive permalink

我目前正在閱讀有關一次時間片加密的問題,我有一個問題。他們說OTP加密是堅不可摧的,並且可以通過數學證明。前提是所使用的密鑰確實是隨機的,並且只能使用一次,對嗎?如果我使用整個系統(可以是軟件或硬件,也可以是兩者的組合)來強制執行這兩個條件,該怎麼辦?我將擁有最好的&理想的加密解決方案嗎?

例如,說願意交換信息的雙方都通過一直連接到在線服務器來獲取密鑰。服務器將確保生成的密鑰是隨機的,並且將確保不再使用密鑰。兩側的用戶僅需具有Internet連接和交換信息的機制。信息將通過使用服務器隨機生成的一個時區密鑰進行加密的Internet傳播。

我在這裡有意義嗎?我剛剛開始閱讀約一個時間片,並開始對此感到疑惑。有許多網站會告訴您,一個時間墊根本不實用,因為您無法真正提出一個真正的隨機數或類似的東西。

加法:

這些傢伙在密鑰分發方面是否提供特殊之處?他們說,隨著時間的推移,他們已經完善了OTP的實現。

http://www.mils.com/en/technology/unbreakable-encryption/#1

如果使用得當,最好的安全系統就是親自告訴對方您要對他們說什麼,而在您親自掃過錄音設備的房間裡沒有其他人。我們之所以不這樣做,是因為我們不得不擔心實用性-OTP僅在非常特殊的情況下有效,僅此而已使其次優。
“例如,願意交換信息的雙方通過連接到一直在線的服務器來獲取密鑰。”哇,在那等一下。您如何確保該連接的安全?換一個時間墊?客戶如何獲得該墊?看到問題了嗎?
“最好”是主觀的。這完全取決於一個人的要求。加密速度,可用工具,抗裂性,密鑰交換便利性等等。
記住密碼學的基本原理是:*您可以利用密鑰的保密性來防止某些攻擊的消息的安全性*。加密貨幣的新手經常會愛上數學並掩蓋了“密鑰的保密性”部分中的重大困難。
@cpast有人在看女高音,我知道嗎?
您目前無法通過Internet交換OTP,但仍然具有OTP的安全性。安全性將限於您用來交換密鑰的任何方法。這並不是說OTP是無用的:在某些應用程序中,它是最佳選擇。我相信所謂的“數字站”仍然使用OTP廣播消息來加密消息。如果使用了OTP,則通常需要手動進行更換,並且各方都有責任確保其安全。
[為什麼使用偽隨機密鑰被認為比一次性密碼更實用?](http://security.stackexchange.com/questions/12733/why-is-using-a-pseudo-random-認為比一個時間墊更實用)
在理論上,理論和實踐是相同的。實際上,它們不是。一個時間墊是堅不可摧的,但是在實際使用它們時有非常認真的實際考慮。
-1
七 答案:
gowenfawr
2015-02-12 01:44:27 UTC
view on stackexchange narkive permalink

密鑰分配是問題所在。

在您的方案中,您使用服務器將一次性鍵盤與用戶進行通信。但是通信如何受到保護?不用一次性墊,否則沒有必要。假設它是具有AES 128的SSL。那麼,您的密碼系統與具有AES 128的SSL一樣安全-相當安全,但沒有一次性保護墊那麼安全。

出現您所引用的密爾伙計們提供您將一次性密鑰流加載到(並可以從中使用)的物理設備。同樣,密鑰分配是一個問題。您可以購買兩個硬盤驅動器,在它們上加載TB級的密鑰流,然後將其中一個發送給您的好友...怎麼樣?您信任USPS嗎?聯邦快遞?信使?外交郵袋?所有這些都可能受到損害。唯一完美加密的發送方式是一次性將其加密...廢話,再次發生。

始終存在Diffie-Hellman密鑰交換。
@SpencerDoak但是,您只和用於交換的密鑰一樣安全-然後,您根本不需要服務器,可以直接交換密鑰...然後您開始擔心身份驗證和MITM ...
這個問題有一個(仍然相當理論化的)答案:糾纏的光子。 Quantum Crypto不允許我們直接加密消息,但允許我們(緩慢地)分發密鑰。 OTP是與此類密鑰一起使用的顯而易見的加密方法。
@MSalters並且已經存在針對量子糾纏(或者至少是現有的使用量子糾纏的加密系統)的有效攻擊(複數,我知道這是我的頭頂上的兩次)。所以這也不是解決方案。
關鍵**管理**沒問題,因為關鍵材料可能會受到威脅或丟失,或者攻擊者可以“取消同步”兩個當事方(DOS)。
YouTube上有無限量的一次性墊子。
@HotLicks,一次性墊也必須足夠隨機。儘管YouTube在許多方面都是隨機的,但從數學上講,它並不是足夠隨機的數據。
@gowenfawr-一個人只需要知道您已經在BBC體育網站上對領先足球(足球)文章中的單詞進行計數,就可以將其用作CNN上一篇文章的索引,以獲取特定YouTube視頻的ID及其偏移量開始。當然,在將數據用作填充數據之前,請通過合理的哈希算法運行數據。
-1
-1
@gowenfawr我認為您在誇大密鑰分發問題。在絕對的*情況下,您擁有比電子通信更好的保護物理媒體安全的能力;如果您親自給間諜送一包OTP,或者如果您始終隨身攜帶由可靠快遞員陪同的磁帶(這不是攜帶小型外交郵袋的不尋常方式,並且快遞員可以報告郵袋是否已打開,以便您扔掉那個小鍵盤),您會發現自己處在信任密鑰分發的程度與信任另一方不共享消息的程度一樣的情況。
基本上,為了解釋另一個問題的一些答案,OTP的基本功能是將“使此事保持安全”的問題轉移到更輕鬆的時間-可以在您的日程安排上進行便箋本的安全通信,而不是在您需要發送真實的消息,因為只要密鑰保持安全,消息就保持安全。
@cpast,,您是對的,物理密鑰分發當然是可能的,我懷疑政府一直在這樣做。但這對於大多數用戶來說是不切實際的,並且與OP的既定目標相反,後者是通過在線密鑰分發來啟用OTP的。
關鍵是OTP僅與密鑰分發通道一樣安全。因此,OTP永遠只能使用綁定密鑰交換來實現。嘗試在通道中傳輸密鑰會導致通道本身是最弱的鏈接。
AJ Henderson
2015-02-12 05:27:02 UTC
view on stackexchange narkive permalink

否,因為您在安全上下文中誤解了“最佳”的含義。與流行觀點相反,“最安全”和“最佳”不是同義詞,而是安全性完全是關於平衡可用性和安全性。這是關於風險管理的。

地球上最安全的驅動器正在一個法拉第籠中的一堆混凝土中的一個鎖著的盒子裡,向海洋底部的DevNull(位桶)寫入數據,沉沒在熔岩中,沒有電纜或電線。絕對沒有人會從中獲取任何數據,但合法用戶也永遠不會從中獲取任何數據。

一個時間墊確實具有被證明不可能正確使用的奢侈,但是如果使用不當,它們會很麻煩使用。如果它們是“最佳”選擇,那麼我們今天所知道的其他系統都不存在,因為它們幾乎都是在一個時間間隔的想法之後出現的(這是一個真正的古老概念。)

最好的選擇是將您的風險降低到可接受的水平,同時又保持可接受的可用性水平。在許多情況下,最好的安全性可能就是沒有安全性。例如,我不在乎您是否知道我的cookie食譜,因此,盡一切努力保護它們會不必要地降低可用性。我很在乎我的烹飪食譜是否丟失,所以我可能想存儲多個副本並將其備份到某個地方,但是我不會對其進行訪問控制,因為這會浪費我的時間。

在高度安全的情況下,同樣的思考過程與我的烹飪食譜同樣重要。歸結為對他們適用於我的風險進行分析(奧利奧(Oreo)可能會更在意保護他們的食譜),然後決定什麼是我的最佳選擇。每個人和每種情況都不同,沒有統一的答案。

+1表示“合法用戶也永遠不會從中獲取任何數據”,當然還有熔岩。
@Hopelessn00b-好的,重新閱讀您之前的評論,我想我對您所說的OTP不能保持完美的信息安全性表示抱歉(抱歉,凌晨2點在這裡)。它可能確實洩漏了您可能已經發送了一條消息(但您可能沒有)。但這絕不有助於破解密碼本身。我的發言非常清楚地是關於“不可能打破”,而不是“不可能對您的行為發表任何看法”。沒有信息洩漏,這對破壞消息的密碼保護很有用。
哦,是的,您去了...那就是我想要達到的目的。沒有完美的信息安全性意味著即使是完美的加密保護也無法完美地保護您的信息,因此即使不破壞加密,也可以收集一些信息。出於某種原因,我推斷您的帖子中沒有暗示正確實施OTP等同於完善的信息安全性。
您可能已發送消息的洩漏是某些人一直主張使用加密的原因的一部分。如果僅將它用於您真正想要隱藏的東西,那麼夏娃可以放心地認為她只是發現了比您的曲奇食譜更有趣的東西。
@chao值得指出的是,一直使用加密不會隱藏您發送的消息,只是會隱藏它是否有趣。此外,otp不僅限於Internet,因此可以通過難以跟踪的秘密渠道來使用它。
Xander
2015-02-12 01:56:00 UTC
view on stackexchange narkive permalink

不。邁克和gowenfawr在他們的答案中提到的一個時間墊不僅會遇到安全密鑰分發問題,而且:

即使,即使您確實有一種安全分發密鑰的機制,一個時間墊(本身)沒有確保完整性的機制。密文是我們所說的“可惡”,意味著攻擊者可以操縱密文以可預測的,不可檢測的方式修改純文本消息。

因此,即使一次性鍵盤提供了信息理論上的完美保密性,但它本身並不是一個安全的密碼,在現實世界中,它也不容易使用經過身份驗證的具有合理大小的密鑰(例如AES-CTR-HMAC或AES-GCM)的密碼顯然更好。

的確,OTP旨在提供保密性,而不是完整性。我認為攻擊者無法以可預測的方式修改明文,除非攻擊者知道明文消息(的相應部分)。
@Ajedi32是的,在我們生活的環境以及密碼必須起作用的現實世界中,攻擊者經常這樣做。
如果您加密並隨消息一起發送消息的哈希值,則延展性將變得非常困難(儘管我不知道*如何*困難)。
這個答案沒有提到存在從理論上講是安全的信息完整性方案。韋格·卡特(Wegman-Carter),至少在原則上,您可以將其與OTP捆綁在一種信息理論密碼系統中-值得一提的是完整性/身份驗證是必不可少的,但是很快就走了一條捷徑,即“易於使用經過驗證的密碼”聽起來很像是在避免“為什麼一次性加密不是最好的?”的問題; OP確實在詢問無條件安全的密碼系統,而不是專門針對OTP。
-1
@Xander確定您只需要一個哈希?有人使用OTP正確加密了哈希,這一事實似乎暗示哈希算法易受攻擊,或者他們擁有OTP。
@immibis否,它仍然完全容易受到已知的明文攻擊,因此在語義上也不安全。
@Thomas是的,有信息理論上的安全完整性方案,但這並不能改變基於一個時基的加密系統實際上並不是最好的事實。我不同意這不是問題,因為我已經以一百多種形式看到了相同的問題,但是我很容易確信我錯了。
@Xander如何容易受到已知明文攻擊?
@Xander我的意思是,OP只在談論一次性密碼,因為這是他所知道的,並且他既不知道身份驗證很重要,也不知道存在無條件安全的MAC(或兩者)。如果是的話,他就不會將其排除在問題之外,因為如您在回答中所解釋的那樣,沒有身份驗證的加密是沒有用的,因此請注意,對於無條件安全方案,身份驗證問題不是根本問題,因為而不是簡單地取消選擇權(無論這種方案在實踐中多麼可行)。
@immibis應該很明顯。
-1
@Xander足夠公平
@Xander實際上並不明顯。顯然,如果攻擊者可以知道完整的純文本,那麼加密就已經被破壞了(他們是如何獲得純文本的?),由此引發的任何攻擊都是沒有意義的。如果它們具有部分明文,則OTP加密的哈希顯然不會為他們提供有關其余明文的更多信息。如果他們擁有一條消息的純文本,似乎並不能幫助他們解密另一條消息(具有不同的OTP)。
@immibis加密系統的目的是防止所有有效的攻擊者,而不僅僅是一種攻擊者。即使KPA下的攻擊者知道PT,系統仍應能夠防禦他。使用裸哈希不能實現OTP,因為攻擊者不僅可以以可預測的方式修改PT的方式修改CT,而且還可以重新計算哈希。到郵件到達收件人時,它不僅已被攻擊者修改,而且原始哈希已被修改後PT(或CT)的攻擊者哈希取代,並且無可避免地被破壞了。
@Xander為什麼您要發送未加密的哈希?您壓縮原始消息,對其進行哈希處理,然後使用OTP對壓縮的原始+哈希進行加密。我想看看這種攻擊會以隨後的解壓縮和哈希檢查工作方式改變隨機位域的攻擊...
如果您以某種方式神奇地解決了安全密鑰交換問題,那麼身份驗證將不會有任何問題。如果我僅與一個人親自共享我的OTP,並且我使用此OTP解密一條消息,並且解密產生一條有效消息,則這與任何證書一樣安全(這間接證明某人擁有私鑰-使用OTP,私有密鑰就是OTP,因此加密和身份驗證合二為一)
我認為Xander想要說的是,如果您既知道純文本又知道加密文本,則可以從它們計算出OTP,並輕鬆進行MITM攻擊。另一端將無法得知消息已被篡改,因為它將使用OTP代碼進行完美解密。
-1
@SztupY但是,如果部分明文是在創建消息時完全隨機生成的,他怎麼可能知道明文呢?沒有人知道這一部分。由於哈希是從此派生的,因此您也無法知道哈希。因此,接收者可以通過檢查哈希碼來輕鬆識別篡改,而攻擊者在不知道消息的隨機部分的情況下就無法重現! -如果攻擊者確實確實滲透了發送者的計算機並在發送之前閱讀了包括隨機字符的完整消息,則他確實可以偽造它,但是他可能也可以讀一個私鑰
@Falco您不必弄清楚他是如何知道明文的。規定,對於這種攻擊,他知道明文。這是標準加密系統設計的一部分,強大的系統必須能夠應對這種攻擊。
使用@Xander,您會忽略一​​個事實,即用秘密密鑰(OTP)加密的安全哈希與MAC完全相同...說不出話,說MAC比單獨加密的安全哈希更安全。此外,KPA通常不包含密鑰,並且隨機添加的任意數量的字節作為鹽也不是KPA的一部分,因此無法預測哈希,因此也無法偽造
KPA通常是攻擊者可以對您要發送的內容進行有根據的猜測的情況,但是純文本僅包括實際的純文本,不包括SALT而不是HASH而不是私鑰...並且沒有這3種攻擊是徒勞的,OTP是安全的
@Falco使用OTP加密簡單哈希對計算上不受限制的攻擊者而言並不安全,因為攻擊者可以脫機搜索衝突。另一方面,WC樣式的MAC基於通用哈希,您可以使用一個密鑰從一系列哈希中選擇一個哈希,從而防止衝突搜索,然後對其輸出進行加密,以防止攻擊者了解有關第一個密鑰的任何信息。
如果哈希是用OTP加密的,即使您在幾秒鐘內發現任何衝突,如果哈希本身是OTP加密的,您怎麼知道找到了一個衝突?只要您無法解密哈希,就無法尋找衝突。而且,如果不知道SALT,就無法創建相同的哈希。您甚至無法搜索模式,因為每個位都是隨機編碼的...
想像以下情況:我的哈希函數是一個簡單的奇偶校驗位,在計算奇偶校驗位之前,我在明文中添加了一個隨機位。 -即使您知道明文並獲得了我的加密消息,也無法獲得高於50%的機會來猜對奇偶校驗位,因為兩個位(隨機和奇偶校驗)都分別與來自OTP ...甚至具有完全透明的反向哈希函數...
@Xander我知道您詳細介紹的攻擊是如何工作的(並傾向於在評論中進行解釋),但該評論表明並非所有人都知道。舉個Alice-Bob-Mallory工作的例子也許會很好?
-1
完全是@cpast!由於奇偶校驗函數p(a || b)與p(a)+ p(b)相同,因此您可以輕鬆地將a替換為衝突文本。但這並不適用於所有哈希函數!即使這樣,您獲得的唯一結果就是一次碰撞,很可能不會產生可用的文本
@Falco只需一次沖突就可以破壞消息身份驗證所需的安全性(即,在選擇明文攻擊下存在的不可偽造性)。它是否可用並不重要; *任何偽造的可能性大於2 ^-(taglength)意味著您有休息時間。所有哈希函數都有衝突;有一個非常具體的結構可用於提供完善的安全性,但是沒有任何通用的哈希算法可以滿足要求。
如果“明文”包含任何密碼學上安全的哈希和鹽,那麼顯然*可以*知道明文的對手可以篡改該消息。我不認為這是一個合理或實際的問題。
Andrew Russell
2015-02-13 08:29:15 UTC
view on stackexchange narkive permalink

您正在嘗試比較密碼基元,並將其與密碼系統進行比較。

加密基元組合在一起創建了一個加密系統,您只能評估系統的安全性。一旦您了解了系統所使用的用例和環境,包括攻擊者,用戶,在線協議,存儲機制,洩露途徑,可用性要求,用戶數,節點,相互之間的網絡,相關服務等。

對您的問題的回答:

因此,在One Time Pad原語的上下文之外,系統可能應該引入其他技術/原語來滿足以下要求。 / p>

  • 消息完整性(校驗和,簽名)
  • 確保同步以避免DOS。 (攻擊者可能會引入虛假消息,以使雙方之間的通信不同步。)
  • 中途停止工作的人,只需更改一點傳輸即可(可以通過翻轉來更改部分已知的純文本的含義一位,即“ LaunchMissiles = 0”與“ LaunchMissiles = 1”
  • 停止重播攻擊(三天后重播“ Attack at Dawn”)

和其他可選要求

  • 發件人驗證(簽名)
  • 接收者驗證(證書)

因此,您只能嘗試評估郵件的安全性加密系統一旦合理表達。

“停止重播攻擊”是否自然會源於“永遠不要重用密鑰材料”,這絕對是OTP首先要安全的絕對要求?任何使用重疊密鑰材料的消息都應該被當作虛假的東西扔掉,甚至不要被其他任何人看到。
重播攻擊可以重用以前有效的消息,例如“惡棍”在三天后重新發送給接收者的“黎明攻擊”消息。該消息具有元數據,以確保將OTP的正確部分用於解密。
究竟。消息元數據包括某種指向密鑰材料的指針(如果需要的話,它在打擊墊中的起始位置)和消息長度。如果該組合表明與接收者已知的先前已使用的密鑰材料重疊,則應丟棄該消息;否則,該消息將被丟棄。它是重播,還是*某人*不知道如何安全地使用OTP。
嗨,@MichaelKjörling,您提到的所有技術都超出了“一個時限”原語的範圍。請注意,當您考慮到攻擊者通過強制將一個時標標記為“已使用”來對通信進行拒絕服務攻擊時,會在上面引入另一個漏洞。
Mike Scott
2015-02-12 01:42:32 UTC
view on stackexchange narkive permalink

一次性墊的問題是將其分配給雙方。您不能只是將其放在服務器上供他們兩者下載,因為如果您有安全通道可以執行此操作,那麼無論如何,雙方都可以使用該安全通道進行通信。您幾乎必須使雙方在身體上聚在一起,這顯然是非常有限的。

在某些情況下(但不是全部),密鑰分配是一個問題。雙方在獲取要傳輸的某些信息之前擁有安全的通信通道並不少見,但是在他們擁有要傳輸的信息之前,該通道不可用。如果其他密碼本質上不那麼好,並且可以使用的信道僅(僅)易於受到被動偵聽攻擊的影響,那麼在這種情況下,OTP可能會很有用。我認為OTP更重要的一個方面是Xander提到的一個方面。
實際上,@supercat OTP曾經在這種情況下使用過-您可以在每週飛往莫斯科的航班上通過外交快遞發送新磁帶,然後在幾乎準備發射核武器時不必擔心密鑰分配。在這種情況下,篡改實際上是不切實際的(您需要了解消息的內容才能有效地對其進行篡改),因此在冷戰時期它的運行狀況足夠好。
@cpast:在某些情況下,對手將不了解消息。但是,在另一些情況下,對手也許能夠猜測。例如,我讀到在第二次世界大戰中有一個德國沙漠基地,盟友應該遠離,因為其可預測的天氣報告形成了有用的嬰兒床。如果他們一直在使用OTP,則可以攔截傳輸的人可能會替換任何其他所需的消息。
user10800
2015-02-13 05:34:39 UTC
view on stackexchange narkive permalink

所有加密的持久問題是信任。您必須相信,要向其發送消息的人就在您身邊,並且不會將消息或密鑰傳遞給不應該接收此消息的人。您必須相信,發明正在使用的加密方案的人員沒有後門或意外漏洞。使用OTP,您會遇到與接收者之間信任的問題,但是如果您不能親自將密鑰提供給接收者,則現在必須信任可以向其交付密鑰的第三方實體。收件人。如今,現代加密和身份驗證仍然存在這個問題。

如果我是潛在用戶,我將永遠不會信任會生成密鑰並通過網絡連接傳輸密鑰的第三方。用戶也無法確保您生成的是真正的隨機密鑰,或者您是否已被盜用。絕對不正確使用OTP,因為加密的強度僅與其最壞的缺點相同。如果您通過互聯網發送密鑰,那麼您將失去真正的OTP可以提供的任何好處,因此您最好還是使用AES-256。

我認為可以肯定地說,OTP在技術上最佳傳輸加密,“最佳”一詞指的是安全性。這並不意味著它對於大多數用例來說都是“最佳”的,而OTP有一些嚴重的負面影響。密鑰必須存儲在某個地方,這意味著密鑰可能掉入不正確的人手中。現代分組密碼通常具有人類可以記住的較短密鑰,從而使第三方更難以提取它們。如果使用正確的軟件,也很難實現AES之類的東西。

除了OTP的安全性之外,您還可以指望的是人類的懶惰。我們自然會傾向於做最簡單的事情,從歷史上看,這導致人們做出一些真正愚蠢的決定,從而使他們失去了溝通渠道的安全性。有時,懶惰的人決定在密鑰或代碼簿用完後重新使用密鑰,並且他們沒有辦法生成&來傳輸新密鑰。這樣做的結果可能比完全停止溝通要糟糕得多。

定義最佳,答案可能是“是”或“否”。

Falco
2015-02-12 16:27:58 UTC
view on stackexchange narkive permalink

主要問題是安全密鑰交換!如果您可以某種方式連接到始終在線的服務器並可以與該服務器進行100%安全的通信-為什麼不通過該服務器中繼消息呢?

以下是一個完全有效的方案:某人並與他交換OTP。此後,只要OTP持續有效,您就可以與他安全通信。為了確保消息的完整性,您將在隨機文本中添加N個隨機字節,然後對所有內容進行哈希處理,然後再使用OTP進行加密(我通常也會在加密之前對明文進行壓縮,以確保更小的大小和更高的信息密度)。這將確保立即進行身份驗證和加密。因為身份驗證本質上就是驗證對方知道某些秘密,只有他才能知道。但是使用對稱密鑰,密鑰已經是只有你們兩個人知道的密鑰,因此,如果消息使用共享密鑰成功解密並且仍然完好無損(解壓縮+校驗哈希),則完整性和身份驗證已得到驗證。

但是,如果您想對強力方法使用OTP,則同樣可以使用足夠大的對稱加密(如AES),這也很難破解。加密的有趣部分是密鑰交換。如何在不與我想安全通信的所有人見面的情況下完成整個加密/身份驗證?這就是為什麼存在非對稱加密的原因。

所以OTP解決了一個相當不錯的問題,該問題已經足夠好解決(對稱加密),但根本解決不了真正的問題,這就是為什麼非對稱加密!

我懷疑“壓縮+哈希”是否真的是一種提供與OTP安全性相當的完整性的方法。我不確定應該使用壓縮步驟,並且僅憑哈希不能提供針對已知明文MiTM攻擊的保護。您至少應該使用MAC(帶有附加的鍵輸入),而且我認為有些MAC算法的理論保護級別與OTP類似...不過,我必須查一下。
壓縮將為您節省OTP的字節數,並且會提高信息密度,從而使明文猜測更加困難。此外,完美的加密哈希是防止大多數攻擊的好方法。但是對於已知的明文,您將需要一個附加的隨機組件。只需在哈希之前將N個隨機字節添加到明文中即可,其中N是哈希長度。這甚至會使已知的明文攻擊變得不可行
@PaŭloEbermann您能為我解釋一下MAC(用單個密鑰加密的安全哈希算法)和OTP加密的哈希(具有OTP自己的一部分的安全哈希算法=單個密鑰)之間的區別嗎?
@Falco如果攻擊者知道明文,則他們知道明文的哈希,並且可以用自己的明文和哈希替換明文和哈希。 MAC不是“用單個密鑰加密的哈希”;並非所有的MAC甚至都使用哈希,並且HMAC(確實是)是H(k || H(k || M)),而不是E_k(H(M)),並且使用可延展的加密系統對哈希進行加密*不能*產生一個MAC。在已知的明文攻擊下,MAC必須是不可偽造的-如果攻擊者可以根據需要將您帶到MAC,那麼他就不可能偽造您沒有MAC的*任何*消息-MAC對。
@cpast好的-我希望看到此消息您知道純文本,並將以某種方式神奇地猜測您需要創建哈希碼的SALT ???請記住,您沒有原始哈希,也沒有原始SALT,並且由於SALT與哈希一樣大,因此您完全可以完全猜出哈希...而且只需兩次使用哈希函數不會改變您具有兩個輸入的函數的事實:秘密密鑰和純文本。如果攻擊者知道兩者都可以復制,則不能複制。與具有未知SALT的加密哈希相同
@Falco我們從哪裡得到鹽醃的哈希?鹽用於密碼散列,而不是其他地方,也不是秘密。如果您的意思是“在散列消息之前我在消息中添加了秘密內容”,則您不是在進行“散列並加密散列”。順便說一句,HMAC的目的是解決Merkle-Damgard散列的某些問題,這些散列使H(k ||純文本)完全不適合MAC。這就是為什麼它要哈希兩次(使用SHA-3,您可以執行H(k || plaintext),但這不是“進行哈希並對其進行加密”,而是“具有密鑰並在哈希本身中使用它”)再次,哈希通常不包含鹽)
-1
@Falco以這種方式使用安全哈希函數不足以實現完全安全的MAC。例如,非常常見的Merkle-Damgard哈希家族可能無法為您的構造提供完美的安全性:如果我在哈希中發現衝突,消息M和N的長度相同(我可以這樣做,因為我有無限的計算能力(在完美的安全分析中),並讓M由您加密和MAC,我可以將N換成M並獲得新的有效消息。存在完全安全的MAC。到目前為止,您的算法已不在您的算法之內。
讓我們[繼續聊天中的討論](http://chat.stackexchange.com/rooms/21091/discussion-between-falco-and-cpast)。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...