Điểm:0

ElGamal, tin nhắn > p

lá cờ in

Giả sử rằng chúng ta có:

p = 89
g = 5
khóa công khai: 17
khóa riêng: 73

Nếu chúng tôi cố gắng mã hóa thông báo M = 53 (M < p), thì chúng tôi nhận được (c1, c2) == (55, 67) và thông báo tiếp theo sẽ giải mã tốt.

Tuy nhiên, nếu chúng ta cố mã hóa tin nhắn M = 91 (M > p), thì chúng ta nhận được (c1, c2) == (44, 57) và các lần giải mã tin nhắn khác không thành công (kết quả là "2").

Có 3 câu hỏi:

  • Tại sao nó xảy ra?
  • Có thể khôi phục tin nhắn gốc M nếu chúng ta biết thực tế là (m > p) đã sử dụng, p, g, khóa công khai và có (c1, c2)?
  • Có thể khôi phục tin nhắn gốc M nếu chúng ta biết sự thật rằng (m > p) đã sử dụng, p, g, khóa chung và có một số tin nhắn được mã hóa (c1, c2)?
kelalaka avatar
lá cờ in
Điều này rất nổi tiếng nếu bạn biết cách hoạt động của mô đun; mô-đun làm tròn lên. Bạn cần chia thư của mình thành các khối trong đó mỗi phần phải là $
kelalaka avatar
lá cờ in
[Wikipedia](https://en.wikipedia.org/wiki/ElGamal_encryption) tuyên bố điều này _Ánh xạ thông báo $M$ tới một phần tử $m$ của $G$ bằng cách sử dụng hàm ánh xạ đảo ngược._. Bạn có thể khôi phục tin nhắn của mình nếu bạn thực sự sử dụng mô-đun chính xác không?
DBenson avatar
lá cờ in
@kelalaka, nếu tôi không phân chia tin nhắn của mình thì sao? Đó có phải là sai lầm nghiêm trọng?
kelalaka avatar
lá cờ in
Chúng tôi muốn các sơ đồ mã hóa không thể đảo ngược, tức là quá trình giải mã phải (!) Trả lại những gì chúng tôi đã mã hóa. Đây được gọi là [chức năng của hệ thống mã hóa](https://crypto.stackexchange.com/a/88339/18298). Hoạt động mô-đun hoạt động trong mô-đun. Các thư viện tự động giảm bớt và thông tin bị mất. Bạn nên tìm hiểu một số số học mô-đun, số học CPU và kết nối của chúng.
Điểm:3
lá cờ ng

Tại sao nó xảy ra?

Điều này xảy ra bởi vì, theo phương thức số học 89, các số $2$$91$ là tương đương: $91 \bmod 89 = 2$. Bạn thường sẽ thấy điều này được ký hiệu là $91 \equiv 2 \pmod{89}$.

Nếu bạn chưa quen với số học mô-đun - thì đây cũng giống như cách tính giờ $0$$12$ trên đồng hồ truyền thống là tương đương - nó "bao bọc".

Có thể khôi phục thông điệp gốc M nếu chúng ta biết thực tế là (m > p) đã sử dụng, p, g, khóa công khai và có (c1, c2)?

Không nói chung, trong khi vẫn cho phép giải mã tin nhắn $m < p$.

trong một cụ thể trường hợp, trong đó bạn có một bản mã và biết rằng thông điệp ban đầu đã có trong e.g. $[2p, 3p - 1]$, bạn có thể khôi phục nó bằng cách thêm phần bù thích hợp sau khi giải mã.

Trong thực tế, điều này không đặc biệt hữu ích, vì vậy như đã đề cập trong các nhận xét ở trên, người ta chia nhỏ thông báo $m$ vào trong $m_1, \ldots, m_n$ như vậy mà $m_i < p$. Mỗi tin nhắn một phần sau đó được mã hóa riêng lẻ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.