Sự cố với trình tạo số ngẫu nhiên giả One-Time-Pad


7

Tôi đã bắt đầu học mật mã trong lớp và chúng tôi đã bắt gặp One-Time-Pad, trong đó khóa (được thống nhất thống nhất) miễn là chính thông điệp đó. Sau đó, bạn biến tin nhắn thành bit, làm và lấy văn bản mật mã. Điều này mã hóa tin nhắn và để giải mã tin nhắn bạn thực hiện với các mật mã và bit chính.XORXOR

Bây giờ để tạo ra One-Time-Pad hiệu quả hơn, bạn sử dụng trình tạo số giả ngẫu nhiên, trong đó khóa gốc dài bit (và không phải dài như thông báo). Sau đó, bạn đặt khóa vào trình tạo và nhận số giả ngẫu nhiên. Nhưng vì nó là giả ngẫu nhiên, nên người gửi và người nhận có nhận được các khóa khác nhau không? Sau đó, làm thế nào người nhận có thể giải mã tin nhắn nếu họ không có cùng khóa?n


Nếu vấn đề cốt lõi của bạn là về PRNG, khóa có thể được sử dụng làm hạt giống (không thực sự tốt cho OTP). Nếu cả hai bên sử dụng cùng một hạt giống (cho cùng một trình tạo) thì các chuỗi được tạo là như nhau.
Ác

Cả hai bên sử dụng cùng một khóa. Sử dụng PRNG, họ mở rộng nó thành một chuỗi chung trông ngẫu nhiên dài hơn nhiều, hoạt động như một bộ đệm một lần.
Yuval Filmus

Bạn có biết PRNG hoạt động như thế nào không?
dùng253751

11
Chỉ là một gợi ý cho các câu hỏi trong tương lai, có toàn bộ trang web trao đổi Stack chuyên về Mật mã học .
Paŭlo Ebermann

Câu trả lời:


17

Bạn dường như đã hiểu nhầm chìa khóa là gì.

Trong bối cảnh mã hóa đối xứng, khóa là một bí mật được chia sẻ : một cái gì đó được cả người gửi và người nhận biết. Đối với OTP, khóa là toàn bộ phần đệm và nếu hai người muốn mã hóa một số tin nhắn bằng OTP, họ phải đảm bảo trước rằng họ có một phần đệm đủ dài để làm điều đó.

Đối với OTP "hiệu quả" được đề xuất của bạn, chìa khóa là hạt giống PRNG: cả hai bên phải đảm bảo trước rằng họ biết điều đó. Sau đó, cả hai đều khởi tạo PRNG với cùng một hạt giống và nó được đảm bảo tạo ra cùng một chuỗi các số "ngẫu nhiên" cho mỗi số đó.

Tuy nhiên, lưu ý rằng đây là một sự suy yếu lớn, lớn của OTP. Một OTP thực tế mang lại sự bảo mật hoàn hảo, miễn là phần đệm được giữ bí mật. Nếu bạn chặn tin nhắn 17 ký tự

nsmklmfmwnfmngner

bạn không có kiến ​​thức về việc đó là

maketrumpthepotus

được mã hóa bằng một pad, hoặc

ensureclintonwins

được mã hóa với một pad khác nhau. Hoặc là

kittensarethebest

hoặc nghĩa đen bất cứ điều gì khác. Tuy nhiên, sử dụng bảng giả ngẫu nhiên có nghĩa là chỉ có một số bảng nhất định là có thể (có thể không có khóa nào mã hóa thông điệp mèo con thành "nsmklmfmwnfmngner", vì vậy bạn có thể loại trừ điều đó). Bất cứ ai biết thuật toán PRNG đều có thể bắt đầu đoán các khóa để cố gắng giải mã tin nhắn. Bất cứ ai nắm bắt được một số vật liệu pad có thể bắt đầu cố gắng đảo ngược kỹ thuật PRNG. Bất cứ ai chụp tin nhắn được mã hóa đều có thể bắt đầu thử tương tự.

Bạn thực sự không nên gọi nó là OTP trừ khi tài liệu chính dài bằng tin nhắn. Đề xuất của bạn về việc sử dụng PRNG chỉ là một cypher stream chung.


4
Tôi nghĩ điều đáng nói là OTP hiệu quả và khả thi trong trường hợp bạn có kênh liên lạc băng thông cao an toàn (ví dụ: liên hệ cá nhân), nhưng đó là tạm thời và bạn muốn gửi thông tin băng thông thấp một cách an toàn sau này. Ví dụ: đưa miếng đệm một lần của bạn cho điệp viên của bạn trước khi triển khai; sau đó anh ta có thể sử dụng nó để gửi tin nhắn ngắn gọn một cách an toàn miễn là miếng đệm kéo dài.
tự đại diện

@Wildcard người ta vẫn nên kết hợp nó với MAC để đảm bảo tin nhắn không bị sửa đổi trong quá trình.
Paŭlo Ebermann

8
"Bạn thực sự không nên gọi nó là OTP trừ khi tài liệu chính dài bằng tin nhắn." và không bao giờ được sử dụng lại . Do đó, một lần . Một điều khác (với PRNG) là btw. chỉ được gọi là mật mã dòng.
Jonas Schäfer

@JonasWielicki "Điều khác (với PRNG) là btw. Chỉ được gọi là mật mã dòng." Er, tôi đã nói rằng trong câu sau khi bạn trích dẫn!
David Richerby

@DavidR Richby Hà. Làm thế nào tôi đã bỏ lỡ điều đó.
Jonas Schäfer

11

Bây giờ để tạo One-Time-Pad hiệu quả hơn, bạn sử dụng trình tạo số giả ngẫu nhiên

Không, không và một lần nữa không. Tôi lo ngại rằng đây là những gì bạn đang được dạy. Khái niệm hoàn toàn cơ bản về một miếng đệm một lần và khái niệm bí mật hoàn hảo có thể chứng minh về mặt toán học là vật liệu đệm thực sự ngẫu nhiên. Và nó không bao giờ được sử dụng lại , dù chỉ một lần. Nó không thể được tạo ra bởi bất kỳ hình thức thuật toán. Các số ngẫu nhiên phải đến từ một quá trình vật lý như ném xúc xắc, nhiễu điện hoặc nhiễu photon trong chùm tia laser phân tách. Nếu bạn tạo chúng bằng bất kỳ loại thuật toán / mã nào thì đó chỉ là một mật mã luồng như RC4 hoặc cấu trúc AES.

Duyệt qua các câu hỏi được gắn thẻ một lần tại crypto.se. Điều đó sẽ cho bạn biết tất cả mọi thứ. Quan trọng hơn, bạn sẽ đọc được nhiều nỗ lực cải thiện hoặc làm cho bảng đệm một lần hiệu quả hơn . Tất cả chúng đều là dầu rắn, cho dù chúng có thể xuất hiện như thế nào.


1
Reg. Không thể tạo ra được bất kỳ dạng thuật toán nào. Nói chung về mặt kỹ thuật, ngay cả khi bạn sử dụng quy trình vật lý làm nguồn entropy, thì khóa thực tế nói chung vẫn sẽ được tạo bởi thuật toán: một thuật toán phân phối đồng đều từ các phép đo thô , khác, nó cũng không hoàn toàn an toàn. Chỉ cần, thuật toán đó phải bắt đầu với nhiều bit ngẫu nhiên hơn khóa sẽ có.
leftaroundabout

@leftaroundabout Tất nhiên là bạn đúng. Tôi không muốn làm vẩn đục nước đã đục với cuộc thảo luận về các máy chiết ngẫu nhiên.
Paul Uszak

7

Trình tạo giả ngẫu nhiên là một thuật toán xác định, đưa ra một hạt ngẫu nhiên ngắn trả về một chuỗi giả ngẫu nhiên đánh lừa một số đối thủ nhất định (tức là những đối thủ như vậy sẽ không thể phân biệt đầu ra của trình tạo với một chuỗi thực sự ngẫu nhiên). Lưu ý rằng việc cho phép trình tạo tung đồng xu làm cho toàn bộ điều này không thú vị, vì bạn chỉ có thể trả về một đầu ra thực sự ngẫu nhiên.

Trong trường hợp đó, chìa khóa có thể là hạt giống , và người nhận có thể tính để giải mã thông điệp (từ là xác định, tính toán này mang lại kết quả tương tự cho cả hai bên).sG(s)G


1
Lưu ý rằng nhiều "trình tạo số ngẫu nhiên" trong máy tính sử dụng hỗn hợp ngẫu nhiên thực và giả ngẫu nhiên, và do đó, không hoạt động cho khóa giả "khóa ngắn" này cũng như để tạo ra một bảng đệm một lần thực sự an toàn đã được chứng minh.
Paŭlo Ebermann
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.