iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
Security

資安小白的密碼學從0到1-CryptoHack平台解題紀錄系列 第 12

【Day 12】Modular Arithmetic 05 - 中國剩餘定理

  • 分享至 

  • xImage
  •  

前言

今天來解一題就好,一樣為writeup,這題為中國剩餘定理
https://ithelp.ithome.com.tw/upload/images/20230922/20162613R7d6sWt5Qc.png

Writeup

Chinese Remainder Theorem

題目

網址 : https://cryptohack.org/courses/modular/crt1/
https://ithelp.ithome.com.tw/upload/images/20230922/20162613DX337ED5Tz.png

思路

利用中國剩餘定理求通解後,把"解" mod 935 得到x

解法

  • 中國剩餘定理
    https://ithelp.ithome.com.tw/upload/images/20230922/20162613ojZrRpU49V.png

先把M求出來

M = 5 * 11 * 17

再分別算M1, M2, M3

M1 = M // 5, M2 = M // 11, M3 = M // 17

求出M1, M2, M3 分別 mod m1, m2, m3的模反元素

利用t1 = inverse(M1, 5), t2 = inverse(M2, 11), t3 = inverse(M3, 17)

最後可得到通解X = M1∙t1∙a1 + M2∙t2∙a2 + M3∙t3∙a3

最後的最後,把它mod M 得出最小正整數解

X%M

詳細流程模擬可以參考此網址 : https://www.mathcelebrity.com/chinese.php?matrix1=x+%3D+2+mod+5%0D%0Ax+%3D+3+mod+11%0D%0Ax+%3D+5+mod+17&pl=Chinese+Remainder+Theorem

  • code
from Crypto.Util.number import *
#x ≡ a mod m
#x ≡ 2 mod 5
#x ≡ 3 mod 11
#x ≡ 5 mod 17
a1, a2, a3 = 2, 3, 5
m1, m2, m3 = 5, 11, 17
M = 5 * 11 * 17
M1, M2, M3 = M // 5, M // 11, M // 17

t1 = inverse(M1, 5)
t2 = inverse(M2, 11)
t3 = inverse(M3, 17)

X = M1*t1*a1 + M2*t2*a2 + M3*t3*a3
print(f"flag : {X % M}")
  • output
    https://ithelp.ithome.com.tw/upload/images/20230922/20162613uslB4gggZr.png

flag : 872

統整

  • Chinese remainder theorem 中國剩餘定理
    • 假設整數m1, m2, ... , mn其中任兩數互質,則對任意的整數:a1, a2, ... , an,方程組S有解
      https://ithelp.ithome.com.tw/upload/images/20230922/20162613SvhXKPJUQb.png
    • 求通解步驟(在此舉例有3個式子)
      https://ithelp.ithome.com.tw/upload/images/20230922/20162613kaO2rZgVCx.png
      • 先求M = m1 * m2 * m3
      • M1 = M//m1, M2 = M//m2, M3 =M//m3

      e.g. a = 5 // 2, a = 2, 由此例子可知" // " 意思為除後取整數商的部分

      • 求M1, M2, M3的模反元素,分別為t1, t2, t3
      • 最後通解為 : x = M1∙t1∙a1 + M2∙t2∙a2 + M3∙t3∙a3
      • 把x mod M 得到唯一解

小結

今天只解這一題,難度比昨天簡單一點,這個課程剩下兩題為類似總複習的,就不會像這樣單一主題(比如這篇主題為中國剩餘定理),所以就把那兩題放一天,明天預計會先做統整,之後再去解那兩題,最後步入古典密碼!

參考資料


上一篇
【Day 11】Modular Arithmetic 04 - Legendre Symbol&sagemath使用
下一篇
【Day 13】模運算相關定理統整筆記
系列文
資安小白的密碼學從0到1-CryptoHack平台解題紀錄31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言