Điểm:2

Luỹ thừa của máy phát điện đồng dư tuyến tính

lá cờ us

Trình tạo công thức tuyến tính, lớp trình tạo ngẫu nhiên giả đó với quy tắc đệ quy

$x_{n+1}\equiv a\cdot x_n +b\ \ (\mod m)$, $a,b,x_n\in Z/mZ$, $m,n\in N$

được coi là không phù hợp để sử dụng trong mật mã, vì các hằng số $a$, $b$ có thể bằng cách suy ra từ một tập hợp nhỏ các kết quả đầu ra $x_n$. Bây giờ, khi bạn chọn $m=p-1$ cho một số nguyên tố lẻ $p$, trình tự $(x_n)_{n\in N}$ có thể sống dưới dạng số mũ của một số trình tạo $g$ của nhóm tuần hoàn nhân $Z/pZ^*$, như $y_n:=g^{x_n}, n\in N$:

$y_{n+1}\equiv g^{x_{n+1}}\equiv g^{a\cdot x_n+b}\equiv (g^{x_n})^a\cdot g^b\equiv y_n ^a\cdot g^b\ (\mod p)$

Đây là một chuỗi lũy thừa tương đương.

Phân phối bình đẳng đi kèm với thời gian tối đa. Điều kiện cho thời gian tối đa $m$ của trình tự $(y_n)_{n\in N}$ được đưa ra bởi Định lý Knuth

  1. $gcd(m,b)=1$
  2. Đối với sự phân hủy nguyên tố $m=:\prod p_i^{\alpha_i}$ và tất cả các thừa số nguyên tố $p_i$: $\ \ \ p_i/(a-1)$
  3. $m\equiv 0\ (\mod 4) \ngụ ý a-1\equiv 0\ (\mod 4)$

Như $m=p-1$ chẵn và có rất ít số nguyên tố đồng dạng $p=2^k+1$, thành phần phổ biến dễ nhất của $p-1$ từ số nguyên tố sẽ là $p-1=2^k\cdot p'$, $k\geq 1$ với $p'$ một số nguyên tố khác.

Theo điều kiện thứ 2 lựa chọn nhỏ nhất của $a$ là bởi $a-1=2\cdot p'$. Để tránh trường hợp tầm thường $a-1=m$, $k\geq 2$ là cần thiết. Với điều này, chúng tôi chạy vào điều kiện thứ 3, do đó $a-1$ có ít nhất hai lần yếu tố $2$. Một lần nữa, tránh trường hợp tầm thường đòi hỏi $k\geq 3$.

Bây giờ, một cặp nguyên tố $(p,p')$ phù hợp với phương trình tuyến tính $p=8p'+1$ cho phép lựa chọn không tầm thường $a-1=4p'$ và với điều này, chuỗi sức mạnh $(y_n)$ có thể có thời gian tối đa $m$.

Câu hỏi: Vì chúng ta có 3 tham số ẩn $g, g^a,g^b$ và việc tìm logarit trong các nhóm nhân được coi là khó khăn, phải chăng dãy số ngẫu nhiên $(y_n){n\in N}$ được coi là an toàn để sử dụng trong mật mã; có những lựa chọn tốt hơn cho hằng số $a$?

CHỈNH SỬA $g$ thực sự không quan trọng bằng tham số, khi chúng ta tăng quyền hạn lên $a$, ngoài ra ở đâu $p$ không được biết từ đầu ra, tức là các tham số chưa biết là $(p, a, g^b)$ .

Điểm:2
lá cờ my

Một số quan sát:

  • Duy trì $a$ bí mật là rất quan trọng. Nếu đối thủ biết điều đó và nhìn thấy $y_i, y_{i+1} = (y_i^a) \cdot g^b$, anh ta có thể tính toán $g^b = y_{i+1} \cdot y_i^{-a}$, rồi tiếp tục tính phần còn lại của dãy.

Bạn có thể nói "nhưng chúng tôi cho rằng nhật ký rời rạc khó" - tuy nhiên, bạn cũng đề xuất $p = 8p'+1$$a-1 = 4p'$, đó là, $a = (p+1)/2$; điều đó sẽ làm cho phục hồi $a$ dễ dàng.

  • Bài kiểm tra axit thực sự đối với CSRNG là liệu một đối thủ (người biết mọi thứ trừ các giá trị bí mật) có thể phân biệt đầu ra của CSRNG với một chuỗi thực sự ngẫu nhiên có cùng phân phối xác suất hay không.

Bây giờ nếu $g$ là một trình tạo của toàn bộ nhóm, hóa ra có thể dễ dàng xác định xem $x$ là chẵn hay lẻ từ $g^x \bmod p$. Với trình tạo của bạn, bit thấp hơn này sẽ luôn xen kẽ giữa 'chẵn' và 'lẻ' với liên tiếp $y_i$ các giá trị, do đó làm cho nó có thể phân biệt được.

Những gì chúng ta thường làm khi sử dụng các trường hữu hạn là cố tình làm việc trong một nhóm con có kích thước nguyên tố (rõ ràng không thể là toàn bộ $\mathbb{Z}_p^*$ tập đoàn); ngăn chặn kẻ tấn công khôi phục bất kỳ thông tin nào của $x$ từ $g^x$.

Tất nhiên, làm điều này làm giảm kích thước của khoảng thời gian - tuy nhiên, miễn là khoảng thời gian dài hơn, giả sử, $2^{64}$ (lớn hơn nhiều so với số lượng đầu ra mà chúng tôi thực tế sẽ tạo ra), nó đủ lớn.

Đặt điều này lại với nhau, tôi sẽ đề xuất ý tưởng thay thế tương tự này:

  • Rơi vãi $b$; thay vào đó, sử dụng một cách đơn giản $y_{i+1} = (y_i)^a \bmod p$ máy phát điện.

  • Chọn một số nguyên tố $p = kp' + 1$, ở đâu $p'$ là một số nguyên tố Sophie-Germain, nghĩa là, $(p'-1)/2$ cũng là nguyên tố. $p$ phải đủ lớn để làm cho vấn đề nhật ký rời rạc trở nên khó khăn (ví dụ: ít nhất 2048 bit) và $p'$ phải đủ lớn để làm cho vấn đề nhật ký rời rạc trong nhóm con trở nên khó khăn (ví dụ: ít nhất 256 bit; tuy nhiên, nó có thể lớn hơn nhiều, ví dụ: $k=2$ là thiết thực).

  • Lựa chọn $y_0$ là thành viên (ngoài 1) của nhóm con có kích thước $p'$

  • Lựa chọn $a > 0$ là một giá trị ngẫu nhiên mà $a^{(p'-1)/2} \bmod p' \ne 1$ (điều này sẽ đúng với một nửa giá trị có thể có của $a$)

Điều này sẽ tạo ra một chuỗi thời gian $p'-1$ (rất dài); xem Định lý 3.2.1.2.C từ Knuth. Và bởi vì $a$ có thể được chọn từ một số lượng lớn các khả năng, nó không thể đoán được.

Bây giờ, cả hai phiên bản sẽ không phải là một thực tế CSRNG (thực hiện lũy thừa mô-đun cho mỗi đầu ra khá chậm - chúng tôi có CSRNG tốt hơn nhiều); Tôi tin rằng nó giải quyết câu hỏi của bạn.

lá cờ us
Cảm ơn bạn, phản hồi chính xác! Vì vậy, bạn sẽ bỏ phân phối bằng nhau để ẩn a tốt hơn. Sẽ xem xét điều này. Không chắc chắn, làm thế nào p và do đó dễ dàng được phát hiện: Thông thường bạn cắt bớt đầu ra một số phạm vi 2^n và có rất nhiều số nguyên tố giữa 2^n+1 và 2^(n+1)-1
poncho avatar
lá cờ my
@SamGinrich: tốt, nếu $p$ cũng là bí mật, điều đó sẽ thay đổi mọi thứ đáng kể. Tất nhiên, nếu $p$ là bit nguyên tố $n+1$ và bạn cắt bớt thành $n$ bit, thì các bit đó sẽ không được phân phối đều (trừ khi bạn cẩn thận chọn $p$ chỉ hơn $2^n$ hoặc chỉ dưới $2^{n+1}$
lá cờ us
Xin lỗi, câu hỏi của tôi không chính xác về các biến không xác định, đã thêm một CHỈNH SỬA.

Đă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.