Въведение в алгоритма за обмен на ключове на Diffie Hellman

Алгоритъмът за обмен на ключове Diffie Hellman е една от първите практически реализации на обмена на публичен ключ в областта на криптографията. Алгоритъмът за обмен на ключове Diffie Hellman е един от начините, които могат да генерират споделен ключ и да споделят отделно между две страни по начин, по който можем да сме сигурни, че никой няма да може да се впусне в комуникацията. Има един важен факт, който трябва да се има предвид относно алгоритъма е, че ние не споделяме информацията в обмена, вместо това създаваме ключ, който по-късно може да се използва за обмен на информация. Тъй като тази техника ни позволява да създадем ключ за криптиране с другата страна, след това можем да започнем да криптираме текущите и получаваме съобщения. Един установен, дори ако някой записва данните за предаване, няма начин данните да бъдат декриптирани.

Алгоритъм за обмен на ключове Diffie Hellman за генериране на ключове

Алгоритъмът се основава на криптография на елиптична крива, която е метод за правене на криптография с публичен ключ, базиран на структурата на алгебрата на елиптичните криви над крайните полета. DH също използва функцията trapdoor, подобно на много други начини за криптография с публичен ключ. Простата идея за разбиране на алгоритма на DH е следната

1. Първата страна избира две прости числа g и p и ги казва на втората страна.

2. Втората страна избира секретен номер (нека го наречем a) и след това изчислява g a mod p и изпраща резултата обратно на първата страна, нека извикаме резултата А. Имайте предвид, че секретният номер не е изпратен за всеки, само резултатът е.

3. Тогава първата страна прави същото, тя избира секретно число b и изчислява резултата B, подобна на

4. стъпка 2. След това този резултат се изпраща на втората страна.

5. Втората страна взема полученото число B и изчислява B a mod p

6. Първата страна взема полученото число A и изчислява A b mod p

Тук става интересно, отговорът в стъпка 5 е същият като отговора в стъпка 4. Това означава, че и двете страни ще получат един и същи отговор, независимо от реда на експониране.

(g a mod p) b mod p = g ab mod p
(g b mod p) a mod p = g ba mod p

Номерът, който дойдохме в стъпки 4 и 5, ще бъде взет като споделен секретен ключ. Сега този ключ може да се използва за извършване на всякакво криптиране на данни, които ще бъдат предавани, като удар, AES и т.н.

Алгоритъм на Diffie Hellman

1. ключ = (Y A ) XB mod q -> това е същото като изчислено от B

2. Глобални публични елементи

  • q: q е просто число
  • a: a <q и α е примитивният корен на q

3. Генерация на ключове за потребител A

  • Изберете частен ключ X A Тук, X A

Сега, Изчисляване на публичен ключ Y A Y A = a XA mod q

4. Генериране на ключове за потребител B

  • Изберете частен ключ X B Тук, X B
  • Сега, Изчисляване на публичен ключ Y B Y B = a Xb mod q

5. Изчисляване на секретен ключ чрез A

  • ключ = (Y B ) XA mod q

6. Изчисляване на секретен ключ по B

  • ключ = (Y A ) XB mod q

пример

1. Алис и Боб използват обществени номера P = 23, G = 5

2. Alice избра частен ключ a = 4 и Боб избра b = 3 като частен ключ

3. И Алис, и Боб сега изчисляват стойността на x и y, както следва:

  • Алиса: x = (5 4 mod 23) = 4
  • Боб: y = (5 3 mod 23) = 10

4. Сега и Алис, и Боб си разменят публични номера помежду си.

5. Алис и Боб изчисляват симетричните клавиши

  • Алиса: k a = y a mod p = 10 4 mod 23 = 18
  • Боб: k b = x b mod p = 4 3 mod 23 = 18

6. 18 е споделеният секретен ключ.

Използване на алгоритма на Diffie Hellman

Освен използването на алгоритъма за генериране на публични ключове, има някои други места, където може да се използва DH алгоритъм:

  • Шифроване: Алгоритъмът за обмен на ключове на Diffie Hellman може да се използва за шифроване, една от първите схеми, която го направи, беше криптирането на ElGamal. Един модерен пример за това се нарича интегрирана схема за криптиране, която осигурява сигурност срещу избран обикновен текст и избрани атаки в клипборда.
  • Споразумение за удостоверяване с парола: Когато две страни споделят парола, може да се използва ключ, удостоверен с парола, за да се предотврати човекът в средната атака. Това ключово споразумение може да бъде под формата на Diffie-Hellman. Secure Remote Password Protocol е добър пример, който се основава на тази техника.
  • Препращане на секретност: Пренасочените протоколи, базирани на секретност, могат да генерират нови двойки ключове за всяка нова сесия и те могат автоматично да ги изхвърлят в края, когато сесията също приключи. В тези предни протоколи за секретност по-често се използва обменът на ключове на Diffie Hellman.

Предимства на алгоритма на Diffie Hellman

  • Подателят и получателят не се нуждаят от предварително познаване един на друг.
  • След като се разменят ключовете, комуникацията на данни може да се извърши по несигурен канал.
  • Споделянето на секретния ключ е безопасно.

Недостатъци на алгоритма на Diffie Hellman

  • Алгоритъмът не може да бъде съден за никаква асиметрична размяна на ключове.
  • По същия начин той не може да се използва за подписване на цифрови подписи.
  • Тъй като не удостоверява никоя от страните в предаването, размяната на ключове на Diffie Hellman е податлива на атака човек в средата.

заключение

Поради своите предимства, размяната на ключове Diffie Hellman се оказа полезна система за обмен на ключове. Макар че наистина е трудно някой да хвърли мрежата да декриптира данните и да получи ключовете, все пак е възможно, ако генерираните числа не са напълно случайни. Също така системата за обмен на ключове позволява да се направи човек в средната атака, за да се избегне това, и двете страни трябва да бъдат много внимателни в началото на размяната.

Препоръчителен член

Това е ръководство за алгоритъма за обмен на ключове на Diffie Hellman. Тук обсъждаме употребите, различните алгоритми, предимствата и недостатъците. Можете да разгледате и другите ни предложени статии, за да научите повече -

  1. Алгоритми за машинно обучение
  2. Алгоритъм за криптиране
  3. Алгоритми за класификация
  4. Видове алгоритми