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] Xác thực chữ ký RSA textbook

    Trong lược đồ chữ ký số RSA dạng textbook (không băm, không đệm), bên ký sở hữu khóa bí mật ddd và công bố khóa công khai (n,e)(n, e)(n,e). Với bản tin mmm (biểu diễn dưới dạng số nguyên, 0≤m<n0 \le m < n0≤m<n), chữ ký được tính là s=md mod ns = m^d \bmod ns=mdmodn.

    Bên xác minh chỉ có (n,e)(n, e)(n,e) và cặp (m,s)(m, s)(m,s), kiểm tra tính hợp lệ bằng công thức:

    se mod n=?ms^e \bmod n \overset{?}{=} msemodn=?m

    Nếu đẳng thức đúng thì chữ ký hợp lệ, ngược lại là không hợp lệ. Lưu ý: bài toán chỉ yêu cầu kiểm tra công thức toán học trên, không cần biết khóa bí mật ddd.

    Cho bốn số nguyên n,e,m,sn, e, m, sn,e,m,s, hãy xác định chữ ký sss có hợp lệ với bản tin mmm dưới khóa công khai (n,e)(n, e)(n,e) hay không.

    Ví dụ: với n=3233,e=17,m=65,s=588n = 3233, e = 17, m = 65, s = 588n=3233,e=17,m=65,s=588, ta có 58817 mod 3233=65=m588^{17} \bmod 3233 = 65 = m58817mod3233=65=m, nên chữ ký hợp lệ, in ra HOP LE.

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

      Một dòng duy nhất gồm 4 số nguyên không âm n,e,m,sn, e, m, sn,e,m,s cách nhau bởi khoảng trắng (2≤n<10202 \le n < 10^{20}2≤n<1020, 0≤m,s<n0 \le m, s < n0≤m,s<n, 1≤e<n1 \le e < n1≤e<n).

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

      In ra HOP LE nếu se mod n=ms^e \bmod n = msemodn=m, ngược lại in ra KHONG HOP LE (in hoa, không dấu, đúng chính tả như trên).

    Ví dụ:

    Đầu vào:

    3233 17 65 588

    Đầu ra:

    HOP LE
    

    Đầu vào:

    3233 17 65 589

    Đầu ra:

    KHONG HOP LE
    

    Đang tải editor...