Trong mã hoá đối xứng kiểu Regev, một bit μ∈{0,1} được đóng gói thành c=⟨a,s⟩+e+μ⌊q/2⌋(modq) với e nhỏ. Người biết s giải mã bằng cách tính
v=(c−⟨a,s⟩)modq,
đưa về dạng cân trong (−q/2,q/2], rồi kết luận μ=1 nếu v gần q/2 (điều kiện 4∣v∣>q), ngược lại μ=0.
Ví dụ: q=8, a=(1,1), s=(1,1), c=7: v=(7−2)mod8=5→−3, 4⋅3=12>8⇒μ=1.
Dòng 1: n q. Dòng 2: n số của a. Dòng 3: n số của s. Dòng 4: số nguyên c.
1≤n≤100; 4≤q≤109; nhiễu đủ nhỏ để giải mã đúng.
Một số nguyên: bit giải mã (0 hoặc 1).
Ví dụ:
Đầu vào:
2 8
1 1
1 1
7
Đầu ra:
1
Giải thích:
Đang tải editor...