Từ hiểu biết của tôi, lớp Random
tạo ra các giá trị ngẫu nhiên dựa trên "thuật toán ngẫu nhiên Psuedo", vì vậy trên thực tế chúng không phải là ngẫu nhiên. chúng dựa trên việc thực hiện cụ thể một thuật toán toán học, do đó kết quả có thể dự đoán được. Vì vậy, nếu tôi đã cố gắng để phá vỡ thuật toán này, cho một vi phạm an ninh, không phải là tôi sẽ, tôi cần phải biết một số thông tin: Tôi biết những gì các thuật toán là, nó có thể truy cập công khai thông qua. Net khuôn khổ, các là gì giá trị đầu vào (hạt giống)?
Một lần nữa bạn không thể chỉ làm phép thuật các giá trị đầu vào này, chúng phải dựa trên một cái gì đó, vì vậy cái gì?
Trong ví dụ bạn đang cố gắng, như tôi đã hiểu, để tạo ra tất cả các giá trị hạt giống có thể có. Điều này giống như bạn nói mất một thời gian dài!
Nhưng tại sao tôi lại làm điều này? cách tiếp cận thông minh nhất là thử và đoán những gì bạn sử dụng để tạo ra các giá trị đầu vào của bạn? tức là bạn đang sử dụng thời gian? Khi nào mật khẩu được đặt lại? Mật khẩu này được tạo khi nào? Những gì các tập hợp các giá trị này cung cấp cho tôi? Bạn sử dụng số lượng lớn như thế nào?
Nếu bạn có thể thử nghiệm 6 triệu hạt trong một ngày, có bao nhiêu giá trị áp dụng một số logic thu hẹp tập hợp các giá trị có thể xuống? Nếu đó là < 6 triệu tôi có thể phá vỡ mật khẩu của bạn sau 24 giờ.
Điều đó nói rằng nếu bạn có thể làm cho tập con của bạn của hạt giống đủ lớn và không đủ khả năng thì điều này là khó khăn. Vì vậy, các câu hỏi, giống như nhiều thứ trong an ninh đi xuống làm, làm thế nào an toàn này cần phải được? Không có gì 100%!
Tại sao không chỉ hiển thị cho họ phản hồi từ Eric Lippert và câu hỏi bạn đã liên kết? Nó thậm chí còn cho thấy một ví dụ về việc tạo số ngẫu nhiên mã hóa - nếu bạn đang cố gắng thuyết phục tâm trí kinh doanh, thì chỉ nhắc đến từ mật mã nên làm việc :-P –
Tôi nghĩ rằng bạn có logic theo cách sai. Nếu có một ứng dụng quan trọng về bảo mật, gánh nặng là trên những người đề xuất một giải pháp để chứng minh rằng giải pháp đáp ứng các yêu cầu bảo mật. Tôi nghi ngờ bất cứ ai có thể làm điều này cho lớp ngẫu nhiên của NET. Các PRNG được sử dụng trong các ứng dụng mã hóa đã xác định các thuộc tính bảo mật, vì vậy có thể cho thấy chúng đáp ứng các yêu cầu được xác định. –