Кіріспе

TWINKLE (Вейцман институтының кілтін табу машинасы) – 1999 жылы Ади Шамир сипаттаған, 512 биттік бүтін сандарды есепке алуға қабілетті деп есептелетін гипотетикалық бүтін сандарды есепке алу құрылғысы. Бұл атау құрылғыда қолданылатын жыпылықтайтын светодиодтармен байланысты әдемі ойын. Шамирдің бағалауынша, көптеп өндірілген жағдайда TWINKLE құрылғысының бірлігінің құны 5000 долларға дейін төмендеуі мүмкін. TWINKLE-дің TWIRL деп аталатын, одан тиімдірек мұрагері бар.

Әдіс

TWINKLE-дің мақсаты – үлкен бүтін сандарды факторлау үшін ең жылдам белгілі алгоритм болып табылатын Сандық өріс Сейісі (Number Field Sieve) алгоритмінің сырғалау қадамын іске асыру. Сырғалау кезеңі, кем дегенде 512 биттік және одан үлкен бүтін сандар үшін, NFS-тің ең көп уақытты қажет ететін кезеңі болып табылады. Ол үлкен сандар жиынтығын B «тегісдігіне» (smoothness) қатысты тексеруді қамтиды, яғни, көрсетілген шекара B-ден үлкен жай көбейткішінің жоқ болуын. TWINKLE-дің ерекшелігі – ол толығымен цифрлық құрылғы емес. Ол тиімділігін екілік арифметикадан бас тартып, бір секундтық циклда жүздеген мың шаманы қоса алатын «оптикалық» қосушы арқылы қамтамасыз етеді. Қолданылған негізгі идея – «уақыт-кеңістік инверсиясы». Дәстүрлі NFS сырғалауы бір уақытта бір жай санмен жүргізіледі. Әр жай сан үшін, қарастырылып отырған диапазон ішіндегі сол жай санға бөлінетін, тегіс болу үшін тексерілетін барлық сандардың санағы жай санның логарифмімен артырылады (Эратоспеннің сырғанағына ұқсас). TWINKLE, керісінше, бір үміткер тегіс санмен (оны X деп атайық) бір уақытта жұмыс істейді. B-ден кіші әр жай санға сәйкес келетін бір LED бар. X уақытына сәйкес келетін сәтте, жарықтанған LED-тер жиыны X-ті бөлетін жай сандар жиынына сәйкес келеді. Бұл үшін LED-ті әрбір p уақыт сәтінде бір рет жай сан p арқылы жарықтандыруға болады. Сонымен қатар, әрбір LED-тің қарқындылығы сәйкес жай санның логарифміне пропорционалды. Осылайша, жалпы қарқындылық X-тің B-ден кіші барлық жай көбейткіштерінің логарифмдерінің қосындысына тең. Бұл қарқындылық X логарифміне тең, егер және тек егер X B тегіс болса. Тіпті компьютерлік негіздегі іске асыруларда да, кіші жай сандардың жуық логарифмдерін қосу арқылы сырғалауды жылдамдату – әдеттегі оңтайландыру. Сол сияқты, TWINKLE-де жарық өлшемдерінде қателіктерге орын жеткілікті; қарқындылық шамамен дұрыс деңгейде болса, сан белгілі факторлау алгоритмдері үшін жеткілікті тегіс болуы мүмкін. Тіпті бір үлкен көбейткіштің болуы үлкен санның логарифмінің жоқ екенін білдіреді, нәтижесінде өте төмен қарқындылық пайда болады; өйткені көптеген сандар осы қасиетке ие, құрылғының шығысы ұзын төмен қарқындылық сегменттерінен және қысқа қарқындылық шарысуларынан тұрады. Жоғарыда X квадратсыз деп есептеледі, яғни ол кез келген жай санның квадратына бөлінбейді. Бұл қабылдауға болады, өйткені факторлау алгоритмдеріне тек «жеткілікті көп» тегіс сандар қажет, ал «өнімділік» шаршысыздық болжамына байланысты шағын тұрақты коэффициентпен ғана төмендейді. Оптоэлектрондық жабдықтың дәлсіздігіне байланысты жалған оң нәтижелер де болуы мүмкін, бірақ TWINKLE анықтаған сандардың тегіс болуын тексеру үшін компьютерлік негіздегі кейін өңдеу қадамын қосу арқылы бұл оңай шешіледі.