हम जानते हैं, Mersenne ट्विस्टर is not crytographically secure:क्या कोई सी ++ 11 सीएसपीआरएनजी है?
Mersenne ट्विस्टर क्रिप्टोग्राफी द्वारा सुरक्षित नहीं है। (एमटी एक रैखिक प्रत्यावर्तन पर आधारित है। किसी भी कूट-यादृच्छिक संख्या अनुक्रम एक रैखिक प्रत्यावर्तन द्वारा उत्पन्न, असुरक्षित है के बाद से निर्गम की पर्याप्त लंबी subsequencje से, एक आउटपुट के बाकी भविष्यवाणी कर सकते हैं।)
लेकिन कई स्रोत, जैसे Stephan T. Lavavej और यहां तक कि this website। सलाह लगभग हमेशा (शब्दशः) इस तरह Mersenne ट्विस्टर उपयोग करने के लिए है:
auto engine = mt19937{random_device{}()};
वे std::tm
जोड़ तोड़ की std::seed_seq
या जटिल तरीके का उपयोग कर की तरह अलग अलग रूपों में आता है, है, लेकिन यह सबसे आसान तरीका है।
हालांकि std::random_device
is not always reliable:
std::random_device
एक कार्यान्वयन से परिभाषित छद्म यादृच्छिक संख्या इंजन के मामले में लागू किया जा सकता है, तो एक गैर नियतात्मक स्रोत (जैसे एक हार्डवेयर डिवाइस) के लिए उपलब्ध नहीं है कार्यान्वयन । इस मामले में प्रत्येकstd::random_device
ऑब्जेक्ट समान संख्या अनुक्रम उत्पन्न कर सकता है।
/dev/urandom
बनाम /dev/random
बहस rages on।
लेकिन मानक पुस्तकालय पीआरएनजी का एक अच्छा संग्रह प्रदान करता है, लेकिन ऐसा लगता है कि यह कोई भी सीएसपीआरएनजी प्रदान नहीं करता है। मैं पॉज़िक्स, लिनक्स-केवल हेडर इत्यादि का उपयोग करने के बजाय मानक लाइब्रेरी से चिपकना पसंद करता हूं। क्या मेर्सन ट्विस्टर को क्रिप्टोग्राफिक रूप से सुरक्षित बनाने के लिए इस्तेमाल किया जा सकता है?
डाउनवॉटर के लिए, मैं अपना प्रश्न कैसे सुधार सकता हूं? – user5287986
डाउनवॉटर नहीं (वास्तव में ऊपर से ऊपर), लेकिन मुझे लगता है कि आपको लिंक क्लिक करने योग्य बनाना चाहिए। – dandan78
* क्या मेर्सन ट्विस्टर को क्रिप्टोग्राफ़िक रूप से सुरक्षित बनाने के लिए छेड़छाड़ की जा सकती है? * नहीं –