[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}
Để 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
Đăng nhận xét