Authentication

是否存在人工可驗證的一次性密碼驗證?

  • June 30, 2020

首先是一些謂詞:-

  • 有足夠的硬體生成一次性鍵盤密鑰材料。
  • 沒有墊重複使用。
  • 長度為 160 個字元的消息(想想 Twitter)。
  • 僅使用 28 個字元(AZ、空格和句點字母。想想莫爾斯)。
  • 絕大多數消息基於英語語法形式。
  • 這些消息將在電腦上鍵入並通過電腦閱讀。

是否可以使用筆和紙手動驗證一次性便箋消息?甚至可能是電子表格,但肯定沒有程式語言。因此,典型的 HMAC 已淘汰。有一定的決心,字元集和消息長度不是不可管理的。

最重要的是,身份驗證只需手動證明即可工作。他不會驗證每條消息,只會驗證他選擇測試的那些消息。這意味著使用者必須能夠自己驗證算法是否適用於消息傳遞系統。因此,他可以獲取任意消息,進行身份驗證並滿足自己的正確性。 目的是通過手動驗證的方式建立系統正常執行的信心,而不是欺詐或中間人攻擊的受害者。

高安全性是次要的,服從於對身份驗證的可證明的手動驗證的需要。雖然一次性密碼本是完全安全的,但身份驗證算法並非必須如此。對於這個問題,任何程度的身份驗證都會感興趣。如果任何提議的解決方案都可以將安全級別量化為比特,那就太好了。

我很欣賞身份驗證機制有一系列安全級別。顯然,它的範圍從無安全性(無身份驗證)到非常安全(HMAC 計算)。我認為不幸的是,我們正在將規模的低端視為無安全端,因為最重要的標準是人工計算。

發生的最基本和蠻力的方法是簡單地多次發送相同的消息。所以 m ⊕ k1 | m ⊕ k2 | … 等等。我相信你會為每條連接的消息獲得 4.8 位的安全性,但我可能錯了。

創建一個包含每個可能的推文字元的“字母表”,並根據該“字母表”構造一個直板。

讓一個明文字元作為校驗和。用你的直板計算校驗和,如下所示:

在表格的第一行中找到第一個明文字元,

  • 往下走,直到找到第二個字元,

向左或向右,直到找到第三個,

向上或向下直到找到第四個,

向左或向右直到找到第五個,

向上或向下直到找到第六個,等等。

當你擊中最後一個字元時,轉 90 度並繼續前進,直到你碰到直板的邊緣。你登陸的字元是校驗和。

將校驗和插入到消息中與“字母表”中第一個關鍵字元的位置相同的位置。

如果接收者計算消息的校驗和(當然忽略第一個關鍵字元指示的位置的字元)並發現它與解密的校驗和匹配,他{100-[(1 ÷ alphabet length) × 100]}%可以確定消息沒有被對手修改。

為了給予應有的榮譽,我從prgomez.com得到了在直板上進行這種蛇行操作的想法。

引用自:https://crypto.stackexchange.com/questions/47820