diff --git "a/www/\321\215\320\273\321\214_\320\263\320\260\320\274\320\260\320\273\321\214.html" "b/www/\321\215\320\273\321\214_\320\263\320\260\320\274\320\260\320\273\321\214.html" new file mode 100644 index 0000000..da92a24 --- /dev/null +++ "b/www/\321\215\320\273\321\214_\320\263\320\260\320\274\320\260\320\273\321\214.html" @@ -0,0 +1,60 @@ + + +
+ +Схемы Эль-Гамаля
+
+ Основная идея обоснована на практической невозможности фальсификации цифровой подписи. Для этого нужна более сложная вычислительная задача, чем разложение на множители большого целого числа. Также Эль гамалю удалось избежать слабости алгоритма ЭЦП RSA, связанной с подделкой ЭЦП без определения секретного ключа.
+Что бы генерировать пару ключей, нужно выбрать простое целое число P и G, причем G < P. Получатель и отправитель подписанного документа используют одинаковые большие числа P — (~10308 = ~21024) и G (~10154 = ~1512) которые не секретные. Отправитель выбирает случайное целое число X, 1 < X £ (P — 1), и вычисляет: Y = GX mod P; + Число Y является открытым ключом, который используется для проверки подписи отправителя. Число Х является секретным ключом отправителя для подписи документов. Что бы подписать сообщение М, сначала нужно что бы отправитель захэшировал его с помощью хэш-функции h в целое число m: m = h(M), 1 < m < (P — 1), и генерирует случайное целое число К, 1 < K < (P — 1). такое что К и (P — 1) будут взаимно простыми. Потом отправитель вычисляет целое число a: a = GK mod P; используя расширенный алгоритм Евклида, вычисляет с помощью секретного ключа Х целое число b: m = X * a + K * b (mod (P — 1)); Пара чисел (a, b) образуют цифровую подпись S: S = (a, b); + Тройка чисел (M, a, b) транспортируется получателю, в то время как пара чисел (X, K) держится в секрете. Получатель получив сообщение (M, a, b) должен вычислить число m: m = h(M), затем получатель вычисляет: A = Ya ab mod (P), и признает сообщение M подлинным, если — A = Gm mod (P). Можно строго математически доказать, что последнее равенство будет равно тогда, когда подпись S под документом M получена с помощью именно секретного ключа X, из которого был получен открытый ключ Y. Нужно отметить, что процедура каждой подписи требует нового значения К, и выбирается случайным образом.
+
Схему Эль-Гамаля можно использовать как для цифровой подписи, так и для шифрования. + Цифровая подпись Эль-Гамаля состоит из пары блоков r,s. В механизме этой подписи используются те же параметры что и в криптосистеме Эль-Гамаля.Преобразование, естественно, производится лицом, обладающим секретным ключом. Кроме того, используется хэш-функция сообщения h(m). Лицо, подписывающее документ, должно для каждого подписываемого сообщения m выбрать рандомизатор k и вычислить «предподпись» r = g k (p) . Затем необходимо использовать секретный ключ как один из коэффициентов сравнения, из которого определяется блок подписи s. Сравнение имеет вид h = h(m)= xr + ks mod(p −1). Здесь модулем сравнения выбрано число p −1, поскольку обе части сравнения в проверочном соотношении будут участвовать в показателях. Заметим, что число r может равняться p−1, поскольку оно определяется из сравнения по модулю p. Подпись r, sсчитается действительной, если g h = g xr+ks (p). Поскольку y = g x (p) и r = gk (p), то окончательный вид проверочного соотношения следующий: gh= yrrs(p). Таким образом, для проверки подписи достаточно знания открытого ключа.
+ + + + + + + + + + + + +