Кіріспе
Кілт келісім протоколы. Эллиптік қисық Diffie–Hellman (ECDH) – екі тарапқа, әрқайсысының эллиптік қисық ашық-жеке кілт жұбы бар, қауіпсіз емес канал арқылы ортақ құпияны орнатуға мүмкіндік беретін кілт келісім протоколы. Бұл ортақ құпия тікелей кілт ретінде немесе басқа кілтті тудыру үшін қолданылуы мүмкін. Кілт немесе туынды кілт кейінгі байланысты симметриялық кілт шифрімен шифрлау үшін пайдаланылуы мүмкін. Бұл эллиптік қисық криптографиясын қолданатын Diffie–Hellman протоколының түрі.
Elliptic curve Diffie–Hellman (ECDH) is a key agreement protocol that allows two parties, each having an elliptic curve public–private key pair, to establish a shared secret over an insecure channel. This shared secret may be directly used as a key, or to derive another key. The key, or the derived key, can then be used to encrypt subsequent communications using a symmetric key cipher. It is a variant of the Diffie–Hellman protocol using elliptic curve cryptography.
Кілт құру туралы хаттама
Келесі мысал ортақ кілттің қалай құрылатынын көрсетеді. Мысалы, Алиса Бобпен кілтті бөліскісі келеді делік, бірақ олардың қолда бар жалғыз арнасын үшінші тұлға тыңдап отыруы мүмкін. Бастапқыда домен параметрлері (яғни, жайтқырылым жағдайында немесе екілік жағдайда) келісілуі керек. Сонымен қатар, әрбір тараптың эллиптік қисық криптографиясына қолайлы кілт жұбы болуы керек, ол жеке кілт (интервалда кездейсоқ таңдалған бүтін сан) және нүктемен бейнеленген ашық кілт (яғни, өзіне бірнеше рет қосу нәтижесі). Алисаның кілт жұбы болсын және Бобтың кілт жұбы болсын. Протоколды орындау алдында әр тарап екінші тараптың ашық кілтін білуі керек. Алиса нүктесін есептейді, ал Боб нүктесін есептейді. Ортақ құпия – (нүктесінің x координатасы). ECDH негізіндегі стандартталған протоколдардың көпшілігі симметриялық кілтті белгілі бір хэш негізделген кілт тудыру функциясын пайдалану арқылы алады. Екі тарап та есептеген ортақ құпия тең, себебі Алиса бастапқыда өзінің кілті туралы жариялайтын жалғыз ақпарат – оның ашық кілті. Сонымен, Алисадан басқа ешкім Алисаның жеке кілтін анықтай алмайды (әрине, Алиса оны таңдап алғандықтан біледі), егер ол тарап эллиптік қисықтың дискретті логарифм мәселесін шеше алмаса. Бобтың жеке кілті де дәл осылай қорғалған. Алиса мен Бобтан басқа ешкім де ортақ құпияны есептей алмайды, егер ол тарап эллиптік қисық Диффи-Хеллман мәселесін шеше алмаса. Ашық кілттер статикалық (әдетте сертификат арқылы сенімді) немесе уақытша (ECDHE деп те аталады, мұнда соңғы "E" "уақытша" дегенді білдіреді) болуы мүмкін. Уақытша кілттер уақытша және міндетті түрде аутентификацияланбайды, сондықтан аутентификация қажет болса, оның шынайылығын басқа жолдармен қамтамасыз ету керек. Аутентификация ортадағы шабуылдарды болдырмау үшін қажет. Егер Алисаның немесе Бобтың ашық кілттерінің бірі статикалық болса, онда ортадағы шабуылдардың алдын алуға болады. Статикалық ашық кілттер алдын ала құпиялылықты немесе кілттің жеке тұлғасын бұзуға төзімділікті де, басқа да озық қауіпсіздік қасиеттерін де қамтамасыз етпейді. Статикалық жеке кілттердің иелері басқа ашық кілтті растауы керек және статикалық жеке кілт туралы ақпараттың ағып кетуін болдырмау үшін шикі Diffie-Hellman ортақ құпиясына қауіпсіз кілт тудыру функциясын қолдануы керек. Басқа да қауіпсіздік қасиеттері бар схемалар үшін MQV қараңыз. Егер Алиса өзінің кілті үшін жарамсыз қисық нүктелерін қасақана таңдаса және Боб Алисаның нүктелері таңдалған топқа жататынын растамаса, ол Бобтың жеке кілтін алу үшін Бобтың кілтінің қалдықтарын жеткілікті жинауға болады. Бірнеше TLS кітапханалары осы шабуылға ұшырады. Ортақ құпия өлшемі бойынша кіші жиынтықта біркелкі таралады. Осы себепті құпияны тікелей симметриялық кілт ретінде қолданбау керек, бірақ оны кілт тудыру функциясының энтропиясы ретінде пайдалануға болады.
The only information about her key that Alice initially exposes is her public key. So, no party except Alice can determine Alice's private key (Alice of course knows it by having selected it), unless that party can solve the elliptic curve discrete logarithm problem. Bob's private key is similarly secure. No party other than Alice or Bob can compute the shared secret, unless that party can solve the elliptic curve Diffie–Hellman problem. The public keys are either static (and trusted, say via a certificate) or ephemeral (also known as ECDHE, where final 'E' stands for "ephemeral"). Ephemeral keys are temporary and not necessarily authenticated, so if authentication is desired, authenticity assurances must be obtained by other means. Authentication is necessary to avoid man in the middle attacks. If one of either Alice's or Bob's public keys is static, then man in the middle attacks are thwarted. Static public keys provide neither forward secrecy nor key compromise impersonation resilience, among other advanced security properties. Holders of static private keys should validate the other public key, and should apply a secure key derivation function to the raw Diffie–Hellman shared secret to avoid leaking information about the static private key. For schemes with other security properties, see MQV. If Alice maliciously chooses invalid curve points for her key and Bob does not validate that Alice's points are part of the selected group, she can collect enough residues of Bob's key to derive his private key. Several TLS libraries were found to be vulnerable to this attack. The shared secret is uniformly distributed on a subset of of size For this reason, the secret should not be used directly as a symmetric key, but it can be used as entropy for a key derivation function.
Монтгомери қисықтары туралы Диффи-Хеллман кілті туралы келісім
Монтгомери формасындағы эллиптік қисық – бұл теңдеуді қанағаттандыратын барлық нүктелердің жиыны, сонымен қатар шексіз нүкте де кіреді. Бұл қисықтың аффиндік формасы деп аталады. -ның барлық рационалды нүктелер жиыны, деп белгіленеді, бұл теңдеуді қанағаттандыратын барлық нүктелердің жиыны болып табылады. Сәйкес анықталған қосу операциясы бойынша, бұл топ, мұнда сәйкестік элементі болып табылады. Бұл топтың реті 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] үшін тиісінше. Бұлардан басқа Монтгомери қисықтарының басқа ұсыныстарын мына жерден табуға болады.
along with Under a suitably defined addition operation, is a group with as the identity element. It is known that the order of this group is a multiple of 4. In fact, it is usually possible to obtain and such that the order of is for a prime For more extensive discussions of Montgomery curves and their arithmetic one may follow. For computational efficiency, it is preferable to work with projective coordinates. The projective form of the Montgomery curve is For a point on , the coordinate map is the following: Montgomery the Diffie Hellman key agreement can be carried out on a Montgomery curve as follows. Let be a generator of a prime order subgroup of Alice chooses a secret key and has public key ;
Bob chooses a secret key and has public key The shared secret key of Alice and Bob is Using classical computers, the best known method of obtaining from and requires about time using the Pollards rho algorithm. The most famous example of Montgomery curve is Curve25519 which was introduced by Bernstein. For Curve448, and Couple of Montgomery curves named M[4698] and M[4058] competitive to Curve25519 and Curve448 respectively have been proposed in. For M[4698], and for M[4058], At 256 bit security level, three Montgomery curves named M[996558], M[952902] and M[1504058] have been proposed in. For M[996558], , for M[952902], and for M[1504058], respectively. Apart from these two, other proposals of Montgomery curves can be found at.
Бағдарламалық жасақтама
Curve25519 – Дэниел Дж. Бернштейннің C тілінде жасаған эллиптік қисық параметрлерінің танымал жиынтығы және анықтамалық іске асыруы. Оған байланыстар мен баламалы іске асырулар да бар. LINE мессенджері 2015 жылдың қазан айынан бастап жіберілген барлық хабарларды қорғау үшін «Хатты жабу» (Letter Sealing) қызметінде ECDH протоколын пайдаланады. Signal протоколы бұрынғы қауіпсіздікті сақтау үшін ECDH-ді қолданады. Осы протоколдың іске асырылымдары Signal, WhatsApp, Facebook Messenger және Skype-та табылған.