Кіріспе

Кілт келісім протоколы. Эллиптік қисық Diffie–Hellman (ECDH) – екі тарапқа, әрқайсысының эллиптік қисық ашық-жеке кілт жұбы бар, қауіпсіз емес канал арқылы ортақ құпияны орнатуға мүмкіндік беретін кілт келісім протоколы. Бұл ортақ құпия тікелей кілт ретінде немесе басқа кілтті тудыру үшін қолданылуы мүмкін. Кілт немесе туынды кілт кейінгі байланысты симметриялық кілт шифрімен шифрлау үшін пайдаланылуы мүмкін. Бұл эллиптік қисық криптографиясын қолданатын Diffie–Hellman протоколының түрі.

Кілт құру туралы хаттама

Келесі мысал ортақ кілттің қалай құрылатынын көрсетеді. Мысалы, Алиса Бобпен кілтті бөліскісі келеді делік, бірақ олардың қолда бар жалғыз арнасын үшінші тұлға тыңдап отыруы мүмкін. Бастапқыда домен параметрлері (яғни, жайтқырылым жағдайында немесе екілік жағдайда) келісілуі керек. Сонымен қатар, әрбір тараптың эллиптік қисық криптографиясына қолайлы кілт жұбы болуы керек, ол жеке кілт (интервалда кездейсоқ таңдалған бүтін сан) және нүктемен бейнеленген ашық кілт (яғни, өзіне бірнеше рет қосу нәтижесі). Алисаның кілт жұбы болсын және Бобтың кілт жұбы болсын. Протоколды орындау алдында әр тарап екінші тараптың ашық кілтін білуі керек. Алиса нүктесін есептейді, ал Боб нүктесін есептейді. Ортақ құпия – (нүктесінің x координатасы). ECDH негізіндегі стандартталған протоколдардың көпшілігі симметриялық кілтті белгілі бір хэш негізделген кілт тудыру функциясын пайдалану арқылы алады. Екі тарап та есептеген ортақ құпия тең, себебі Алиса бастапқыда өзінің кілті туралы жариялайтын жалғыз ақпарат – оның ашық кілті. Сонымен, Алисадан басқа ешкім Алисаның жеке кілтін анықтай алмайды (әрине, Алиса оны таңдап алғандықтан біледі), егер ол тарап эллиптік қисықтың дискретті логарифм мәселесін шеше алмаса. Бобтың жеке кілті де дәл осылай қорғалған. Алиса мен Бобтан басқа ешкім де ортақ құпияны есептей алмайды, егер ол тарап эллиптік қисық Диффи-Хеллман мәселесін шеше алмаса. Ашық кілттер статикалық (әдетте сертификат арқылы сенімді) немесе уақытша (ECDHE деп те аталады, мұнда соңғы "E" "уақытша" дегенді білдіреді) болуы мүмкін. Уақытша кілттер уақытша және міндетті түрде аутентификацияланбайды, сондықтан аутентификация қажет болса, оның шынайылығын басқа жолдармен қамтамасыз ету керек. Аутентификация ортадағы шабуылдарды болдырмау үшін қажет. Егер Алисаның немесе Бобтың ашық кілттерінің бірі статикалық болса, онда ортадағы шабуылдардың алдын алуға болады. Статикалық ашық кілттер алдын ала құпиялылықты немесе кілттің жеке тұлғасын бұзуға төзімділікті де, басқа да озық қауіпсіздік қасиеттерін де қамтамасыз етпейді. Статикалық жеке кілттердің иелері басқа ашық кілтті растауы керек және статикалық жеке кілт туралы ақпараттың ағып кетуін болдырмау үшін шикі Diffie-Hellman ортақ құпиясына қауіпсіз кілт тудыру функциясын қолдануы керек. Басқа да қауіпсіздік қасиеттері бар схемалар үшін MQV қараңыз. Егер Алиса өзінің кілті үшін жарамсыз қисық нүктелерін қасақана таңдаса және Боб Алисаның нүктелері таңдалған топқа жататынын растамаса, ол Бобтың жеке кілтін алу үшін Бобтың кілтінің қалдықтарын жеткілікті жинауға болады. Бірнеше TLS кітапханалары осы шабуылға ұшырады. Ортақ құпия өлшемі бойынша кіші жиынтықта біркелкі таралады. Осы себепті құпияны тікелей симметриялық кілт ретінде қолданбау керек, бірақ оны кілт тудыру функциясының энтропиясы ретінде пайдалануға болады.

Монтгомери қисықтары туралы Диффи-Хеллман кілті туралы келісім

Монтгомери формасындағы эллиптік қисық – бұл теңдеуді қанағаттандыратын барлық нүктелердің жиыны, сонымен қатар шексіз нүкте де кіреді. Бұл қисықтың аффиндік формасы деп аталады. -ның барлық рационалды нүктелер жиыны, деп белгіленеді, бұл теңдеуді қанағаттандыратын барлық нүктелердің жиыны болып табылады. Сәйкес анықталған қосу операциясы бойынша, бұл топ, мұнда сәйкестік элементі болып табылады. Бұл топтың реті 4-ке еселенеді. Шындығында, көбінесе -ның ретін үшін анықтауға болады, мұнда – жай сан. Монтгомери қисықтары және олардың арифметикасы туралы толыққанды талқылау үшін мына оқу материалдарын қараңыз. Есептеу тиімділігі үшін проекциялық координаттармен жұмыс істеу ұсынылады. Монтгомери қисығының проекциялық формасы мынадай: -дағы нүкте үшін координаттар картасы келесідей: Монтгомери Диффи-Хеллмен кілт келісімі Монтгомери қисығында келесідей жүзеге асырылуы мүмкін. Алис -ның жай ретті кіші тобының генераторын таңдайды; Алис құпия кілт таңдайды және оның ашық кілті бар; Боб құпия кілт таңдайды және оның ашық кілті бар. Алис пен Бобтың ортақ құпия кілті мынадай: Классикалық компьютерлерді қолдану арқылы -дан -ні алудың ең жақсы белгілі әдісі Pollards rho алгоритмін пайдаланып шамамен уақытты қажет етеді. Монтгомери қисығының ең танымал мысалы – Бернштейн ұсынған Curve25519. Curve448 үшін және Curve25519 мен Curve448-ге бәсекелес M[4698] және M[4058] атты Монтгомери қисықтарының жұбы ұсынылды. M[4698] үшін және M[4058] үшін 256 биттік қауіпсіздік деңгейінде M[996558], M[952902] және M[1504058] атты үш Монтгомери қисығы ұсынылды. M[996558] үшін , M[952902] үшін және M[1504058] үшін тиісінше. Бұлардан басқа Монтгомери қисықтарының басқа ұсыныстарын мына жерден табуға болады.

Бағдарламалық жасақтама

Curve25519 – Дэниел Дж. Бернштейннің C тілінде жасаған эллиптік қисық параметрлерінің танымал жиынтығы және анықтамалық іске асыруы. Оған байланыстар мен баламалы іске асырулар да бар. LINE мессенджері 2015 жылдың қазан айынан бастап жіберілген барлық хабарларды қорғау үшін «Хатты жабу» (Letter Sealing) қызметінде ECDH протоколын пайдаланады. Signal протоколы бұрынғы қауіпсіздікті сақтау үшін ECDH-ді қолданады. Осы протоколдың іске асырылымдары Signal, WhatsApp, Facebook Messenger және Skype-та табылған.