黑客如何記住PIN
如果您有多個銀行卡,門口鑰匙碼或其他小型數字密碼來記住,則最終將成為一個麻煩。對我來說,最糟糕的是,我是一張商業帳戶的銀行卡,我在藍色的月亮中使用一次。我可能在五年內使用它八次,然後他們給了我一張帶有新銷的新卡。嘆。
快,我的別針是什麼?
普通人如何應對引腳的增殖?他們會在一張紙上寫下數字並將其保留在錢包裡。我們都知道那是什麼結束,對吧?丟失的錢包和多個空銀行賬戶。黑客如何處理它?在卡本身上寫下每個號碼,但自然地加密,使用唯一的不可用的加密方案出現在其中:一次性焊盤(OTP)。
OTP是加密方法中的奇怪鴨子。他們的意思是在你的頭上被解密,但只要秘密鑰匙仍然是安全的,它們就是堅固的。如果您曾嘗試編碼S-Box和添加,移位和混合以正常加密方法進行編碼,則OTPS刷新簡單。權衡是一個“長”的關鍵,但OTP絕對完美地加密您的針腳。
本文的第一部分似乎是友好的“生命黑客”鮑勃姆,你會得到其他地方,但不要絕望,這也是對OTP的後門介紹。下半場潛入了一段時間墊,有一些深層加密直覺,有些友好的數學,希望有一個說服沿著加密別針的說法是正確的事情。一路上,我列出了在實現OTP時可以做錯的三件事。 (沒有一個人會震驚你!)但最終,我的PIN加密解決方案將打破三個中的一個,並保持艱難的聲音。好奇嗎?閱讀。
PIN解決方案
所以首先解決了銀行卡問題的解決方案:用秘密編寫你的密碼,只有你知道的秘密。而不是需要記住每張新卡的四位數字,而是只需要一個四位數字。關鍵是選擇一個加密方案,這很容易撤消,以便在被要求在銀行出納員窗口中鍵入PIN時,您不會看起來太奇怪。這是OTP的經典使用 – 您可以在頭部撤消的加密。
首先,隨機選擇一個秘密的四位數字。然後,從密碼中減去該數字並在卡上寫下結果。要獲得PIN,請在站在銀行出納員面前時,只需俯視卡片並添加秘密號碼。出納員會認為你在卡上寫了你的別針。隨意感覺沾沾自喜,因為你使用了一個不可用的加密方案。
而不是正常添加和減法,隨著數字攜帶和借用,您將想要使用Modulo-10數學 – 在0-9範圍之外的任何時間從結果中添加或減去十個。我們將討論為什麼以下,但目前,這是一個工作示例。
假設PIN是1234 – 它必鬚髮生這樣的人,對吧? – 而且我的隨機秘密號是1337,自然。讓我們加密。減去1的1給出零,所以我寫下來。從2中減去3給出-1,這是模具-10算術進入的地方。在這種情況下,通過添加十個來進入9。 3 – 3 = 0,4 – 7 = 7,MOD-10。我的卡現在寫了0907年。
現在讓我們解密。俯視卡片,我看到一個0並加入1.9 + 3 = 12,所以我們需要減去十個獲得2.(這是選擇添加的解密階段的原因,它很容易丟棄任何前導1s。)0 + 3 = 3和7 + 7 = 14 – > 4 <。我輸入了1234年,錢是我的! 一旦你掌握了向任何其他數字添加了秘密號碼時,數字明智的Mod-10,你會感到驚訝它將有多快。嘗試一下,看看你在十分鐘內得到了擅長。 一次性墊 一次性焊盤既是最簡單的對稱加密方案,也完全不可破壞。它有三個至關重要的特徵,其中兩個是上面展示的,並且讓他們中的任何一個可能是災難性的。 OTP的最重要的特徵是密碼需要隨機,與其加密的文本相同的長度 - 因此引腳的四位密鑰。在一個OTP中,一切都圍繞著秘密,這也是它的腳跟。對於四位數字,保持四位數的秘密沒有問題。但想像一下,你想向朋友發送你假期的加密照片的千兆字節。這是攜手和秘密的很多關鍵材料。 原始的[matt_crypto],public domainecond,將消息與秘密組合的方法必須類似於模算力,在那個加密字符和純文本字符集 - 引腳 - 必須映射一對一。 MOD-10輕鬆確保此操作:兩者都在0-9範圍內。也許你熟悉使用XOR運算符在二進制數據上,這與Additi相同ON或減法,MOD-2。 (0 + 0 = 0,0 + 1 = 1,1 + 0 = 1,1 + 1 = 1 = 2 - > 0. QED。)您還可以使用字母並將字母包裹在“z”之類的凱撒密碼上或rot13,它只是將字母映射到數字並進行數學mod-26。
第三,也許這是第一個推論,你不應該在一次性墊中重新使用秘密。你認為這很明顯,因為它即使是加密方法的名稱,但在實踐中很難做到。事實上,我的PIN加密方案通過在多個鍵上使用相同的秘密來打破此規則。我們很快就會進入那個。
搞砸了完美的加密
為什麼OTP不可用?破壞大多數加密方案通常歸結為概率和統計。例如,如果將文本與上面的CAESAR密碼加密,則每次在密文中發生時,明文中的每個字母都會映射到另一個字母。如果您知道原始文本是英文,那麼最常用的字母是“e”,它是一個很好的選擇,如果“q”是密文中最常見的字母,它代表了“e”。也就是說,我們在明文和密文之間找到統計相似之處,並使用它們在兩者之間製作橋樑。
使用只要明文和隨機選擇的秘密密鑰,會與密文中斷任何統計關係。給定針對我的卡上寫下的特定密文,可以從0000到9999上的每個引腳,如果隨機選擇鍵,則同樣可能。沒有關於密文中的明文的信息 – 這基本上是Claude Shannon的證據(絕對經典的PDF)簡而言之。這就是為什麼OTP不可破壞的原因。
Diana One-Time Pad [US NSA],Public Domainthis實際上是了解加密領域的關鍵:它試圖在加密過程中爭取有關明文的信息,使得即使使用較短的鍵,否明文的統計相關痕跡仍然存在。這種對短鑰匙的渴望不僅僅是為了便利的問題想像一下你必須為客人寫下來的WiFi密碼的長度!這是OTP是微不足道和不感興趣的感覺 – 它可能是牢不可破的,但秘密對於大多數應用程序來說太長了。真正的Crypto是關於發現與最少關鍵材料打破統計關係的算法。
考慮到這一點,您可以使用短路或非隨機密碼來搞定OTP實現。想像一下,使用1作為您的密碼並根據需要重複它;我們的密文將讀取2345,並且PIN將在第二次嘗試時猜到。您還想使用隨機密碼;摘0000因為它使數學容易是唯一比以上更糟糕的事情。 (雖然嚴格來說,如果我在0000,1111,9999,1234,4321或類似的情況下,我會重新滾動。)無論如何,不要使用你的生日。童年朋友的舊電話號碼可能是可接受的。
Modulo算術的作用有點微妙。無論使用哪種功能,明文中的一組可能的字符都必須使用密文來映射一對一。為什麼?想像一下,你使用簡單的補充而不是mod-10。要獲得我們的PIN密文的最後一位,我們使用了4 – 7 = -3 – > 7並用7 + 7 = 14 – > 4。如果我們寫下-3,則攻擊者會知道我們的最後一位數不能’t大於6,因為添加9,最大值,只給出6.我們已經洩漏了信息,通過密文中的較大設置而不是明文。
這使得最後一個搞砸了:重新使用“一次性”墊。明顯,對嗎?錯誤的。
洛倫茲機,公共領域
一方面,重用是一個明確的責任。在非常相似的加密方案中重新使用密碼打破了“Tunny”,是WWII期間的重要代碼。發送4,000個字符的加密消息,但未正確收到。發件人重新發送了郵件,具有相同的秘密,但在文本中進行了小的更改,使用不同的縮寫等。這給了足夠的盟友來打破加密它的機器的趨勢和反向工程師。遊戲結束。
這是一個使TUNNY解密工作的數學數學,並且應該說服您幾乎從不重複使用鑰匙。如果我們用秘密密鑰C編碼消息A和B,並且有人忽略了兩者,他們可以只能將它們一起獲得(MOD C)MOD(B MOD C)=(A MOD B)MOD C = a Mod B,其中Mod是我們現在習慣的位或數字的模數運算符。由於拍攝二進制模製是它自己的反向,因此結果是與明文有關,並且獨立於密鑰。
從這裡,對A和B的智能猜測並與MOD B結果進行比較可以打破代碼。因此,如果您非常確定在兩個文本中出現“攻擊”(Crypto類型始終加密“黎明時)”),然後,您可以嘗試在不同位置調製“攻擊”,直到您與Mod B匹配。
一個驚喜結局
但這是最後的扭曲! 儘管上面的數學,我們可以逃脫在所有銀行卡中重用秘密密鑰。 為什麼? 因為別針本身是隨機的。 與在戰時期間發送的自然語言消息相反,如果A和B都是隨機引腳,則MOD B與MOD C一樣隨機。
所以這就是黑客如何記住引腳:通過學習很多關於一次性墊,如何打破它,以及如果需要保護的消息是短暫的,那麼如何有用。 以及特定消息,您甚至可以打破規則。