Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu Đề thi toán quốc tế tháng 5-6 2001 ppt
Nội dung xem thử
Mô tả chi tiết
5-2001
Mã hóa kép
BÀI TOÁN
AES đang nghiên cứu một thuật toán mã hóa rất mạnh. Thuật toán làm việc với 3 khối, mỗi khối
gồm 128 bit. Cho trước khối văn bản p và một khối chốt k, hàm mã hóa AES E sẽ khôi phục lại
khối đã được mã hóa c:
c = E(p, k) .
Nghịch đảo của hàm mã hóa E là hàm giải mã D như sau:
D ( E(p, k), k ) = p , E ( D(c, k), k ) = c .
Trong hàm mã hóa AES kép, hai khối chốt khác nhau k1 và k2 được dùng liên tục nhau theo thứ tự
k1, k2:
c2 = E ( E(p, k1), k2 ).
Trong bài toán này, cho trước cả số nguyên s. Chỉ xét 4*s bit ở tận cùng bên trái của một trong số
chuỗi, còn lại các bít khác (128 bit tận cùng bên phải trừ đi các bit 4*s) đều là 0.
Hãy khôi phục cặp khối chốt của một số đoạn văn bản được AES mã hóa hai lần. Cho trước đoạn
văn bản chưa mã hóa p và đoạn văn bản đã mã hóa hai lần tương ứng c2, và cấu trúc của khối mã
hóa được biểu diễn bằng s.
Thuật toán mã hóa và giải mã AES có sẵn trong thư viện
.
Bạn phải đưa ra khối khôi phục thay vì chương trình khôi phục.
INPUT
Cho trướs 10 bộ dữ liệu trong các tệp văn bản có tên từ double1.in đến double10.in.
Một tệp input chứa 3 dòng. Dòng đầu tiên chứa số nguyên s, dòng thứ hai chứa văn bản chưa mã
hóa p, dòng dòng thứ ba chứa văn bản đã mã hóa hai lần c2 từ p bằng thuật toán AES kép. Cả hai
khối đều là các chuỗi gồm 32 ký tự theo hệ thập luc phân ('0'..'9', 'A'..'F').
OUTPUT
Hãy đưa ra 10 tệp output tương ứng với 10 tệp input. Mỗi tệp output cũng gồm 3 dòng. Dòng thứ
nhất chứa #FILE double I trong đó I là số thứ tự tệp input. Dòng thứ hai chứa khối chốt
k1, và dòng thứ ba chứa khối chốt k2, sao cho
c2 = E ( E(p, k1), k2 ).
Cả hai khối đều là chuỗi gồm 32 ký tự theo hệ thập lục phân ('0' '9' 'A' 'F') Nếu có nhiều giải
Page 1