Điểm:2

Trợ giúp với câu hỏi RSA CTF

lá cờ cn

Tôi đang cố giải quyết vấn đề CTF liên quan đến mã hóa RSA.

Tôi có thể chạy tệp nhị phân thử thách sẽ đọc cờ từ một tệp, cờ sẽ khớp với RegEx sau:

AB1234C\{[0-9a-f]{32}\}\n

Vì vậy, tổng cộng cờ là 42 byte bao gồm cả dòng mới

Sau đó, cờ được đệm bằng đệm ngẫu nhiên với tổng số 128 byte.

Tôi có thể chọn số mũ công khai e, miễn là e>1. Nhị phân sẽ tạo mô-đun 2048 bit ngẫu nhiên bằng hàm python Crypto.PublicKey.RSA.generate(bits=2048)

Hệ nhị phân sẽ in ra mô-đun cũng như bản mã của cờ đệm được mã hóa.

Tôi có thể chạy nhị phân nhiều lần, mô-đun và phần đệm sẽ khác nhau giữa mỗi lần chạy.

Tôi nghĩ rằng nó có thể liên quan đến cuộc tấn công của Hastad nhưng điều đó dường như chỉ hoạt động đối với phần đệm tuyến tính và cuộc tấn công phần đệm ngắn của Coppersmith chỉ hoạt động nếu bạn có hai tin nhắn với phần đệm ngẫu nhiên nhưng được mã hóa bằng cùng một mô-đun mà tôi không có ở đây do thực tế là một mô-đun khác nhau được tạo ra mỗi khi tôi chạy mã nhị phân.

Tôi vẫn là người mới bắt đầu khi nói đến tiền điện tử nên có thể tôi đã nhầm về những cuộc tấn công đó và có thể đã bỏ sót điều gì đó hiển nhiên.

Tôi tin rằng lỗ hổng có thể liên quan đến kích thước của phần đệm, vì thông báo được đệm chỉ bằng một nửa chiều dài của mô-đun.

Tôi không nhất thiết muốn có giải pháp, mà chỉ cần một cú hích đúng hướng. Cảm ơn.

jdkleuver avatar
lá cờ cn
Câu hỏi này có vẻ liên quan https://crypto.stackexchange.com/questions/80087/short-padding-known-prefix-rsa-attack Nhưng câu trả lời cho câu hỏi đó dường như không hữu ích vì nó dựa trên hai bản mã được tạo với cùng một mô đun.
fgrieu avatar
lá cờ ng
Là một CTF, câu hỏi nằm ngoài chủ đề và có lẽ sẽ được trả lời bằng các gợi ý. Điều đó nói rằng: không có cách nào được nêu để sử dụng lại mô-đun và 22 byte đệm ngẫu nhiên, tôi không thể nghĩ ra giải pháp. Tôi sẽ xem mã đang thực hiện phần đệm để xem nó có đúng như quảng cáo không; và tại đoạn mã đang tạo để xem liệu nó có sử dụng $e$ đã chỉ định hay không (đoạn trích mã trong câu hỏi thì không).
jdkleuver avatar
lá cờ cn
Tôi không thể chia sẻ mã nguồn vì đây là một CTF riêng tư, nhưng tôi có thể xác nhận rằng khi mô đun được tạo, nó không chuyển giá trị e làm đối số, mà chỉ chuyển đối số bit.
Điểm:2
lá cờ my

Đây là một CTF, và vì vậy tôi chỉ đưa ra một gợi ý.

Tôi có thể chọn số mũ công khai e, miễn là e>1

chúng ta có thể chọn một $e$ điều đó làm cho điều này trở nên dễ dàng từ một truy vấn duy nhất? Xem xét:

... đến tổng số 128 byte

Nhị phân sẽ tạo ra một mô đun 2048 bit ngẫu nhiên

fgrieu avatar
lá cờ ng
Nhưng đó không phải là RSA! :-) Và nếu `Crypto.PublicKey.RSA.generate` đôi khi được thông qua bằng cách sử dụng $e$ (như lẽ ra), thì không nên để điều này xảy ra. Chắc chắn giá trị kiểm tra.
jdkleuver avatar
lá cờ cn
Có thể xác nhận rằng `Crypto.PublicKey.RSA.generate` không được chuyển bằng cách sử dụng e, vì vậy tôi đoán bạn đang làm gì đó ở đó. Đối số duy nhất là 'bit' nên giá trị e do Python tạo ra bị bỏ qua, chỉ sử dụng n.
jdkleuver avatar
lá cờ cn
Những gì bạn đang gợi ý với câu trả lời này thực sự là giải pháp dự định từ tác giả CTF.
Điểm:0
lá cờ cn

Vì vậy, sau khi đọc bình luận @fgrieu, tôi đã xem xét lại lược đồ đệm và nhận ra rằng nó thực sự mang tính quyết định chứ không phải ngẫu nhiên như tôi nghĩ. Tôi vừa giải quyết nó bằng cách sử dụng đòn tấn công của Hastad, vì vậy nó thực sự là một điểm yếu của phần đệm. lời xin lỗi của tôi cho các câu hỏi nêu không chính xác.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.