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] Khóa chung Diffie–Hellman

    Trong giao thức trao đổi khóa Diffie–Hellman, hai bên Alice và Bob thống nhất công khai một số nguyên tố ppp và một phần tử sinh ggg (1<g<p1 < g < p1<g<p). Alice chọn khóa bí mật aaa, Bob chọn khóa bí mật bbb (đều là số nguyên dương). Alice gửi A=ga mod pA = g^a \bmod pA=gamodp cho Bob, Bob gửi B=gb mod pB = g^b \bmod pB=gbmodp cho Alice. Khóa chung mà hai bên tính được là

    K=Ba mod p=Ab mod p=gab mod p.K = B^a \bmod p = A^b \bmod p = g^{ab} \bmod p.K=Bamodp=Abmodp=gabmodp.

    Cho p,g,a,bp, g, a, bp,g,a,b, hãy tính khóa chung KKK.

    Ví dụ: với p=23,g=5,a=6,b=15p=23, g=5, a=6, b=15p=23,g=5,a=6,b=15, ta có A=56 mod 23=8A = 5^6 \bmod 23 = 8A=56mod23=8, K=A15 mod 23=2K = A^{15} \bmod 23 = 2K=A15mod23=2.

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

      Một dòng duy nhất chứa bốn số nguyên p g a bp\ g\ a\ bp g a b cách nhau bởi khoảng trắng (2≤p<1092 \le p < 10^{9}2≤p<109 là số nguyên tố, 1≤g<p1 \le g < p1≤g<p, 1≤a,b≤10181 \le a, b \le 10^{18}1≤a,b≤1018).

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

      In ra một số nguyên duy nhất là giá trị KKK (0≤K<p0 \le K < p0≤K<p).

    Ví dụ:

    Đầu vào:

    2 1 5 7
    

    Đầu ra:

    1
    

    Đầu vào:

    23 5 6 15
    

    Đầu ra:

    2
    

    Đang tải editor...