Tôi đang tìm cách mã hóa chuỗi này bằng khóa chung trong đó thông báo kết quả có < 64 ký tự.
Trên thực tế, có vẻ như bạn có thể, nếu bạn cắt giảm bảo mật chỉ một chút.
Một cách tiếp cận sẽ được sử dụng ECIES với, giả sử, P-192. (EC-Elgamal cũng sẽ khả thi - Tôi nghĩ đây là một cách tiếp cận ưu việt)
Trong sơ đồ này, khóa riêng là một giá trị ngẫu nhiên $r$, và khóa công khai là một giá trị $P = rG$, ở đâu $G$ là điểm máy phát điện. Để mã hóa, chúng tôi chọn một giá trị ngẫu nhiên $s$, và tính toán cả hai $sG$ và $sP$; chúng tôi gửi điểm $sP$ (hoặc, trong trường hợp của bạn, chỉ tọa độ x) thông qua Hàm dẫn xuất khóa, hàm này tạo khóa mà chúng tôi sử dụng để mã hóa thông báo thực tế. Bản mã bao gồm giá trị $sG$ (trong trường hợp của bạn, chỉ tọa độ x) và mã hóa đối xứng.
Bây giờ, nếu chúng ta sử dụng đường cong P-192, tọa độ x của $sG$ có thể được biểu thị bằng 192 bit; sử dụng bảng chữ cái mà chúng tôi đã cung cấp (có 81 ký hiệu), sẽ mất 31 ký tự (ví dụ: bằng cách chuyển đổi giá trị từ 0 sang khoảng $2^{192}$ vào căn 81).
Đối với mã hóa đối xứng của tin nhắn, chúng ta có thể sử dụng phương pháp Mã hóa bảo toàn định dạng [1]; điều này có thể chuyển đổi một tin nhắn bao gồm một bảng chữ cái gồm 81 ký hiệu thành một bản mã có cùng độ dài và bảng chữ cái.
Vì vậy, mã hóa gồm 31 ký hiệu (số lớn nhất mà bạn nói rằng bạn quan tâm) sẽ mã hóa dưới dạng tin nhắn gồm 31+31 = 62 ký hiệu - theo yêu cầu của bạn.
Chi phí an ninh:
P-192 có "bảo mật 96 bit"; đó là hơi ít hơn chúng ta thường sử dụng - tuy nhiên, nó vẫn còn khá tốt.
Chúng tôi tiết lộ độ dài của tin nhắn (vì phương pháp Mã hóa bảo toàn định dạng bảo toàn độ dài); nếu đó là một yêu cầu bổ sung, bạn luôn có thể đệm tin nhắn thành 32 byte (với ký tự cuối cùng cho biết độ dài thực của tin nhắn) - với điều này, chúng tôi vẫn đáp ứng yêu cầu về độ dài
[1]: Thông thường, với ECIES, chúng tôi sử dụng biến đổi toàn vẹn rõ ràng trong mã hóa đối xứng. Tôi cho rằng điều đó là không cần thiết trong trường hợp này - bất kỳ sửa đổi nào của FPE sẽ giải mã dưới dạng một thứ gì đó ngẫu nhiên và kẻ thù luôn có thể thay thế bản mã bằng thứ gì đó giải mã thành thứ gì đó ngẫu nhiên (bằng cách đơn giản là chọn một bản rõ ngẫu nhiên và mã hóa nó với khóa công khai).