è¶ ãã¼ã¬æ° ããã£ãã¨ãããã®ç´æ° ã¯å®ç¾©ãã è¶ ãã¼ã¬æ°ã»ç´ æ°ã»1 ã®ããããã§ãã
è¶ ãã¼ã¬æ°ã«å¯¾ãã¦ãã®ç´æ°ãå¤ããã°å¤ãã»ã©ãå¤ãã®è¶ ãã¼ã¬æ°ãå é¨ã«æã¤ãã¨ã«ãªãã¾ããä»åã¯ãç´æ°ãã§ããã ãå¤ãæã¤ãããªè¶ ãã¼ã¬æ°ããèãããã¨æãã¾ãã
tsujimotter.hatenablog.com
ããªãã¡ã次ã®ãããªå®ç¾©ãèªç¶ã«æãã¤ãã¾ãã
ã¤ã¾ãããã以ä¸è¦ªãããªããããªã極大ã®è¦ªçã§ãããããªè¶ ãã¼ã¬æ°ã®ãã¨ãæãããã§ããã
"maximal" ã®è¨³ã¨ãã¦ãæ大ããåè£ã«æããã®ã§ããããã¹ã¦ã®è¶ ãã¼ã¬æ°ã®ä¸ã§ä¸çªå¤§ããããã§ã¯ãªãã®ã§é©åã§ã¯ãªãããã«èãã¦ãã¾ãã
æ¥µå¤§è¶ ãã¼ã¬æ°ã®è¦ã¤ãæ¹
ãã¨ãã°ã次㮠ãæ¥µå¤§è¶ ãã¼ã¬æ°ã®ä¾ã§ãï¼
ããããã¼ã¬æ°ã§ãããã¨ã¯ ã確èªããã°ããã®ã§ç°¡åã§ãã
è¶ ãã¼ã¬æ°ã§ãããã¨ã¯ï¼å°ã大å¤ã§ããï¼ ã®ãã¹ã¦ã®ç´æ° ã«å¯¾ã㦠ã§ãããã¨ã確èªããã°ããã§ãã
ä¸æ¹ã§ãããæ¥µå¤§è¶ ãã¼ã¬æ°ã§ããã¨ããã®ã¯ãã©ã®ããã«è¨¼æãããè¯ãã§ããããï¼
ãã®ããã«ã¯ã ã«å¯¾ã㦠ãè¶ ãã¼ã¬æ°ã¨ãªããããªèªç¶æ° ãåå¨ããªããã¨ã示ãå¿ è¦ãããããã§ããã ã®åè£ã¯ç¡éã«ããã®ã§ç°¡åã§ã¯ããã¾ããã
ããã§æ¥µå¤§è¶ ãã¼ã¬æ°ã®å¤å®ã«ã¯ãããå°ããã¯ãã«ã«ãªæ¹æ³ãç¨ãã¾ããå ·ä½çã«ã¯æ¬¡ã®å®çã使ã£ã¦å¤å®ãã¾ãã
ãã®ã¨ãï¼ ã¨ã¯ç°ãªãä»»æã®å¥ç´ æ° ã«å¯¾ãã¦
ãæãç«ã¤ï¼ï¼è¨¼æï¼
ã¯è¶
ãã¼ã¬æ°ããï¼ ã®ã¨ãç´æ° ãã¾ãè¶
ãã¼ã¬æ°ã§ããï¼ãã£ã¦ ã§ãããï¼ãã® ãèãã¦
ãæãç«ã¤ï¼ã¾ã ã«ã¤ãã¦ã®ãã§ã«ãã¼ã®å°å®çãã
ã§ããï¼åãããã¨
ããã 㯠ãå²ãåãï¼ ã¯å¥ç´ æ°ãã 㯠ãå²ãåãï¼
å®çã®å®éã®ä½¿ãæ¹ãç´¹ä»ãã¾ãããã
ã¨ãã¦ã ã ãç´ å æ°ã«æã¤æ¥µå¤§è¶ ãã¼ã¬æ°ã¨ãã¾ãããã®ã¨ãã ã® ã¨ã¯ç°ãªãç´ å æ° ã¯ãå®çã«ããã° ãå²ãåãããã§ãã
ããªãã¡ã ã®ç´ å æ°ã ããã ãç´ å æ°ã«æã¤æ¥µå¤§è¶ ãã¼ã¬æ°ãã®ç´ å æ°ã«ãªãè³æ ¼ãããã¨ããããã§ãã
å®éã ãç´ å æ°å解ããã¨
ã¨ãªãã¾ãã
ãã¨ã¯ ã®ç´ å æ°ã®ä¸ãããç¸ç°ãªããã¢ããã¹ã¦ãã¼ã¬æ°ã«ãªããããªçµã¿åãããæ¢ãã°ããããã§ããï¼この記事ã®å®çï¼ããï¼
å®éãä¸ç·é¨ã®ï¼åã®ç´ å æ°ãæãåãããæ°ãè¶ ãã¼ã¬æ°ã¨ãªãã¾ãã
ä»ã®çµã¿åããã¯ã©ããã¨ããã¨ã ã¯ãããããã¼ã¬æ°ã§ã¯ããã¾ããã®ã§ããã®æç¹ã§ã ãç´ å æ°ã«æã¤æ¥µå¤§è¶ ãã¼ã¬æ°ãã®ç´ å æ°ããã¯é¤å¤ãã¦ãããã¨ãåããã¾ããã
ãããã£ã¦ãå¼ ã® ãããæ¥µå¤§è¶ ãã¼ã¬æ°ã ã£ãã¨ããããã§ãã
ã¡ãªã¿ã«
ã¨ããå½¢ã®æ´æ°ã®ãã¨ããã§ã«ãã¼åï¼Fermat quotientï¼ã¨ããã¾ãã
ã¤ã¾ãããã§ã«ãã¼åã®ç´ å æ°å解ã«ãã£ã¦ã ãç´ å æ°ã«æã¤æ¥µå¤§è¶
ãã¼ã¬æ°ãå¾ãããã¨ãè¨ãæããããããã§ããã
ä»ã®ä¾ã¯è¦ã¤ãããããï¼
以ä¸ã®ä¸è¬è«ã«ãã£ã¦ã ã®ç´ å æ°å解ãè¨ç®ãããã¨ã§ã ãç´ å æ°ã«å«ãæ¥µå¤§è¶ ãã¼ã¬æ°ãå¾ããããã¨ãåããã¾ããããããªããã§ãå®éã«è¨ç®ãã¦ã¿ããã¨ã«ãã¾ãããã
ãªãç´ æ° ã«ã¤ãã¦ã ã®ç´ å æ°å解ãè¨ç®ãã¦ã¿ãã®ã次ã®è¡¨ã§ãã
2^1 - 1: [] 2^2 - 1: [3] 2^4 - 1: [3, 5] 2^6 - 1: [3, 3, 7] 2^10 - 1: [3, 11, 31] 2^12 - 1: [3, 3, 5, 7, 13] 2^16 - 1: [3, 5, 17, 257] 2^18 - 1: [3, 3, 3, 7, 19, 73] 2^22 - 1: [3, 23, 89, 683] 2^28 - 1: [3, 5, 29, 43, 113, 127] 2^30 - 1: [3, 3, 7, 11, 31, 151, 331] 2^36 - 1: [3, 3, 3, 5, 7, 13, 19, 37, 73, 109] 2^40 - 1: [3, 5, 5, 11, 17, 31, 41, 61681] 2^42 - 1: [3, 3, 7, 7, 43, 127, 337, 5419] 2^46 - 1: [3, 47, 178481, 2796203] 2^52 - 1: [3, 5, 53, 157, 1613, 2731, 8191] 2^58 - 1: [3, 59, 233, 1103, 2089, 3033169] 2^60 - 1: [3, 3, 5, 5, 7, 11, 13, 31, 41, 61, 151, 331, 1321] 2^66 - 1: [3, 3, 7, 23, 67, 89, 683, 20857, 599479] 2^70 - 1: [3, 11, 31, 43, 71, 127, 281, 86171, 122921] 2^72 - 1: [3, 3, 3, 5, 7, 13, 17, 19, 37, 73, 109, 241, 433, 38737] 2^78 - 1: [3, 3, 7, 79, 2731, 8191, 121369, 22366891] 2^82 - 1: [3, 83, 13367, 164511353, 8831418697] 2^88 - 1: [3, 5, 17, 23, 89, 353, 397, 683, 2113, 2931542417] 2^96 - 1: [3, 3, 5, 7, 13, 17, 97, 193, 241, 257, 673, 65537, 22253377] 2^100 - 1: [3, 5, 5, 5, 11, 31, 41, 101, 251, 601, 1801, 4051, 8101, 268501] 2^102 - 1: [3, 3, 7, 103, 307, 2143, 2857, 6529, 11119, 43691, 131071] 2^106 - 1: [3, 107, 6361, 69431, 20394401, 28059810762433] 2^108 - 1: [3, 3, 3, 3, 5, 7, 13, 19, 37, 73, 109, 87211, 246241, 262657, 279073] 2^112 - 1: [3, 5, 17, 29, 43, 113, 127, 257, 5153, 15790321, 54410972897] 2^126 - 1: [3, 3, 3, 7, 7, 19, 43, 73, 127, 337, 5419, 92737, 649657, 77158673929] 2^130 - 1: [3, 11, 31, 131, 2731, 8191, 409891, 7623851, 145295143558111] 2^136 - 1: [3, 5, 17, 17, 137, 953, 26317, 43691, 131071, 354689, 2879347902817] 2^138 - 1: [3, 3, 7, 47, 139, 178481, 2796203, 168749965921, 10052678938039] 2^148 - 1: [3, 5, 149, 223, 593, 1777, 25781083, 184481113, 231769777, 616318177] 2^150 - 1: [3, 3, 7, 11, 31, 151, 251, 331, 601, 1801, 4051, 100801, 10567201, 1133836730401] 2^156 - 1: [3, 3, 5, 7, 13, 13, 53, 79, 157, 313, 1249, 1613, 2731, 3121, 8191, 21841, 121369, 22366891] 2^162 - 1: [3, 3, 3, 3, 3, 7, 19, 73, 163, 2593, 71119, 87211, 135433, 262657, 97685839, 272010961] 2^166 - 1: [3, 167, 499, 1163, 2657, 155377, 13455809771, 57912614113275649087721] 2^172 - 1: [3, 5, 173, 431, 9719, 101653, 500177, 2099863, 1759217765581, 2932031007403] 2^178 - 1: [3, 179, 62020897, 18584774046020617, 618970019642690137449562111] 2^180 - 1: [3, 3, 3, 5, 5, 7, 11, 13, 19, 31, 37, 41, 61, 73, 109, 151, 181, 331, 631, 1321, 23311, 54001, 18837001, 29247661] 2^190 - 1: [3, 11, 31, 191, 2281, 174763, 524287, 420778751, 30327152671, 3011347479614249131] 2^192 - 1: [3, 3, 5, 7, 13, 17, 97, 193, 241, 257, 641, 673, 65537, 6700417, 22253377, 18446744069414584321] 2^196 - 1: [3, 5, 29, 43, 113, 127, 197, 19707683773, 4363953127297, 4432676798593, 4981857697937] 2^198 - 1: [3, 3, 3, 7, 19, 23, 67, 73, 89, 199, 683, 5347, 20857, 153649, 599479, 33057806959, 242099935645987]
å®éã ã¯ããªã巨大ãªæ°ã«ãªãã®ã§ã ã大ããã»ã©ç´ å æ°å解ã¯é£ãããªãã¾ãããã¨ãã° ã®ã¨ãã¯
ã¨ãªããå®ã«31æ¡ã§ãããã®ç´ å æ°ãæ±ããã®ã¯ãããç°¡åã§ã¯ããã¾ãããã
ä»åã¯ã100以ä¸ã®ç´ å æ°ã«ã¤ãã¦ã¯ãã¤ã¼ããªæ¹æ³ã§å æ°å解ãè¡ãããããã大ããªç´ å æ°ã«ã¤ãã¦ã¯楕円曲線法ãç¨ãã¦å解ãã¾ããããã®éã«å æ°ãç´ æ°ã§ãããã©ããå¤å®ããããã«ãミラー・ラビン素数判定法 ãç¨ãã¾ããã
ä¸è¨ã®ç´ å æ°å解ã®çµæããåãããã¨ã¯ããã¨ãã°æ¬¡ã®ãããªãã¨ã§ãã
ã®åã«æ³¨ç®ããã¨
ã¨ãªã£ã¦ãã¾ãããããã£ã¦ã ãå«ãè¶ ãã¼ã¬æ°ã¯ãã¹ã¦ ã®ãããã2å以ä¸ãç´ å æ°ã«æã¡ã¾ããããã§
- ã¯ãã¼ã¬æ°ã§ã¯ãªãï¼ï¼
ãã¨ããã ã¯é¤å¤ã§ãã¾ããä¸æ¹
- ã¯ãã¼ã¬æ°ã§ããï¼ï¼
ã¨ããäºå®ã確èªããã¨ã 㯠ãç´ å æ°ã«å«ãï¼å¯ä¸ã®ï¼æ¥µå¤§è¶ ãã¼ã¬æ°ã§ãããã¨ãåããã¾ãã
ã¾ãã ã®åã«æ³¨ç®ããã¨
ã¨ãªã£ã¦ãã¾ãããããã£ã¦ã ãå«ãè¶ ãã¼ã¬æ°ã¯ãã¹ã¦ ã®ãããã2å以ä¸ãç´ å æ°ã«æã¡ã¾ããããã§
- ã¯ãã¼ã¬æ°ã§ã¯ãªãï¼ï¼
ãã¨ããã ã¯é¤å¤ã§ãã¾ããä¸æ¹
- ã¯ãã¼ã¬æ°ã§ããï¼ï¼
- ã¯ãã¼ã¬æ°ã§ããï¼ï¼
- ã¯ãã¼ã¬æ°ã§ããï¼ï¼
ãã¨ããã ã®ãã¹ã¦ã®ãã¢ã«å¯¾ãã¦ãã¼ã¬æ°ã§ãããã¨ãåããã¾ãããããã£ã¦ã 㯠ãç´ å æ°ã«å«ãï¼å¯ä¸ã®ï¼æ¥µå¤§è¶ ãã¼ã¬æ°ã§ãããã¨ãåããã¾ãã
åæ§ã«èãã¦ãå ã«å¯¾ãã¦ã ã®ç´ å æ°ã«ããå¾ãããã ãç´ å æ°ã«å«ãæ¥µå¤§è¶ ãã¼ã¬æ°ããå ¨æ¢ç´¢ããã®ã次ã®ãã¼ã¿ã§ãï¼
ãªããå ã«å¯¾ãã¦ã ãç´ å æ°ã«æã¤æ¥µå¤§è¶ ãã¼ã¬æ°ã¯ãï¼ã¤ã¨ã¯éããªããã¨ã«æ³¨æãã¾ãããã
ãã¨ãã°ã ã®ã¨ã
ã®ï¼ã¤ãã©ã¡ãã ãç´ å æ°ã«å«ãè¶ ãã¼ã¬æ°ã¨ãªã£ã¦ãã¾ããä¸æ¹ã§ã ãªã®ã§äºãã«ç´æ°ã®é¢ä¿ã«ã¯ããã¾ããããããã£ã¦ãã©ã¡ãã極大é·ãã¼ã¬æ°ã§ãã
ç´ å æ°ã®åæ°ã«ã注ç®ãã¦ã¿ã¾ãããã
ç´ å æ°ã®åæ°ã 以ä¸ã«ãªãæåã«ç»å ´ããæ¥µå¤§è¶ ãã¼ã¬æ°ãã¾ã¨ããã®ã次ã®è¡¨ã§ãï¼
æåã«ç´ å æ°ã®åæ°ã 以ä¸ã«ãªãæ¥µå¤§è¶ ãã¼ã¬æ° | |
---|---|
â»ãç´ å æ°ã®åæ°ã 以ä¸ã«ãªãæå°ã®æ¥µå¤§è¶ ãã¼ã¬æ°ãã§ã¯ãªããã¨ã«æ³¨æã
ãã®æå³ã§ãæåã«æããå¼ ã®ä¾ã¯ãç´ å æ°ã®åæ°ãï¼åãããã¨ããç¹å¥ãªä¾ã ã£ãã¨ããããã§ããã
ä»åã®çµæï¼ï¼ã«ã¯ç´ å æ°ã®åæ°ãï¼å以ä¸ã«ãªããã®ã¯ç»å ´ãã¾ããã§ãããåèæç®ã®è¨äºã«ããã°ã ã¾ã§è¨ç®ããã°ãç´ å æ°ã®åæ°ã8åã®ãã®ãç»å ´ããããã§ãããã¡ãã£ã¨è¨ç®ã大å¤ããã§ããã»ã»ã»ã
ã¾ã¨ã
ã¾ã¨ããã¨ãããããã¨ã§ãï¼
- ãç´ å æ°å解ããã¨ãã«ç¾ããç´ å æ° å ¨ä½ã®éåã ã¨ãã
- ã®é¨åéåã§ãã£ã¦ ãå«ããã®ã ã¨ãã ã®æ°å
¨ä½ãæãã¦ã§ããæ°ã ã¨ãã
- å ã®ï¼ã¤ã®æ°ã§ä½ãããä»»æã®ãã¢ã®ç©ããã¼ã¬æ°ãªãã°ã 㯠ãç´ å æ°ã«æã¤è¶ ãã¼ã¬æ°
- ããã§ãªããã°ã ã¯è¶ ãã¼ã¬æ°ã§ã¯ãªã
- 以ä¸ã®æ¹æ³ã§ã ãç´ å æ°ã«æã¤ï¼å¹³æ¹å åãæããªãï¼è¶ ãã¼ã¬æ°ããã¹ã¦åæã§ãã
- ãç´ å æ°ã«æã¤ï¼å¹³æ¹å åãæããªãï¼æ¥µå¤§è¶ ãã¼ã¬æ°ã¯ã以ä¸ã§åæããæ°å ¨ä½ã®ãªãç´æ°é¢ä¿ã«é¢ããæãèãã¦ããã®æ¥µå¤§å ãã¨ãã°ãã
ããã§ã¯ä»æ¥ã¯ãã®è¾ºã§ï¼