3.6. Шифрование с помощью алгоритма Диффи-Хеллмана
Главная проблема алгоритм заключается в том, чтобы зашифровать сообщение М, которое может быть представлено на ЭК в виде точки 𝑃𝑚 (𝑥,𝑦).[15]
В шифровании и дешифровании сообщения, как и в случае передачи ключей по каналу связи, в качестве параметров выбирается эллиптическая кривая 𝐸𝑝 (𝑎,𝑏) и точка пораждающая точка G которая принадлежит данной кривой. Пользователь 1 выбирает закрытый ключ 𝑛𝐵 и вычисляет открытый ключ путем перемножения закрытого ключа на точку G. Чтобы зашифровать сообщение 𝑃𝑚 используется открытый ключ пользователя 2 (PB). Пользователь 1 выбирает случайное целое положительное число k и вычисляет зашифрованное сообщение 𝐶𝑚, являющееся точкой на эллиптической кривой.
𝐶𝑚 = (𝑘 × 𝐺,𝑃𝑚 + 𝑘 × 𝑃𝐵) (3.6)
Для того, чтобы расшифровать сообщение (3.6), пользователь 2 умножает первую координату точки на свой закрытый ключ и получает результат из второй координаты по формуле (3.7):
𝑃𝑚 + 𝑘 × 𝑃𝐵 − 𝑛𝐵 × (𝑘 × 𝐺)=𝑃𝑚 + 𝑘 × (𝑛𝐵 × 𝐺)− 𝑛𝐵 × (𝑘 × 𝐺)= 𝑃𝑚 (3.7)
Пользователь 1 зашифровал сообщение Pm добавлением к нему 𝑘∗𝑃𝐵. Никто не знает значения k, следовательно, хотя PB и является открытым ключом, никто не знает k × PB. Человеку, который пытается взломать алгоритм придется вычислить k, зная G и k × G. Эта операция довольно сложная.
Получатель также не знает k, но ему в качестве подсказки посылается k × G. [16] Умножив k × G на свой закрытый ключ, получатель вычислит значение, которое было добавлено отправителем к исходному сообщению. [17] Тем самым получатель, не зная k, но имея свой закрытый ключ, может восстановить незашифрованное сообщение. [18]
4 ГЛАВА. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ
Исследование эффективности выбранных криптографических алгоритмов в моей работе будет показано с помощью сбора временных показателей. В качестве сравнения будет рассмотрено время, которое необходимо для шифровки входного сообщения, время для дешифровки, а также, будет рассматриваться время, которое необходимо злоумышленнику для того чтобы взломать код, зная параметры кривой открытый ключ и зашифрованное сообщение.
Выбранные данные представлены в виде таблиц для более удобного сравнения полученных данных.
Исходя из этого, было решено создать приложение, которое может обрабатывать выбранные данные для кривых и анализировать время, потраченное для на обработку вычислений. В качестве среды разработки была выбрана Microsoft Visual Studio 2012, а в качестве языка программирования был выбран – Visual Basic.
В программе было реализовано добавление новых эллиптических кривых в базу данных, для того чтобы пользователь мог выбрать параметры из предложенного списка. Данную базу данных можно изменять и расширять.
В ходе реализации программного кода было принято решение брать текст для шифровки из текстового файла. Тем самым любой человек, который будет пользоваться данной программой может спокойно зашифровать любой текст.
В программе были реализованы несколько функция для удобства вычислений.
Do'stlaringiz bilan baham: |