[VNPT SecAthon 2018] Modulus

Đề bài cho ta mã nguồn thuật toán mã hóa sau

Để giải quyết bài toán này mình sử dụng kiến thức về nhân ma trận tương tự trong việc thám mã Hill. Ta quy ước các chuỗi encryptionKey và flag có dạng sau




Thuật toán sẽ mã hóa từng kí tự p trong chuỗi flag để tạo chuỗi encrypted theo công thức







(K là ma trận có kích thước 2 x 2)
Vậy chỉ cần tính được nghịch đảo của ma trận K là ta có thể tìm được flag từ chuỗi encrypted





Do chuỗi encrypted được cho sẵn và flag có dạng SECATHON{...} nên ta có thể tính được nghịch đảo của K và tìm ra flag.
Chú ý các phép toán trên ma trận đều theo modulo 251.

Flag => SECATHON{crypto_is_very_simple_if_you_know}

Nhận xét

Bài đăng phổ biến từ blog này

[VNPT SecAthon 2018] sql33t

[SVATTT2017 Final] The last bullet