Đăng trong Crypto, CTF

[Crypto] – Breaking RSA in CTF Challenges – (Part 1)

Hệ mã RSA được giới thiệu vào năm 1977 bởi 3 nhà khoa học Ron Rivest, Adi Shamir, Len Adlerman. Đây là một trong những hệ mã được sử dụng phổ biến nhất hiện nay, ứng dụng cho truyền dữ liệu an toàn qua internet, email. RSA còn là nền tảng mật mã cho các giao thức SSL/TLS, SET, SSH, PGP, … RSA cũng được ứng dụng trong chữ ký số Digial Signature.

Breaking RSA là dạng bài thường xuyên gặp phải trong các cuộc thi CTF dưới nhiều hình thức. Bài viết này tôi sẽ mô tả ngắn gọn về hệ mã này, liệt kê các điểm yếu có thể khai thác của nó, cũng như các công cụ toán học, các tool cần thiết giúp giải quyết các bài RSA hay gặp khi chơi CTF.

Đọc tiếp “[Crypto] – Breaking RSA in CTF Challenges – (Part 1)”

Đăng trong Crypto

[Crypto] Hệ mã Merkle – Hellman

Giới thiệu

Hệ mã Merkle – Hellman thuộc nhóm Public key Cryptosystem, dựa vào bài toán Knapsack (bài toán xếp ba lô, hay bài toán người du lịch). Bài toán Knapsack ban đầu được phát biểu như sau:

Một kẻ trộm đột nhập vào một cửa hiệu tìm thấy có n mặt hàng có trọng lượng và giá trị khác nhau, nhưng hắn chỉ mang theo một cái túi có sức chứa về trọng lượng tối đa là M. Vậy kẻ trộm nên bỏ vào ba lô những món nào và số lượng bao nhiêu để đạt giá trị cao nhất trong khả năng mà hắn có thể mang đi được.

Ta có n loại đồ vật, x0 tới xn-1. Mỗi đồ vật xi có một giá trị pi và một khối lượng wi. Khối lượng tối đa mà ta có thể mang trong ba lô là X.

Ta cần cực đại hóa tổng pi * xi sao cho wi * xi < X.

Đọc tiếp “[Crypto] Hệ mã Merkle – Hellman”

Đăng trong Crypto

[Crypto] 06 – Mã Vigenere

Giới thiệu

yptoCả 3 loại mã tôi đã giới thiệu ở các bài trước: mã Caesar, mã Affine và mã thay thế đơn giản được gọi chung là mã thay thế dùng một bảng chữ cái (monoalphabetic substitution cipher). Nghĩa là ta dùng một bảng ánh xạ các chữ cái trong bảng mã thành bản rõ và tất cả các các chữ cái trong bản mã đều dùng chung một bảng ánh xạ.

Đọc tiếp “[Crypto] 06 – Mã Vigenere”
Đăng trong Crypto

[Crypto] – Ví dụ về kết hợp phân tích mẫu từ và phân tích tần suất để giải mã loại mã thay thế

Mật mã thay thế một thời từng được xem là an toàn do không gian khóa lớn của nó. Nhưng các nhà thám mã chưa bao giờ ngừng sáng tạo. Ngoài thám mã dựa trên mẫu từ còn có thám mã dựa trên tần suất. Phương pháp thám mã dựa trên tần suất bắt nguồn từ phép thống kê tần suất xuất hiện của từng chữ cái trong Tiếng Anh, thống kê với một số lượng lớn văn bản cho ta bảng sau:

Giờ ta thực hiện phép thống kê tương tự cho đoạn mã và so sánh với tần suất chuẩn, kí tự nào xuất hiện nhiều nhất có khả năng sẽ mã hóa cho kí tự e, kí tự xuất hiện nhiều thứ 2 có thể mã hóa cho kí tự t, … Ngoài phép thống kê tần suất của từng kí tự, ta còn có thể thống kê tần suất của từng cặp kí tự trong Tiếng Anh, ví dụ he, th, … Và cũng so sánh với tần suất chuẩn để dần tìm ra bản rõ. Đó là ý tưởng của thám mã dựa trên tần suất. Xem ví dụ sau đây về việc giải mã một bản mã theo hệ mã thay thế được trích từ sách Mật mã – Từ cổ điển đến lượng tử của tác giả Simon Singh bạn sẽ hiểu được phương pháp này lợi hại thế nào.

Đọc tiếp “[Crypto] – Ví dụ về kết hợp phân tích mẫu từ và phân tích tần suất để giải mã loại mã thay thế”

Đăng trong Crypto

[Crypto] 04 – Mã thay thế (Phần 1)

Giới thiệu

Mã thay thế (Substitution Cipher) là hệ mã trong đó mỗi kí tự của bản rõ được thay thế bởi một kí tự tương ứng trong bản mã theo một cách nào đó. Trong Shelock Holmes có một vụ án nhắc đến loại mã này, đó là truyện “Những hình nhân nhảy múa”. Thủ phạm đã dùng mã thay thế với mỗi kí tự được thay bằng một hình nhân người nhảy múa. Thám tử Holmes tài ba đã áp dụng phương pháp thám mã phân tích tần suất và phân tích mẫu từ để giải mã các hình nhân này.

Đọc tiếp “[Crypto] 04 – Mã thay thế (Phần 1)”

Đăng trong Crypto

[Crypto] – Kiểm tra đoạn văn bản có phải Tiếng Anh không

Dẫn nhập

Trong bài toán thám mã, thông thường bạn sẽ tìm cách thử các khóa k và dùng hàm D để giải mã tạo ra bản rõ p. Nhưng làm thế nào để biết p có đúng là bản rõ cần tìm, chẳng lẽ ta lại cho chương trình in ra hết các khả năng (đôi khi lên tới hàng ngàn, hàng triệu kết quả) rồi nhìn từ đầu tới cuối xem đâu là bản rõ cần tìm. Đối với hệ mã Caesar với chỉ 26 khả năng cho khóa k, bạn có thể làm như vậy. Nhưng với các hệ mã phức tạp khác thì số khả năng phải thử là vô cùng lớn, việc ngồi mò như vậy là bất khả thi.

Đọc tiếp “[Crypto] – Kiểm tra đoạn văn bản có phải Tiếng Anh không”
Đăng trong Crypto

[Crypto] 02 – Mã Caesar

Giới thiệu

Hệ thống mật mã cổ điển (các loại mật mã được phát minh và ứng dụng trong thời kỳ tiền máy tính) có rất nhiều. Nhưng tựu chung lại có thể chia thành 2 dạng lớn: mật mã chuyển vị và mật mã thay thế.

Mật mã chuyển vị là loại mật mã mà các kí tự trong bản rõ sẽ được hoán vị theo một cách thức nào đó để tạo nên bản mã. Ví dụ điển hình là cách mã hóa mà người ta dùng một mảnh vải dài quấn hình xoắn ốc quanh một thanh hình trụ, người tạo mã sẽ viết thông tin lên vải theo chiều dọc của thanh hình trụ rồi trải mảnh vải ra đọc theo chiều dài mảnh vải sẽ được bản mã. Cách mã hóa này thường xuất hiện ở những trò chơi đi tìm mật thư trong nhà trường. Hệ thống mã hóa này yếu và ít biến thể nên tôi sẽ không trình bày ở đây.

Đọc tiếp “[Crypto] 02 – Mã Caesar”