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] Tính khóa bí mật chung Diffie–Hellman

    Alice và Bob thống nhất công khai số nguyên tố ppp và cơ số ggg. Alice chọn khóa bí mật aaa, Bob chọn khóa bí mật bbb. Alice tính A=ga mod pA = g^{a} \bmod pA=gamodp và gửi AAA cho Bob; Bob tính B=gb mod pB = g^{b} \bmod pB=gbmodp và gửi BBB cho Alice (giả sử không có kẻ tấn công can thiệp). Sau đó:

    • Alice tính khóa chung: K=Ba mod pK = B^{a} \bmod pK=Bamodp
    • Bob tính khóa chung: K=Ab mod pK = A^{b} \bmod pK=Abmodp

    Hai giá trị này luôn bằng nhau và bằng K=gab mod pK = g^{ab} \bmod pK=gabmodp.

    Cho TTT bộ bốn số (p,g,a,b)(p, g, a, b)(p,g,a,b), hãy tính khóa bí mật chung KKK mà cả hai bên thu được.

    Ví dụ: p=23, g=5, a=6, b=15p=23,\ g=5,\ a=6,\ b=15p=23, g=5, a=6, b=15. Alice tính A=56 mod 23=8A = 5^{6} \bmod 23 = 8A=56mod23=8, sau đó K=815 mod 23=2K = 8^{15} \bmod 23 = 2K=815mod23=2.

    • Định dạng đầu vào:
      • Dòng đầu tiên chứa số nguyên TTT (1≤T≤10001 \le T \le 10001≤T≤1000).
      • TTT dòng tiếp theo, mỗi dòng chứa bốn số nguyên p g a bp\ g\ a\ bp g a b, trong đó ppp là số nguyên tố (2≤p≤1092 \le p \le 10^{9}2≤p≤109), 1≤g≤p−11 \le g \le p-11≤g≤p−1, 0≤a,b≤1090 \le a, b \le 10^{9}0≤a,b≤109.
    • Định dạng đầu ra:

      In ra TTT dòng, dòng thứ iii là khóa bí mật chung K=gab mod pK = g^{ab} \bmod pK=gabmodp của bộ dữ liệu thứ iii.

    Ví dụ:

    Đầu vào:

    1
    2 1 1 1
    

    Đầu ra:

    1
    

    Đầu vào:

    2
    23 5 6 15
    101 2 10 20
    

    Đầu ra:

    2
    1
    

    Đang tải editor...