是否有可能創建一個需要解密簡單加密的遊戲?
這聽起來可能很奇怪,但我在想一個人可以用筆和紙獨自玩的遊戲。
我想到了這個人會在紙上寫一個隨機的四個字母的字元串,並且必須對其進行解碼。將有一種方法可以驗證該人是否越來越接近目標。所以,我決定在這裡問。
你認為有可能創建一個簡單的遊戲,其中一個人必須解密一個簡單的字元串(有點像比特幣礦工,我猜?),在解密過程中的每一點都有一個合乎邏輯的下一步,並且可以驗證所設想的合乎邏輯的下一步是否使玩家更接近解決方案。
類似問題:提供“提示”的玩具加密系統
有趣但不完全的選項:Vigenère cipher(維基百科文章)
凱撒密碼?它是一個簡單的替換密碼,您只需用筆和紙就可以解決。
加密是通過移動每個明文字母來完成的,x 乘以 n 放置字母表或數學上,ENCRYPT(x) = (x + n) mod 26。類似地,解密將是相反的,DECRYPT(x) = (x - n) mod 26.(參見維基http://en.wikipedia.org/wiki/Caesar_cipher#Example)
因此,您讓朋友選擇一個隨機 n 併計算隨機選擇的四個字母字元串的加密(使用免費的線上計算器,如http://online-calculators.appspot.com/caesar_ext/)。您不應該同時知道 n 和明文。但是明文應該是一些英文單詞或等價詞,以便在您解密時有意義。
然後,通過嘗試所有可能的 n 值來開始解密過程,直到解密的明文有意義。如果你的前兩個/三個解密的字母不是一個有效的單詞,這意味著你選擇的 n 值是錯誤的,你應該嘗試另一個 n。
如果你被筆和紙困住了怎麼辦:
將加密定義為 $ ax = b $ , 對於消息[Math Processing Error]和鑰匙 $ a $ $ x $ ,那麼你有 $ a = {{b}\over{x}} $ ,所以解密對應的是長除法算法。在每個步驟中,您都可以驗證解決方案的猜測,[Math Processing Error], 通過計算 $ a’ $ $ a’x - b = 0 $ .
如果您不想要密鑰,那麼計算根如何: $ x^2 = b $ . 一個非常相似的迭代過程,您可以在其中收斂解決方案,[Math Processing Error],通過反复猜測找到反函式,[Math Processing Error]. $ x $ $ \sqrt b $