https://4rdp.blogspot.com/2024/12/rsa.html
前些日子網友 ejsoon 留言討論「質數戰爭」數學遊戲,後來個人提議設計一個仿 RSA 密碼破解遊戲,在進一步討論遊戲設計前,先看看 RSA 是如何運作的。
有甲乙兩人要互傳訊息,為了避免內容被破解,大家約定使用 RSA 公鑰加密,為了簡化問題難度,
Step 1
甲自選 8 私人數字 p,乙自選 9 私人數字 q。
Step 2
兩人公開協調使用,基數 B = 2,時鐘尺度 C = 11。
Step 3
兩人以下列算式計算各自的 PPN (Public-Private Number),並且公告之
PPNp ≡ Bp mod C = 2⁸ mod 11 ≡ 3 及 PPNq ≡ Bq mod C = 2⁹ mod 11 ≡ 6
Step 4
甲拿取乙的 PPNq = 6,乙取用甲的 PPNp = 3,再與自己的私人數字混和計算出共同秘密 S
S ≡ (PPNq)p mod C = 6⁸ mod 11 = 4
≡ (PPNp)q mod C = 3⁹ mod 11 = 4 兩人的共同秘密數值是相同的
上面是計算 (X^n) mod 11 的結果列表,原本想依此原理設計遊戲,並且提供這個表格給玩家參考,可是透漏了 B = 2,其他玩家可以很容易由此查表得知他人的私人數字,另一問題是當指數運算的底數為 3, 4, 5, 9, 10 將發生重複對應問題,因此我改變想法,想改為另外提供類似數獨表,讓每行每列的數值皆不重複,替代上面的 RSA 表,除了重新製表之外,計算方法也需要調整,因為現在給出基數 B 與時鐘尺度 C,很容易反推算出私人數值 p 和 q,需要花時間想一個新方法應用於桌上遊戲。