Tôi đã nghiên cứu bài viết của Wieschebrink "Cryptanalysis of the Niederreiter Public Key Scheme Based on GRS Codes". Trong bài báo, một hệ thống mật mã sử dụng mã GRS được trình bày với một cuộc tấn công được đề xuất cho hệ thống mật mã, cuộc tấn công này là cuộc tấn công Sidelnikov-Shestakov (tốt, thực ra là một công thức cải tổ từ cuộc tấn công ban đầu mà ít nhất đối với tôi là dễ hiểu hơn).
Trong cuộc tấn công, bạn cố gắng khôi phục hệ số nhân và bộ đánh giá tạo mã GRS bằng với mã ban đầu. Trong một phần của nó, bạn kết thúc bằng các phương trình có dạng:
$$ \frac{b_{1,j}}{b_{2,j}}(\alpha_j-\alpha_1)=\frac{c_{b_1}}{c_{b_i}}(\alpha_j-\alpha_2) $ $
cho một số giá trị nhất định của $j$ với $\alpha_j$ và $\frac{c_{b_1}}{c_{b_i}}$ như những ẩn số. Mục tiêu của bạn là để phục hồi này $\alpha_j$, ở đâu $\alpha_j$ là những người đánh giá mã. Phương trình này không thể được giải trực tiếp (hai ẩn số và một phương trình) nhưng trong cuộc tấn công, họ đoán một giá trị của $\frac{c_{b_1}}{c_{b_i}}$ và làm việc thông qua nó.
Vấn đề là, quá trình đoán này làm tôi khó chịu, vì trong bài báo không giải thích tại sao lại đảm bảo rằng bạn kết thúc thành công. Tôi hiểu rằng nếu bạn đoán đúng thì bạn sẽ thành công, nhưng điều gì xảy ra khi bạn đoán sai? Tôi cho rằng bạn có thể kết thúc khôi phục các tham số không phù hợp với mã GRS, trong trường hợp này, một số $\alpha_j$ đó là bằng $\alpha_i$ vì $i\neq j$, và bạn sẽ biết dự đoán của mình là sai, nhưng liệu có khả năng cuối cùng bạn khôi phục các tham số của mã GRS không "bằng" với mã ban đầu không? Như vậy, cuộc tấn công sẽ thất bại.