Điểm:1

Lấy số ngẫu nhiên từ số ngẫu nhiên

lá cờ ua

Nếu tôi có một "số thực sự ngẫu nhiên" $K$ của $L$ bit (bất kể "ngẫu nhiên thực sự" có nghĩa là gì... đó có phải là giá trị từ phân phối bình thường, một số thực sự ngẫu nhiên hay chỉ các phân phối thống nhất mới được coi là "ngẫu nhiên thực sự"?) và "số thực sự ngẫu nhiên" $T$ của $M \le L$ chút ít,

thuật toán số học/bitwise nào trong số $K$$T$ có thể tạo ra các số thực sự ngẫu nhiên mới không? Nếu $M=L$, Là $K + T$ hoặc $K\ xor\ T$ một số thực sự ngẫu nhiên? hoặc nếu $M\lt L$, làm các phương pháp như HKDF-mở rộng-nhãn, HKDF-trích xuất, hoặc chỉ sha256 trên $K$$T$ tạo ra các số thực sự ngẫu nhiên? (ví dụ: chia $K$ Trong $L/M$ khối của $M$ bit, hãy áp dụng một số phương pháp này và ghép các đầu ra của chúng).

Tôi muốn biết thêm về những thuộc tính nào được yêu cầu cho một thuật toán xác định để tạo ra các số thực sự ngẫu nhiên miễn là đầu vào của nó là các số thực sự ngẫu nhiên.

Một vài dự đoán (giả sử $M=L$ để đơn giản), $K + T$ là một số thực sự ngẫu nhiên, nhưng $K\ bitwise\_and\ T$ không phải.

GHI CHÚ: Câu hỏi của tôi là về ngữ cảnh của mật mã pad một lần. Tôi muốn lưu trữ văn bản mật mã và $K$ một cách riêng biệt và chỉ chuyển nó qua một kênh bảo mật khi cần giải mã, nhưng thay vì chuyển $K$ chính nó, có thể rất dài vì nó phải khớp với độ dài của bản rõ (có thể rất dài), tôi đang tính toán $K$ bằng nguồn gốc từ $J$ (có kích thước $L$) và $T$ kích thước $M$, cả hai đều là số ngẫu nhiên. $J$ được lưu trữ phía máy khách, $T$ được lưu trữ phía máy chủ và được tìm nạp qua một kênh an toàn và $K$ cuối cùng được dẫn xuất phía máy khách và bị loại bỏ khỏi bộ nhớ ngay sau khi giải mã. Câu hỏi của tôi ở trên cuối cùng là về việc sử dụng hàm phái sinh nào để $K$ không thể phân biệt được với một số thực sự ngẫu nhiên giả sử $J$$T$ thực sự là những con số ngẫu nhiên.

Maarten Bodewes avatar
lá cờ in
Có vẻ như bạn đang nhầm lẫn giữa $M$ (số bit của $T$) và $T$ trong câu hỏi của mình.
sanscrit avatar
lá cờ ua
@MaartenBodewes Vâng, bạn đã đúng. Cảm ơn bạn. Đã sửa ngay bây giờ.
Maarten Bodewes avatar
lá cờ in
Tôi nghĩ bạn đã quên mất 4 trong số đó, đã cố gắng sửa chúng, vui lòng xem lại.
Điểm:3
lá cờ cn

Bạn đã hỏi rất nhiều câu hỏi trong câu hỏi này, nhưng có ba câu hỏi nổi bật: -

bất kể "thực sự ngẫu nhiên" có nghĩa là gì ... đó có phải là giá trị từ phân phối bình thường, một số thực sự ngẫu nhiên hay chỉ các phân phối thống nhất mới được coi là "thực sự ngẫu nhiên"?

Không. Một số thực sự ngẫu nhiên (phân phối) chỉ đơn giản là phi đại số, không thể đoán trước công thái học. Nó không có hạt giống và không có công thức tạo ra. Nó chỉ có thể được phân loại theo thống kê nhóm rất cơ bản. một cuộc sống thực ví dụ đây có phải là bản phân phối từ một thiết bị dựa trên diode Zener không: -

biểu đồ

không tên thường được chấp nhận cho phân phối này. Nó có giá trị trung bình và độ lệch chuẩn, nhưng không có lượng tử đại số, độ lệch hoặc entropy. Nó chỉ tồn tại theo kinh nghiệm (với $H_\infty \khoảng 6$ bit/byte).

Tôi muốn biết thêm về những thuộc tính nào được yêu cầu cho một thuật toán xác định để tạo ra các số thực sự ngẫu nhiên miễn là đầu vào của nó là các số thực sự ngẫu nhiên.

Tài sản chính duy nhất là $ \operatorname{X}: \{0,1\}^n \to \ \{0,1\}^m $ với $ m \lt n $. $X$ có thể có rất nhiều thứ như trình trích xuất von Neumann, hàm CRC, ma trận, LFSR và hàm băm chung (phổ quát). Tuy nhiên, một điểm quan trọng là $X$ không có bất kỳ dạng chức năng mật mã nào. Thật sai lầm khi nghĩ như vậy, nhưng tính bảo mật phát sinh từ các bit đầu vào thực sự ngẫu nhiên có độ dài $n$.

Tôi đang nghĩ đến việc lưu trữ phía máy khách một số ngẫu nhiên J có độ dài L, chuyển một "mã thông báo ngẫu nhiên thực sự" T được tạo trước thay vào đó (được gắn duy nhất với văn bản cụ thể đó) và tạo K... phía máy khách.

bạn thực tế nâng cao bàn phím một lần :-( Trừ khi bạn đang nói về phân phối khóa lượng tử, điều đó là không thể, nhưng đây là một nỗ lực phổ biến trên diễn đàn này. Tôi không hiểu chính xác về đề xuất của bạn, nhưng quà tặng là cụm từ tạo ra. Các miếng đệm một lần không được tạo phía máy khách, mà tập trung vào kiến ​​trúc một đến một hoặc một đến nhiều. Bất cứ điều gì khác là một quá trình giả ngẫu nhiên hoặc cấu trúc mật mã dòng.

sanscrit avatar
lá cờ ua
Tôi đã cải thiện ghi chú cuối cùng của câu hỏi. Tôi hy vọng nó rõ ràng hơn bây giờ.
Điểm:2
lá cờ ru

Xét về các toán tử số học bit/bitwise trên các số ngẫu nhiên độc lập được phân phối đồng đều (mật mã thường sử dụng ngẫu nhiên thống nhất, nhưng có những trường hợp ngoại lệ, ví dụ: trong mật mã mạng), XOR đưa ra phân phối đồng đều, + phân phối tam giác VÀ đưa ra phân phối trong đó $P(N)=0,25^{w(N)}0,75^{L-w(N)}$ ở đâu $w$ là trọng lượng Hamming, sản phẩm là phức tap, sự khác biệt là hình tam giác, OR cung cấp phân phối như AND nhưng với vai trò của $w(N)$$L-w(N)$ ngược lại, NOR có cùng phân phối với AND, NAND có cùng phân phối với OR.

Tác động của các hàm băm mật mã đối với đầu vào đồng nhất thường không được biết là đồng nhất, nhưng thường được mô hình hóa như vậy.

Đối với bộ đệm một lần, bạn sẽ muốn phân phối đồng đều trên tất cả các khóa có cùng độ dài với văn bản gốc. Một hàm băm phổ quát sẽ đạt được điều này, nhưng hãy đảm bảo rằng các đầu vào là bí mật, được phân phối phù hợp và chỉ được sử dụng một lần.

sanscrit avatar
lá cờ ua
Vì vậy, dựa trên câu trả lời của bạn, tôi giả sử rằng nếu tôi có hai khóa A và B có L bit entropy mỗi khóa, A xor B sẽ vẫn có L bit entropy phải không?
Daniel S avatar
lá cờ ru
Vâng, đó là trường hợp, giả sử rằng thế hệ của họ là độc lập. (Một ví dụ phản đối rõ ràng là A=B).
Điểm:1
lá cờ fr

Tất cả các thuật toán bạn đã đề cập (HKDF và SHA-256) là giả ngẫu nhiên. Nói chung, bất kỳ cách tiếp cận nào bạn sẽ sử dụng ở đây để mở rộng một số số thực sự ngẫu nhiên thành các chuỗi khác cũng là giả ngẫu nhiên. Đó là bởi vì các thuật toán này mang tính xác định: nếu bạn đặt cùng một dữ liệu (entropy), thì bạn sẽ nhận được kết quả tương tự.

Các số ngẫu nhiên thực sự đến từ một nguồn vật lý và không mang tính quyết định. Đó có thể là sự phân rã phóng xạ, nhiễu nhiệt, bộ tạo dao động tự do hoặc các loại nguồn khác. Bởi vì những thứ này không nhất thiết tạo ra số lượng 1 và 0 bằng nhau và lỗi không phải là không xác định, nên thường có một số loại lọc và xử lý, có thể là một thuật toán mã hóa như AES-CBC-MAC hoặc SHA-256 hoặc một số loại loại bỏ hoặc giảm sai lệch như khử sai lệch XORing hoặc Von Neumann hoặc cả hai.

Nếu bạn đã sử dụng TRNG và tạo ra các bit ngẫu nhiên, bạn có thể XOR chúng với nhiều bit hơn từ TRNG và nhận được cùng mức bảo mật, nhưng điều này thật ngớ ngẩn vì bạn đang sử dụng gấp đôi số bit từ TRNG mà không đạt được mức bảo mật nào. Tương tự, bạn có thể thực hiện phép cộng mô-đun trên các byte có hai giá trị TRNG, nhưng một lần nữa, điều này có cùng giới hạn. Bitwise AND thiên vị đầu ra, do đó, nó sẽ làm suy yếu tính bảo mật.

Vì bất kỳ thuật toán nào để mở rộng đầu ra của TRNG sẽ là giả ngẫu nhiên thay vì thực sự ngẫu nhiên, nên về cơ bản, những gì bạn đang đề xuất nghe giống như mật mã luồng với khóa chia sẻ trước dựa trên TRNG. Tuy nhiên, đó là hoàn toàn tốt như một thiết kế! Miễn là bạn chọn một mật mã dòng an toàn, thì đó là một thiết kế hợp pháp và an toàn. Tuy nhiên, mật mã dòng không phải là bộ đệm dùng một lần và không được chứng minh là an toàn, nhưng chúng thuận tiện hơn rất nhiều khi sử dụng trong cuộc sống thực.

Nếu bạn chọn thực hiện phương pháp này, tôi thực sự khuyên bạn nên chọn một thư viện hiện có, được thiết kế tốt để xây dựng phương pháp này. TLS có hỗ trợ cho các khóa chia sẻ trước và tất nhiên có những thư viện khác cũng có thể thực hiện việc này cho các tin nhắn.

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