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] Mã hóa văn bản ASCII theo từng ký tự bằng RSA

    Cho khóa công khai RSA (n,e)(n, e)(n,e) sinh từ p,qp, qp,q nguyên tố (n>126n > 126n>126) và một chuỗi văn bản SSS chỉ gồm các ký tự ASCII in được (mã từ 32 đến 126), có thể chứa khoảng trắng và cũng có thể là chuỗi rỗng. Với mỗi ký tự cic_ici​ trong SSS, gọi mi=ord(ci)m_i = \text{ord}(c_i)mi​=ord(ci​) là mã ASCII của nó. Hãy mã hóa từng ký tự:

    yi=mie mod ny_i = m_i^e \bmod nyi​=mie​modn

    Ví dụ: p=61p = 61p=61, q=53q = 53q=53, e=17e = 17e=17 ⇒n=3233\Rightarrow n = 3233⇒n=3233. Với S=S = S= "Hi": ký tự 'H' có mã ASCII 72, ký tự 'i' có mã ASCII 105; y1=7217 mod 3233=3000y_1 = 72^{17} \bmod 3233 = 3000y1​=7217mod3233=3000, y2=10517 mod 3233=3179y_2 = 105^{17} \bmod 3233 = 3179y2​=10517mod3233=3179.

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

      Dòng 1: ba số nguyên p q ep\ q\ ep q e (2≤p,q≤1062 \le p, q \le 10^62≤p,q≤106, p,qp, qp,q nguyên tố, p≠qp \ne qp=q, n=pq>126n=pq>126n=pq>126, gcd⁡(e,φ(n))=1\gcd(e,\varphi(n))=1gcd(e,φ(n))=1). Dòng 2: chuỗi SSS (có thể chứa khoảng trắng ở đầu/giữa/cuối, độ dài từ 0 đến 200, có thể rỗng).

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

      In ra các giá trị y1,y2,…y_1, y_2, \ldotsy1​,y2​,… cách nhau bởi dấu cách trên một dòng theo đúng thứ tự ký tự trong SSS. Nếu SSS rỗng, in ra một dòng trống.

    Ví dụ:

    Đầu vào:

    61 53 17
    Hi

    Đầu ra:

    3000 3179
    

    Đầu vào:

    13 17 7
    

    Đầu ra:

    
    

    Đang tải editor...