Mục đích trong việc đưa ra các hệ số của $r(x)$ nhỏ không phải là làm cho cuộc sống của kẻ tấn công trở nên khó khăn, mà là làm cho cuộc sống của người nhận dự định trở nên khả thi.
nhớ lại rằng $h(X)$ được chọn có dạng
$$h(X)\equiv \frac{g(X)p}{f(X)}\pmod q$$
trong đó các hệ số của $f(X)$ và $g(X)$ nhỏ và bí mật, $p$ là một số nguyên tố nhỏ so với $q$ và $q$ là lớn so với tất cả các số lượng nhỏ.
Bây giờ hãy xem xét giải mã bắt đầu bằng phép nhân của $c(X)$ qua $f(X)$ cho
$$c(X)f(X)\equiv r(X)g(X)p+m(X)f(X)\pmod q$$
nếu các hệ số của $f$, $g$, $m$ và $r$ đều nhỏ thì với xác suất cao chúng ta có thể viết
$$c(X)f(X)= r(X)g(X)p+m(X)f(X)$$
trên các số nguyên không rút gọn modulo $q$ bằng cách làm tròn hệ số về 0 (nghĩa là ép buộc vào khoảng $[-q/2,q/2]$). Mặt khác, nếu $r(X)$ có bất kỳ lớn (so với $q$) hệ số, chúng tôi gần như chắc chắn không thể làm điều này.
Nếu quá trình làm tròn của chúng tôi thành công thì chúng tôi có thể xóa phần đóng góp của $r(X)$ bằng cách giảm modulo $p$ và sau đó phục hồi $m(X)$.
Lưu ý rằng quy trình làm tròn không được đảm bảo thành công khi mức độ tăng lên và do đó, NTRUEncrypt có xác suất thất bại phụ thuộc vào kích thước và mức độ hệ số và chúng tôi phải cố gắng giữ ở mức thấp. Cũng lưu ý rằng sự thất bại có thể phụ thuộc vào sự lựa chọn của $m(X)$ điều này có thể cho phép kẻ tấn công chủ động lấy thông tin về khóa riêng (một lần nữa với xác suất mà chúng tôi cố gắng giữ ở mức nhỏ).
bạn nói đúng đó $r(X)\pmod q$ có thể được phục hồi bằng cách giải một CVP, bất kể kích thước của các hệ số của nó (giả sử rằng các hệ số của $m(X)$ nhỏ).