ඔබ, මම සහ අප දෙදෙනාම විශ්වාස කරන සේවාදායකයක් පමණක් පරිගණක පෝකර් ගහමු. අපි සෙල්ලම් කිරීමට පෙර සේවාදායකයා ව්යාජ සසම්භාවී සංඛ්යා උත්පාදක යන්ත්රයක් භාවිතා කරයි. එබැවින් තට්ටු බිලියන හතරක් පමණ තිබිය හැකිය.
මගේ අතේ කාඩ්පත් පහක් ඇත - පෙනෙන විදිහට අපි ටෙක්සාස් හෝල්ඩ් එම් සෙල්ලම් කරන්නේ නැත. කාඩ්පත් මට එකක්, ඔබට එකක්, මට එකක්, එකක් ඔබට, සහ යනාදී වශයෙන් ගනුදෙනු කර ඇතැයි සිතමු. ඒ නිසා මම තට්ටුවේ පළමු, තෙවන, පස්වන, හත්වන සහ නවවන කාඩ්පත් ඇත.
මීට පෙර මම ව්යාජ සසම්භාවී සංඛ්යා උත්පාදක යන්ත්රය බිලියන හතරක් වරක් ධාවනය කළෙමි, එක් එක් බීජ සමඟ එක් වරක්, එක් එක් බීජ සමඟ එක් වරක් ජනනය කළ පළමු කාඩ්පත දත්ත ගබඩාවකට ලියා තැබුවෙමි. මගේ පළමු කාඩ්පත ස්පා ades ් of යේ රැජින යැයි සිතමු. එමඟින් පෙන්විය හැකි සෑම තට්ටු 52 න් එකක පළමු කාඩ්පත ලෙස එකක් පමණක් පෙන්වයි, එබැවින් අපි හැකි තට්ටු බිලියන හතරේ සිට මිලියන 80 ක් හෝ ඊට අඩු කර ඇත.
මගේ දෙවන කාඩ්පත හදවත් තුන යැයි සිතමු. පළමු අංකය ලෙස ස්පා ades ් of යේ රැජින නිපදවන බීජ මිලියන 80 භාවිතා කරමින් මම දැන් මගේ ආර්එන්ජී මිලියන 80 වාරයක් ධාවනය කරමි. මෙය මට තත්පර කිහිපයක් ගතවේ. හදවත් තුන නිපදවන සියලුම තට්ටු මම තුන්වන කාඩ්පත ලෙස සටහන් කරමි - මගේ අතේ දෙවන කාඩ්පත. එය නැවතත් තට්ටු වලින් 2% ක් පමණයි, එබැවින් දැන් අපි තට්ටු මිලියන 2 ක් දක්වා පහත බැස ඇත.
මගේ අතේ ඇති තුන්වන කාඩ්පත සමාජ ශාලා 7 යැයි සිතමු. මගේ කාඩ්පත් දෙක සමඟ කටයුතු කරන බීජ මිලියන 2 ක දත්ත ගබඩාවක් මා සතුව ඇත; තුන්වන කාඩ්පත ලෙස සමාජ ශාලා 7 නිපදවන තට්ටු වලින් 2% ක් සොයා ගැනීමට මම තවත් මිලියන 2 වතාවක් මගේ RNG ධාවනය කරමි, අපි පහළට යන්නේ තට්ටු 40,000 ක් පමණි.
මෙය සිදුවන ආකාරය ඔබට පෙනේ. මගේ සිව්වන කාඩ්පත නිපදවන සියලුම බීජ සොයා ගැනීමට මම තවත් RNG 40000 වාරයක් ධාවනය කරමි, එය අපව තට්ටු 800 ක් දක්වා පහතට ඇද දමයි, ඉන්පසු මගේ පස්වන කාඩ්පත නිපදවන ~ 20 බීජ ලබා ගැනීම සඳහා තවත් 800 වතාවක් ධාවනය කරන්න, දැන් මම එම කාඩ්පත් තට්ටු විස්ස උත්පාදනය කරන්න, ඔබට හැකි අත් විස්සෙන් එකක් ඇති බව මම දනිමි. එපමණක් නොව, මම ඊළඟට අඳින්නේ කුමක් ද යන්න පිළිබඳව මට හොඳ අදහසක් ඇත.
සැබෑ අහඹු බව වැදගත් වන්නේ මන්දැයි දැන් ඔබට පෙනේද? ඔබ එය විස්තර කරන ආකාරය අනුව, බෙදා හැරීම වැදගත් යැයි ඔබ සිතන නමුත් බෙදා හැරීම යනු ක්රියාවලියක් අහඹු ලෙස සිදු නොවේ. අනාවැකි නොකිරීම යනු ක්රියාවලියක් අහඹු ලෙස සිදු කරයි.
යාවත්කාලීන කරන්න
(ඔවුන්ගේ ව්යුහාත්මක නොවන ස්වභාවය නිසා දැන් මකා දමා ඇත) අදහස් මත පදනම්ව, මෙය කියවා ඇති අයගෙන් අවම වශයෙන් 0.3% ක් මගේ අදහස අනුව ව්යාකූල වී සිටිති. මා විසින් සිදු නොකළ හෝ ඊට වඩා නරක දේට එරෙහිව මිනිසුන් තර්ක කරන විට, මම ඒවා නොකළෙමි යන උපකල්පනය මත මා කළ කරුණු සඳහා තර්ක කරන විට, මම වඩාත් පැහැදිලිව හා ප්රවේශමෙන් පැහැදිලි කළ යුතු බව මම දනිමි.
බෙදා හැරීම යන වචනය වටා විශේෂ ව්යාකූලතාවයක් ඇති බව පෙනේ, එබැවින් භාවිතයන් ප්රවේශමෙන් කැඳවීමට මට අවශ්යය.
දැනට ඇති ප්රශ්න:
- ව්යාජ සංඛ්යා සහ සැබවින්ම අහඹු සංඛ්යා වෙනස් වන්නේ කෙසේද?
- වෙනස වැදගත් වන්නේ ඇයි?
- පීආර්එන්ජී හි ප්රතිදානය බෙදා හැරීම සමඟ වෙනස්කම් වලට යම් සම්බන්ධයක් තිබේද?
අහඹු ලෙස කාඩ්පත් තට්ටුවක් ජනනය කිරීම සඳහා කදිම ක්රමයක් සලකා බැලීමෙන් පටන් ගනිමු . එවිට අපි බලමු තට්ටු උත්පාදනය සඳහා වෙනත් ශිල්පීය ක්රම වෙනස් වන්නේ කෙසේද, සහ එම වෙනසෙන් ප්රයෝජන ගත හැකි නම්.
අපට මැජික් පෙට්ටියක් ලේබල් කර ඇතැයි සිතීමෙන් ආරම්භ කරමු TRNG
. එහි ආදානය ලෙස අපි එයට පූර්ණ සංඛ්යාවක් n ට වඩා වැඩි හෝ සමාන වේ, සහ එහි ප්රතිදානය ලෙස එය අපට එක හා n අතර සැබවින්ම අහඹු සංඛ්යාවක් ලබා දෙයි. කොටුවේ ප්රතිදානය මුළුමනින්ම අනාවැකි කිව නොහැකි ය (එකක් හැර වෙනත් සංඛ්යාවක් ලබා දුන් විට) සහ එකක් සහ n අතර ඕනෑම සංඛ්යාවක් තවත් එකක් තරම් විය හැකිය; බව ඒ කියන්නේ බෙදාහැරීමේ වේ නිල ඇඳුම . (අපට කළ හැකි අහඹු බව පිළිබඳ තවත් දියුණු සංඛ්යාලේඛන චෙක්පත් තිබේ; එය මගේ තර්කයට ආවේණික නොවන බැවින් මම මෙම කරුණ නොසලකා හරිමි. TRNG උපකල්පනය අනුව සංඛ්යාත්මකව අහඹුයි.)
අපි ආරම්භ කරන්නේ නොකැඩූ කාඩ්පත් තට්ටුවකින්. අපි කොටුව ඉල්ලන්නේ එකක් සහ 52 අතර සංඛ්යාවක් - එනම් TRNG(52)
. එය කුමන අංකයක් ආපසු ලබා දුන්නද, අපි අපගේ කාඩ්පත් අපගේ වර්ග කළ තට්ටුවෙන් ගණන් කර එම කාඩ්පත ඉවත් කරමු. එය මාරු කළ තට්ටුවේ පළමු කාඩ්පත බවට පත්වේ. TRNG(51)
දෙවන කාඩ්පත තෝරා ගැනීම සඳහා අපි ඉල්ලා සිටිමු .
එය බැලීමට තවත් ක්රමයක් නම්: 52 ක් ඇත! = 52 x 51 x 50 ... x 2 x 1 විය හැකි තට්ටු, එය දළ වශයෙන් 2 226 කි. අපි ඒවායින් එකක් අහඹු ලෙස තෝරාගෙන ඇත්තෙමු.
දැන් අපි කාඩ්පත් සමඟ ගනුදෙනු කරමු. මම මගේ කාඩ්පත් දෙස බලන විට ඔබ සතුව ඇති කාඩ්පත් ගැන මට කිසිම අදහසක් නැත . (මා සතුව ඇති කාඩ්පත් කිසිවක් ඔබ සතුව නොමැති බව පැහැදිලිය.) ඒවා සමාන සම්භාවිතාවක් ඇති ඕනෑම කාඩ්පත් විය හැකිය.
එබැවින් මම මෙය පැහැදිලිව පැහැදිලි කිරීමට වග බලා ගන්න. එක් එක් නිමැවුමේ ඒකාකාර ව්යාප්තිය අප සතුව ඇත TRNG(n)
; එක් එක් සම්භාවිතාව 1 / n අතර 1 සහ n අතර සංඛ්යාවක් තෝරා ගනී. එසේම, මෙම ක්රියාවලියේ ප්රති result ලය වන්නේ අප 52 න් එකක් තෝරාගෙන තිබීමයි! 1/52 ක සම්භාවිතාව සමඟ හැකි තට්ටු !, එසේ බෙදාහැරීම හැකි තට්ටු කුලකයකි කට වේ ද නිල ඇඳුම.
කමක් නැහැ.
දැන් අපි අඩු ලේබල් සහිත මැජික් පෙට්ටියක් ඇතැයි සිතමු PRNG
. ඔබට එය භාවිතා කිරීමට පෙර, එය බිට් 32 අත්සන් නොකළ අංකයකින් බීජ කළ යුතුය .
32 : ඇයි ? එය 64- හෝ 256- හෝ බිට් 10000 අංකයකින් බීජ කළ නොහැකිද? ෂුවර්. නමුත් (1) ප්රායෝගිකව බොහෝ පීආර්එන්ජී බිටු 32 කින් යුක්ත වන අතර (2) බීජ සෑදීම සඳහා ඔබට බිටු 10000 ක් අහඹු ලෙස තිබේ නම් ඔබ කිසිසේත් පීආර්එන්ජී භාවිතා කරන්නේ ඇයි? ඔබට දැනටමත් බිටු 10000 ක අහඹු බවක් තිබේ!
කෙසේ වෙතත්, PRNG ක්රියා කරන ආකාරය වෙත ආපසු යන්න: එය බීජ දැමූ පසු, ඔබ භාවිතා කරන ආකාරයටම එය භාවිතා කළ හැකිය TRNG
. එනම්, ඔබ එය අංකයක් පසුකර යන අතර, එය ඔබට 1 සහ n අතර සංඛ්යාවක් ආපසු ලබා දෙයි. එපමණක් නොව, එම නිමැවුමේ ව්යාප්තිය වැඩි හෝ අඩු ඒකාකාරී වේ. එනම්, අපි PRNG
1 ත් 6 ත් අතර සංඛ්යාවක් ඉල්ලන විට , බීජ කුමක් වුවත්, දළ වශයෙන් හයෙන් එකක්, 1, 2, 3, 4, 5 හෝ 6 ලබා ගනී.
මට මෙම කරුණ කිහිප වතාවක් අවධාරණය කිරීමට අවශ්ය වන්නේ එය ඇතැම් විචාරකයින් ව්යාකූල කරන බැවිනි. PRNG හි ව්යාප්තිය අවම වශයෙන් ආකාර දෙකකින් ඒකාකාරී වේ. පළමුව, අපි කිසියම් විශේෂිත බීජයක් තෝරා ගනිමු යැයි සිතමු. PRNG(6), PRNG(6), PRNG(6)...
මිලියනයක වාරයක් 1 සිට 6 දක්වා සංඛ්යා ඒකාකාරව බෙදා හරිනු ඇතැයි අපි අපේක්ෂා කරමු. දෙවනුව, අපි විවිධ බීජ මිලියනයක් තෝරාගෙන එක් එක් බීජ සඳහා එක් PRNG(6)
වරක් කැඳවූයේ නම් , නැවතත් 1 සිට 1 දක්වා සංඛ්යා ඒකාකාරව බෙදා හැරීමක් අපේක්ෂා කරමු. 6. මෙම මෙහෙයුම් දෙකෙන්ම පීආර්එන්ජී හි ඒකාකාරිත්වය මා විස්තර කරන ප්රහාරයට අදාළ නොවේ .
මෙම ක්රියාවලිය ව්යාජ සසම්භාවී යැයි කියනුයේ කොටුවේ හැසිරීම සැබවින්ම මුළුමනින්ම නිර්ණය කරන බැවිනි; එය බීජ මත පදනම්ව කළ හැකි හැසිරීම් 2 32 න් එකක් තෝරා ගනී . එනම්, එය බීජ කළ පසු ඒකාකාර ව්යාප්තියක් සහිත සංඛ්යා අනුක්රමයක්PRNG(6), PRNG(6), PRNG(6), ...
නිපදවන නමුත් එම අනුක්රමය මුළුමනින්ම තීරණය වන්නේ බීජයෙනි. ලබා දී ඇති ඇමතුම් අනුක්රමයක් සඳහා, කියන්න, PRNG (52), PRNG (51) ... සහ එසේ නම්, හැකි අනුපිළිවෙලවල් 2 32 ක් පමණි . බීජ අවශ්යයෙන්ම අපට ලැබෙන්නේ කුමන එකක්ද යන්න තෝරා ගනී.
තට්ටුවක් ජනනය කිරීම සඳහා සේවාදායකයා දැන් බීජයක් ජනනය කරයි. (කෙසේද? අපි නැවත එම ස්ථානයට පැමිණෙමු.) ඉන්පසු ඔවුන් අමතයි PRNG(52)
, PRNG(51)
සහ පෙර පරිදිම තට්ටුව ජනනය කිරීම සඳහා.
මෙම ක්රමය මා විස්තර කළ ප්රහාරයට ගොදුරු වේ. අපි පළමුව සේවාදායකයට පහර දීමට පෙර, අපේ පෙට්ටියේ පිටපතක් 0 සමඟ බීජ කර එය ඉල්ලා සිටින්න PRNG(52)
. ඉන්පසු අපි 1 සමඟ නැවත බීජ, ඉල්ලන්න PRNG(52)
, සහ 2 32 -1 දක්වා එය ලියන්න .
දැන්, තට්ටු උත්පාදනය කිරීම සඳහා පීආර්එන්ජී භාවිතා කරන පෝකර් සේවාදායකයට කෙසේ හෝ බීජයක් ජනනය කළ යුතුය. ඔවුන් එසේ කරන්නේ කෙසේද යන්න ගැටළුවක් නොවේ. TRNG(2^32)
සැබවින්ම අහඹු බීජයක් ලබා ගැනීමට ඔවුන්ට ඇමතිය හැකිය. නැතහොත් ඔවුන්ට අහඹු ලෙස අහඹු ලෙස බීජයක් ලෙස වර්තමාන කාලය ගත හැකිය; මම දන්නවා ඔයා කොච්චර වෙලාවද කියලා. මගේ ප්රහාරයේ කාරණය වන්නේ එය මගේ දත්ත ගබඩාව ඇති බැවින් එය වැදගත් නොවේ . මගේ පළමු කාඩ්පත දුටු විට මට හැකි බීජ වලින් 98% ක් ඉවත් කළ හැකිය. මගේ දෙවන කාඩ් පත දුටු විට මට තවත් 98% ක් ඉවත් කළ හැකිය. එසේ කිරීමෙන් අවසානයේදී මට හැකි බීජ අතළොස්සක් දක්වා බැස ගත හැකි අතර ඔබේ අතේ ඇති දේ බොහෝ දුරට දැන ගත හැකිය.
දැන්, නැවතත්, මට අවධාරණය කිරීමට අවශ්ය වන්නේ මෙහි උපකල්පනය නම්, අපි PRNG(6)
මිලියනය වාරයක් ඇමතුවේ නම්, අපට සෑම අංකයක්ම දළ වශයෙන් හයෙන් එකක් ලැබෙනු ඇත. එම බෙදාහැරීම (වැඩි හෝ අඩු) ඒකාකාරී වන අතර , එම බෙදාහැරීමේ ඒකාකාරිත්වය ඔබ සැලකිලිමත් වන්නේ නම් , එය හොඳයි. ප්රශ්නයේ කාරණය වූයේ අප සැලකිලිමත් වන බෙදා හැරීම හැර වෙනත් දේවල් PRNG(6)
තිබේද? පිළිතුර ඔව් . අපි අනපේක්ෂිත බව ගැනත් සැලකිලිමත් වෙමු .
ගැටළුව දෙස බැලිය හැකි තවත් ක්රමයක් නම්, ඇමතුම් මිලියනයක් බෙදා හැරීම PRNG(6)
හොඳ විය හැකි වුවත්, පීආර්එන්ජී තෝරා ගත හැකි හැසිරීම් 2 32 කින් පමණක් තෝරාගෙන ඇති හෙයින් , හැකි සෑම තට්ටුවක්ම ජනනය කළ නොහැක. එය ජනනය කළ හැකි 2 226 න් 2 32 ක් පමණි ; ඉතා කුඩා කොටසක්. එබැවින් සියලු තට්ටු කට්ටලය පුරා බෙදා හැරීම ඉතා නරක ය. නමුත් නැවතත්, මෙහි මූලික ප්රහාරය පදනම් වී ඇත්තේ එහි නිමැවුමේ කුඩා නියැදියක අතීත සහ අනාගත හැසිරීම සාර්ථකව පුරෝකථනය කිරීමට අපට හැකිවීම මත ය . PRNG
මෙය ගිලෙන බවට වග බලා ගැනීම සඳහා තුන්වන හෝ හතර වතාවක් මෙය කියන්නම්. මෙහි බෙදාහැරීම් තුනක් තිබේ. පළමුව, අහඹු ලෙස බිටු 32 බීජ නිපදවන ක්රියාවලිය බෙදා හැරීම. එය පරිපූර්ණ අහඹු, අනපේක්ෂිත හා ඒකාකාරී විය හැකි අතර ප්රහාරය තවමත් ක්රියාත්මක වේ. දෙවනුව, ඇමතුම් මිලියනයක් බෙදා හැරීම PRNG(6)
. එය පරිපූර්ණ ලෙස ඒකාකාරී විය හැකි අතර ප්රහාරය තවමත් ක්රියාත්මක වනු ඇත. තෙවනුව, මා විස්තර කර ඇති ව්යාජ සසම්භාවී ක්රියාවලිය මඟින් තෝරාගත් තට්ටු බෙදා හැරීම. එම ව්යාප්තිය අතිශයින්ම දුර්වල ය; තෝරා ගත හැක්කේ අයිආර්එල් විය හැකි තට්ටු වලින් ඉතා සුළු කොටසක් පමණි. ප්රහාරය රඳා පවතින්නේ එහි ප්රතිදානය පිළිබඳ අර්ධ දැනුම මත පදනම්ව පීආර්එන්ජී හි හැසිරීමේ පුරෝකථනය මත ය .
ASIDE: මෙම ප්රහාරයට PRNG විසින් භාවිතා කරන නිශ්චිත ඇල්ගොරිතම කුමක්දැයි ප්රහාරකයා දැන ගැනීමට හෝ අනුමාන කිරීමට අවශ්ය වේ. එය යථාර්ථවාදීද නැද්ද යන්න විවෘත ප්රශ්නයකි. කෙසේ වෙතත්, ආරක්ෂක පද්ධතියක් සැලසුම් කිරීමේදී, ප්රහාරකයා වැඩසටහනේ සියලුම ඇල්ගොරිතමයන් දැන සිටියත්, ප්රහාර වලින් ආරක්ෂා වීමට ඔබ එය සැලසුම් කළ යුතුය . වෙනත් ක්රමයක් තබන්න: පද්ධතිය ආරක්ෂිත වීමට නම් රහසිගතව තිබිය යුතු ආරක්ෂක පද්ධතියක කොටස “යතුර” ලෙස හැඳින්වේ. ඔබ රහසක් ලෙස භාවිතා කරන ඇල්ගොරිතම මත ඔබේ පද්ධතිය රඳා පවතින්නේ නම් ඔබේ යතුරෙහි එම ඇල්ගොරිතම අඩංගු වේ . එය අතිශයින්ම දුර්වල තත්වයකි!
ඉදිරියට.
දැන් අපි තුන්වන මැජික් පෙට්ටියක් ලේබල් කර ඇතැයි සිතමු CPRNG
. එය ගුප්ත-ශක්තිමත් අනුවාදයකි PRNG
. එය බිට් 32 බීජයකට වඩා බිට් 256 බීජයක් ගනී. විය හැකි හැසිරීම් PRNG
2 256 න් එකකින් බීජ තෝරා ගන්නා දේපල සමඟ එය බෙදා ගනී . අපගේ අනෙකුත් යන්ත්ර මෙන්, CPRNG(n)
1 සහ n අතර ප්රති results ල ඒකාකාරව බෙදා හැරීම සඳහා විශාල ඇමතුම් සංඛ්යාවක් ඇති දේපල එහි ඇත : සෑම එකක්ම සිදුවන්නේ 1 / n වේ. අපට එයට එරෙහිව අපගේ ප්රහාරය මෙහෙයවිය හැකිද?
අපගේ මුල් ප්රහාරය සඳහා බීජ සිට සිතියම් 2 32 ගබඩා කිරීම අවශ්ය වේ PRNG(52)
. නමුත් 2 256 වඩා විශාල සංඛ්යාවක්; එය CPRNG(52)
බොහෝ වාරයක් ධාවනය කර ප්රති .ල ගබඩා කිරීම සම්පූර්ණයෙන්ම කළ නොහැකි ය .
නමුත් බීජ පිළිබඳ සත්යයක් උපකල්පනය කර එහි වටිනාකම ලබා ගැනීමට වෙනත් ක්රමයක් තිබේ යැයි සිතමු CPRNG(52)
? අපි මේ වන විට ගොළු වී සිටිමු. අපට මැජික් පෙට්ටිය ඇතුළත බැලීමට, එය ක්රියා කරන ආකාරය හදුනා ගැනීමට සහ ප්රතිදානය මත පදනම්ව බීජ පිළිබඳ කරුණු නිගමනය කළ හැකිද?
විස්තර කිරීමට නොහැකි තරමට සංකීර්ණ නමුත් සීපීආර්එන්ජී ඉතා දක්ෂ ලෙස නිර්මාණය කර ඇති අතර එමඟින් බීජ පිළිබඳ ඕනෑම ප්රයෝජනවත් කරුණක් පළමු නිමැවුමෙන් CPRNG(52)
හෝ නිමැවුමේ ඕනෑම උප කුලකයකින් කොතරම් විශාල වුවත් අඩු කර ගත නොහැක .
හරි, දැන් අපි හිතමු සේවාදායකය CPRNG
තට්ටු ජනනය කිරීමට භාවිතා කරයි. එයට බිට් 256 බීජයක් අවශ්යයි. එය එම බීජය තෝරා ගන්නේ කෙසේද? ප්රහාරකයාට පුරෝකථනය කළ හැකි කිසියම් වටිනාකමක් එය තෝරා ගන්නේ නම් හදිසියේම ප්රහාරය නැවත ශක්ය වේ. විය හැකි බීජ 2 256 න් අපට එය තීරණය කළ හැකි නම් , ඒවායින් බිලියන හතරක් පමණක් සේවාදායකයා විසින් තෝරා ගනු ලැබේ, එවිට අපි නැවත ව්යාපාරයට පිවිසෙමු . අපට නැවත මෙම ප්රහාරය දියත් කළ හැක්කේ, ජනනය කළ හැකි බීජ කුඩා සංඛ්යාව කෙරෙහි පමණක් අවධානය යොමු කිරීමෙනි.
එබැවින් 256-බිට් අංකය ඒකාකාරව බෙදා හැර ඇති බව සහතික කිරීම සඳහා සේවාදායකයා කටයුතු කළ යුතුය - එනම් හැකි සෑම බීජයක්ම 1/2 256 සම්භාවිතාවයකින් තෝරා ගනු ලැබේ . මූලික වශයෙන් සේවාදායකයා TRNG(2^256)-1
බීජ උත්පාදනය සඳහා ඇමතිය යුතුය CPRNG
.
තෝරාගත් බීජය කුමක්දැයි බැලීමට මට සේවාදායකය හැක් කර ඒ දෙස බැලීමට හැකි නම් කුමක් කළ යුතුද? එවැනි අවස්ථාවකදී, ප්රහාරකයා CPRNG හි සම්පූර්ණ අතීතය සහ අනාගතය දනී . සේවාදායකයාගේ කතුවරයා මෙම ප්රහාරයෙන් ආරක්ෂා විය යුතුය! (ඇත්ත වශයෙන්ම මට මෙම ප්රහාරය සාර්ථකව දියත් කළ හැකි නම්, බොහෝ විට මට මුදල් සෘජුවම මගේ බැංකු ගිණුමට මාරු කළ හැකිය, එබැවින් එය එතරම් සිත්ගන්නා සුළු නොවේ. කාරණය නම්: බීජ අනුමාන කිරීමට අපහසු රහසක් විය යුතු අතර, සැබවින්ම අහඹු 256-බිට් අංකය අනුමාන කිරීමට අපහසුය.)
ආරක්ෂාව පිළිබඳ මගේ කලින් කාරණය වෙත ආපසු යාම: බිට් 256 බීජය මෙම ආරක්ෂක පද්ධතියේ යතුරයි . CPRNG හි අදහස නම් යතුර සුරක්ෂිතව පවතින තාක් කල් පද්ධතිය ආරක්ෂිත බවයි ; ඇල්ගොරිතම පිළිබඳ අනෙක් සෑම කරුණක්ම දැන සිටියද, ඔබට ප්රධාන රහස තබා ගත හැකි තාක් කල්, ප්රතිවාදියාගේ කාඩ්පත් අනපේක්ෂිත ය.
හරි, ඒ නිසා බීජය රහසිගතව හා ඒකාකාරව බෙදා හැරිය යුතුයි. මන්ද එසේ නොවේ නම් අපට ප්රහාරයක් එල්ල කළ හැකියි. නිමැවුම් බෙදා හැරීම CPRNG(n)
ඒකාකාරී යැයි උපකල්පනය කිරීමෙන් අපට තිබේ . හැකි සෑම තට්ටුවකම බෙදා හැරීම ගැන කුමක් කිව හැකිද?
ඔබට මෙසේ පැවසිය හැකිය: සීපීආර්එන්ජී මඟින් අනුක්රමික ප්රතිදානය 2 256 ක් ඇත, නමුත් ඇත්තේ 2 226 තට්ටු පමණි. එබැවින් තට්ටුවලට වඩා අනුපිළිවෙලවල් ඇත, එබැවින් අපි හොඳින්; හැකි සෑම IRL තට්ටුවක්ම දැන් (ඉහළ සම්භාවිතාවක් සහිතව) මෙම පද්ධතිය තුළ කළ හැකිය. ඒ හැර හොඳ තර්කයක් ...
2 226 යනු ආසන්න වශයෙන් 52 ක් පමණි. එය බෙදන්න. 2 256/52 ! එක් දෙයක් සඳහා 52 විය හැකි නිසා සම්පූර්ණ සංඛ්යාවක් විය නොහැක. 3 න් බෙදිය හැකි නමුත් දෙදෙනෙකුගේ බලයක් නැත! මෙය සම්පූර්ණ සංඛ්යාවක් නොවන බැවින් දැන් අපට සියලු තට්ටු කළ හැකි තත්වයක් ඇත , නමුත් සමහර තට්ටු අනෙක් ඒවාට වඩා වැඩිය .
එය පැහැදිලි නැතිනම්, කුඩා සංඛ්යා සමඟ තත්වය සලකා බලන්න. අපට A, B සහ C කාඩ්පත් තුනක් ඇතැයි සිතමු. අපි බිට් 8 බීජයක් සහිත PRNG එකක් භාවිතා කරමු යැයි සිතමු, එබැවින් බීජ 256 ක් ඇත. PRNG(3)
බීජ මත පදනම්ව නිමැවුම් 256 ක් ඇත ; ඔවුන්ගෙන් තුනෙන් එකක් ඒ විය යුතු නැත, ඔවුන්ගෙන් තුනෙන් එකක් බී විය යුතු අතර ඉන් තුනෙන් එකක් සී විය යුතුය, මන්ද 256 ඒකාකාරව බෙදිය නොහැකි බැවිනි. ඔවුන්ගෙන් එක් අයෙකු කෙරෙහි කුඩා නැඹුරුවක් තිබිය යුතුය.
ඒ හා සමානව, 52 2 256 ට සමානව බෙදන්නේ නැත , එබැවින් පළමු කාඩ්පත තෝරාගත් විට සමහර කාඩ්පත් කෙරෙහි යම් නැඹුරුවක් තිබිය යුතු අතර අනෙක් අයගෙන් නැඹුරුතාවයක් තිබිය යුතුය.
බිට් 32 බීජයක් සහිත අපේ මුල් ක්රමයේ දැවැන්ත නැඹුරුවක් පැවති අතර හැකි තරම් තට්ටු කිසි විටෙකත් නිපදවා නැත. මෙම ක්රමය තුළ සියලුම තට්ටු නිෂ්පාදනය කළ හැකි නමුත් තට්ටු බෙදා හැරීම තවමත් දෝෂ සහිතය . සමහර තට්ටු අනෙක් ඒවාට වඩා තරමක් වැඩි ය.
දැන් ප්රශ්නය නම්: මෙම අඩුපාඩුව පදනම් කරගෙන අපට ප්රහාරයක් තිබේද? පිළිතුර ප්රායෝගිකව ඇත, බොහෝ විට නැත . සීපීආර්එන්ජී නිර්මාණය කර ඇත්තේ බීජ සැබවින්ම අහඹු නම්, සහ අතර වෙනස පැවසීමට පරිගණකමය වශයෙන් නොහැකි ය .CPRNG
TRNG
හරි, ඒ නිසා අපි සාරාංශ කරමු.
ව්යාජ සංඛ්යා සහ සැබවින්ම අහඹු සංඛ්යා වෙනස් වන්නේ කෙසේද?
ඔවුන් ප්රදර්ශනය කරන පුරෝකථන මට්ටමේ මට්ටමට වෙනස් වේ.
- සැබවින්ම අහඹු සංඛ්යා අනාවැකි කිව නොහැක.
- බීජය තීරණය කිරීමට හෝ අනුමාන කිරීමට හැකි නම් සියලු ව්යාජ සසම්භාවී සංඛ්යා පුරෝකථනය කළ හැකිය.
වෙනස වැදගත් වන්නේ ඇයි?
මන්ද, පද්ධතියේ ආරක්ෂාව අනපේක්ෂිත ලෙස රඳා පවතින යෙදුම් ඇති බැවිනි .
- සෑම කාඩ්පතක්ම තෝරා ගැනීමට TRNG භාවිතා කරන්නේ නම් පද්ධතිය අක්රීය වේ.
- සෑම කාඩ්පතක්ම තෝරා ගැනීමට CPRNG භාවිතා කරන්නේ නම් බීජ අනපේක්ෂිත හා නොදන්නා නම් පද්ධතිය ආරක්ෂිත වේ.
- කුඩා බීජ ඉඩක් ඇති සාමාන්ය පීආර්එන්ජී එකක් භාවිතා කරන්නේ නම් බීජ අනාවැකි කිව නොහැකි ද නැතිනම් පද්ධතිය ආරක්ෂිත නොවේ; මා විස්තර කර ඇති ආකාරයේ තිරිසන් බලවේග ප්රහාරයන්ට ගොදුරු වීමේ ඉඩකඩ ඉතා කුඩාය.
PRNG හි නිමැවුම් බෙදා හැරීම සමඟ වෙනස අතර යම් සම්බන්ධයක් තිබේද?
බෙදා හැරීම පිළිබඳ ප්රමිතියක් යටතට හෝ එවැන්නක් නොමැතිකම තනි ඇමතුම් සඳහා RNG(n)
මම විස්තර තියෙනවා ප්රහාර එල්ල කිරීම සඳහා අදාළ නොවේ.
අප දැක ලෙස තියෙනවා, දෙදෙනාම PRNG
හා CPRNG
හැකි සියළු තට්ටු ඕනෑම පුද්ගලයෙකු තට්ටුවේ තෝරා සම්භාවිතාව දුර්වල බෙදාහැරීම් නිෂ්පාදනය. මෙම PRNG
සැලකිය යුතු නරක ය, නමුත්, ඒ දෙක ම ප්රශ්න තියෙනවා.
තව එක ප්රශ්නයක්:
ටී.ආර්.එන්.ජී.
හේතු දෙකක්.
පළමුවැන්න: වියදම. TRNG මිල අධිකයි . සැබවින්ම අහඹු සංඛ්යා උත්පාදනය කිරීම දුෂ්කර ය. සීපීආර්එන්ජී අත්තනෝමතික ලෙස බොහෝ ඇමතුම් සඳහා හොඳ ප්රති results ල ලබා දෙයි බීජ සඳහා ටීආර්එන්ජී වෙත එක් ඇමතුමක් පමණි . පහළ පැත්ත ඇත්ත වශයෙන්ම ඔබ එම බීජය රහසක් ලෙස තබා ගත යුතුය .
දෙවන: සමහර විට අපි අවශ්ය අපේක්ෂා අපි ගැන සැලකිල්ලක් සියලු හොඳ බෙදා ඇත. ඔබ පරීක්ෂණ කට්ටලයක් සඳහා වැඩසටහන් යෙදවුම් ලෙස "අහඹු" දත්ත ජනනය කරන්නේ නම් සහ එය දෝෂයක් පෙන්වන්නේ නම්, පරීක්ෂණ කට්ටලය නැවත ධාවනය කිරීමෙන් දෝෂය නැවත ඇතිවීම සතුටක්!
එය දැන් වඩාත් පැහැදිලි වනු ඇතැයි මම බලාපොරොත්තු වෙමි.
අවසාන වශයෙන්, ඔබ මෙය භුක්ති වින්දා නම් අහඹු ලෙස හා ප්රේරණයන් යන මාතෘකාව පිළිබඳ වැඩිදුර කියවීමක් ඔබට ලැබෙනු ඇත: