Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Phá mã Caesar bằng phân tích tần suất chữ cái

    Trong tiếng Anh, các chữ cái xuất hiện với tần suất đặc trưng (ví dụ chữ E xuất hiện nhiều nhất). Vì mật mã Caesar chỉ dịch chuyển đều tất cả chữ cái theo cùng một khóa kkk, phân bố tần suất của bản mã chỉ là một phép xoay vòng của phân bố tần suất bản rõ. Do đó có thể phá mã bằng cách thử từng khóa k∈[0,25]k \in [0,25]k∈[0,25], và chọn khóa làm cho phân bố tần suất chữ cái của bản rõ giải mã ra "giống" tiếng Anh chuẩn nhất, đo bằng thống kê chi-squared:

    χ2(k)=∑i=025(Oi−Ei)2Ei\chi^2(k) = \sum_{i=0}^{25} \frac{(O_i - E_i)^2}{E_i}χ2(k)=∑i=025​Ei​(Oi​−Ei​)2​

    trong đó OiO_iOi​ là số lần xuất hiện thực tế của chữ cái thứ iii trong bản rõ ứng với khóa kkk, Ei=fi×nE_i = f_i \times nEi​=fi​×n là số lần xuất hiện kỳ vọng (fif_ifi​ là tần suất chuẩn theo bảng dưới đây, nnn là tổng số ký tự chữ cái trong văn bản). Khóa được chọn là khóa có χ2(k)\chi^2(k)χ2(k) nhỏ nhất; nếu có nhiều khóa cùng cho χ2\chi^2χ2 nhỏ nhất, chọn khóa nhỏ nhất trong số đó.

    Bảng tần suất chữ cái tiếng Anh chuẩn (không phân biệt hoa/thường):

    Chữ Tần suất (%) Chữ Tần suất (%) Chữ Tần suất (%)
    A 8.167 J 0.153 S 6.327
    B 1.492 K 0.772 T 9.056
    C 2.782 L 4.025 U 2.758
    D 4.253 M 2.406 V 0.978
    E 12.702 N 6.749 W 2.360
    F 2.228 O 7.507 X 0.150
    G 2.015 P 1.929 Y 1.974
    H 6.094 Q 0.095 Z 0.074
    I 6.966 R 5.987

    Cho một đoạn văn bản tiếng Anh SSS đã được mã hóa Caesar (chữ hoa/thường và các ký tự không phải chữ cái được giữ nguyên vị trí, chỉ chữ cái bị dịch chuyển), hãy tìm khóa kkk đã dùng để mã hóa theo phương pháp trên, rồi giải mã toàn bộ SSS.

    Ví dụ (rút gọn): nếu SSS được mã hóa với k=3k=3k=3 từ một đoạn văn tiếng Anh dài, thuật toán trên sẽ tìm ra k=3k=3k=3 và khôi phục đúng đoạn văn gốc.

    • Định dạng đầu vào:

      Một dòng duy nhất chứa văn bản SSS (độ dài từ 000 đến 200020002000 ký tự, gồm chữ hoa, chữ thường, dấu câu, khoảng trắng, chữ số; không chứa ký tự xuống dòng).

    • Định dạng đầu ra:

      In ra 2 dòng: dòng 1 là khóa kkk (0≤k≤250 \le k \le 250≤k≤25) tìm được; dòng 2 là bản rõ giải mã tương ứng, giữ nguyên định dạng hoa/thường và các ký tự không phải chữ cái như SSS.

    Ví dụ:

    Đầu vào:

    N fznyy yvoenel va gur gbja pragre erpragyl nqqrq n arj ernqvat ebbz sbe puvyqera, svyyrq jvgu pbybeshy punvef naq furyirf bs cvpgher obbxf. Ibyhagrref betnavmr jrrxyl fgbel frffvbaf gurer, rapbhentvat lbhat ernqref gb rkcyber qvssrerag traerf naq funer gurve snibevgr gnyrf jvgu sevraqf sebz arneol fpubbyf.

    Đầu ra:

    13
    A small library in the town center recently added a new reading room for children, filled with colorful chairs and shelves of picture books. Volunteers organize weekly story sessions there, encouraging young readers to explore different genres and share their favorite tales with friends from nearby schools.
    

    Đầu vào:

    Uif xfbuifs sfqpsu gps ofyu xffl tvhhftut b hsbevbm dibohf gspn dmpvez tljft up csjhiu tvotijof, xjui ufnqfsbuvsft sjtjoh tufbejmz fbdi ebz. Sftjefout bsf bewjtfe up lffq bo fzf po uif gpsfdbtu boe qmbo pvuepps bdujwjujft bddpsejohmz, tjodf tveefo tipxfst nbz tujmm pddvs evsjoh uif usbotjujpo qfsjpe cfuxffo uif uxp xfbuifs qbuufsot.

    Đầu ra:

    1
    The weather report for next week suggests a gradual change from cloudy skies to bright sunshine, with temperatures rising steadily each day. Residents are advised to keep an eye on the forecast and plan outdoor activities accordingly, since sudden showers may still occur during the transition period between the two weather patterns.
    

    Đang tải editor...