ð ãã¹ã¯ãŒãçæ
æšå®ãšã³ããããŒ: çŽ95ããã
ãçæããã¿ã³ãæŒããŠãã ãã
ãã©ãŠã¶æšæºã®æå·åŠçä¹±æ°çæAPI(crypto.getRandomValues)ã䜿ã£ãŠãå®å šãªã©ã³ãã ãã¹ã¯ãŒããçæããããŒã«ã§ãã䜿çšããæåçš®ãšæ¡æ°ãæå®ã§ããè€æ°åãŸãšããŠçæã§ããŸãã
äœ¿ãæ¹
- ãã¹ã¯ãŒãã®æ¡æ°ãšçæããåæ°ãæå®ããŸãã
- 䜿çšãããæåçš®(倧æåã»å°æåã»æ°åã»èšå·)ãéžæããŸãã
- ãçæããã¿ã³ãæŒããšãã¹ã¯ãŒãã衚瀺ãããŸãã
èšç®ã®ä»çµã¿
ãã®ããŒã«ã¯ããã©ãŠã¶ã®æå·åŠçã«å®å šãªä¹±æ°çæåšïŒcrypto.getRandomValuesïŒã䜿ã£ãŠãã©ã³ãã ãªãã¹ã¯ãŒããäœããŸãã 䜿ãæåã¯ãè±å°æå26çš®ãè±å€§æå26çš®ãæ°å10çš®ãèšå·18çš®ïŒ!@#$%^&*()-_=+[]{}ïŒããéžã¹ãŸãã1æåããšã«ãéžãã æåå šäœã®äžããçãã確çã§1ã€ãéžã³ãŸããåçŽã«ä¹±æ°ãæåæ°ã§å²ã£ãäœãã䜿ããšãæåã®æ¹ã®æåããããã«éžã°ãããããªããããåããåºãªãããã端æ°ã®ç¯å²ã«å ¥ã£ãä¹±æ°ã¯æšãŠãŠåŒãçŽããŠããŸãïŒæ£åŽãµã³ããªã³ã°ïŒã ãã¹ã¯ãŒãã®åŒ·ãã¯ãšã³ããããŒïŒãããïŒã§è¡šããŸãã ãšã³ããããŒ ïŒ æåæ° Ã logâ(䜿ãæåã®çš®é¡ã®æ°) ãšã³ããããŒã1ãããå¢ããããšã«ãç·åœããã§åœãŠãã®ã«å¿ èŠãªåæ°ã2åã«ãªããŸãã
èšç®äŸ
16æåãè±å°æåïŒè±å€§æåïŒæ°åïŒ62çš®é¡ïŒ ãšã³ããããŒ: 16 à logâ62 â 95.3ããã èšå·ãå ããïŒ80çš®é¡ïŒãš 16 à logâ80 â 101.2ããã 1ç§ã«1å å詊ãããšããŠãã95ãããã®ãã¹ã¯ãŒããç·åœããã§åœãŠãã«ã¯ãå¹³åã§çŽ6å幎以äžããããŸãã
䜿çšäžã®æ³šæ
- ãã¹ã¯ãŒãã¯ããµãŒãã¹ããšã«å¥ã®ãã®ã䜿ã£ãŠãã ããã1ã€ãæŒããŠããã»ãã®ãµãŒãã¹ãå®ãããŸãã
- ããããã®ã©ã³ãã ãªãã¹ã¯ãŒããèŠããã®ã¯é£ããããããã¹ã¯ãŒããããŒãžã£ãŒã®å©çšãããããã§ãã
- ãµãŒãã¹ã«ãã£ãŠã¯äœ¿ããèšå·ãéãããŠããŸããç»é²ã§ããªãå Žåã¯ãèšå·ããªãã«ããŠæåæ°ãå¢ãããŠãã ããã
- äœã£ããã¹ã¯ãŒãã¯ãã©ãŠã¶å ã§äœãããå€éšã«éä¿¡ãããããšã¯ãããŸããã
ãããã質å
çæããããã¹ã¯ãŒãã¯å®å šã§ãã?
ã¯ããWeb Crypto APIã®crypto.getRandomValues()ã¯æå·åŠçã«å®å šãªä¹±æ°çæåšã§ãããMath.random()ã®ãããªäºæž¬å¯èœãªæ¬äŒŒä¹±æ°ãšã¯ç°ãªããŸãã
ãšã³ããããŒ(ãããæ°)ãšã¯äœã§ãã?
ãã¹ã¯ãŒãã®æšæž¬ããã«ãããè¡šãææšã§ãæåçš®ã®æ°ã𿡿°ãããæ¡æ° Ã log2(æåçš®æ°)ãã§èšç®ãããŸããäžè¬çã«80ããã以äžããã°ååã«åŒ·åºãšãããŠããŸãã
çæãããã¹ã¯ãŒãã¯ãµãŒããŒã«éä¿¡ãããŸãã?
ããããçæåŠçã¯ãã¹ãŠãã©ãŠã¶å (ã䜿ãã®ç«¯æ«äž)ã§å®çµããå€éšã«éä¿¡ãããããšã¯ãããŸããã