Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
123.docx
Скачиваний:
83
Добавлен:
01.05.2015
Размер:
817.28 Кб
Скачать

Дәріс 10. Эль-Гамали алгоритмінің негізіндегі электронды қолтаңба

(EGSA)

P үлкен жәй сан:

және G үлкен бүтін сан таңдалсын, мұнда G<P:

Олар қолтаңба қойылған құжатты жіберушімен және алушымен қолданылады және құпия емес. Жіберуші кездейсоқ Х бүтін санын таңдайды, мұнда:

1  X  (P-1)

және Y-ті есептейді:

Y=GX mod P

мұнда Y – жіберушінің қолтаңбасын тексеру үшін қолданылатын ашық кілт;

X – құжаттарға қолтаңба қоюға арналған жіберушінің құпия кілті.

М хабарына қолтаңба қою үшін алдымен жіберуші оны h(.) хэш-функциялардың көмегімен бүтін m-ге араластырады, мұндағы m=h(M):

1<m<(P-1)

және кездейсоқ К бүтін санды генерациялайды:

1<K<(P-1)

сонда K және (P-1) - өзара-жәй сандар болады.

Содан кейін жіберуші бүтін а-ны есептейді:

a=GK mod P

және Эвклидтің кеңейтілген алгоритмін қолдана отырып, Х құпия кілтінің көмегімен

m=X*a+K*b (mod (P-1))

теңдеуінен b бүтін санын есептейді.

(a, b) жұп сандары S сандық қолтаңбаны құрайды:

S=(a, b).

(M, a, b) үш саны (X, K) жұп саны құпия сақталғандықтан алушыға беріледі. (M, a, b) қолтаңба қойылған хабар қабылданғаннан кейін алушы S=(a, b) қолтаңбасы М хабарына сәйкес келе ме жоқ па соны тексеруі керек. Ол үшін алушы келесіні орындайды:

  1. М алынған хабарын араластырады, яғни m=h(M) есептейді;

  2. A=Yaab (mod P) мәндерін есептейді және

A=Gm (mod P)

болған жағдайда М хабарын дұрыс деп хабарлайды. Басқаша айтқанда, алушы

Yaab (mod P)= Gm (mod P)

арақатынасының дұрыстығын тексереді.

Бұл теңдеу тек S=(a, b) болғанда ғана орындалады, яғни М-нің астындағы қолтаңба Y ашық кілті алынған Х құпия кілтінің көмегімен алынады (Сайып келгенде, М хабарын жіберушінің берілген Х құпия кілттің иесі екеніне және жіберуші дәл осы нақты М құжатқа қол қойғанына сенімді болуға болады).

Эль-Гамали әдісі бойынша әр қолтаңбаның орындалуы К жаңа мәнін талап етеді (бұл мән кездейсоқ таңдалуы керек).

Мысал.

P=11, G=2 сандарын және X=8 құпия кілтін таңдаймыз. Y=GX mod P ашық кілтінің мәнін есептейміз:

Y=28 mod 11=3

Есептеуді толық түсіну үшін:

Y=(28 mod 11=((22 mod 11)2 mod 11)2 mod 11)=3

Айталық, М бастапқы хабары m=5 хэш-мәнімен сипатталатын болсын. m=5 мәннен тұратын М хабары үшін сандық қолтаңбаны есептеу үшін алдымен K=9 кездейсоқ санын таңдаймыз.

K және (P-1) өзара жәй сандар екеніне көз жеткіземіз. Шынымен де, ЕҮОБ (9, 10)=1. Ары қарай қолтаңбаның a және b элементтерін есептейміз:

a=GK mod P

а=29 mod 11=6

Мұнда Х - 2 дәреже болмайды ((aX mod h) есептелуіне) Х санының екілік жазбасы Х санын 2 дәреженің қосындысы ретінде көрсетуге мүмкіндік береді:

X=25(10), X=91001

Сондықтан 9=20+23. Сонда:

29 mod 11=(2*28) mod 11=2*((22)2)2 mod 11=[2(mod 11)*28 mod 11) mod 11]=(2*3) mod 11=6.

b элементін Евклидтің кеңейтілген алгоритмін қолдана отырып анықтаймыз:

m=X*a + K*b (mod (P-1))

m=5, a=6, X=8, K=9, P=11 болғанда алатынымыз:

5=(6*8+9*b)(mod 10),

9*b-43 (mod 10).

Демек, бұдан шығатыны b=3.

Ары қарай жіберуші қолтаңба қойылған хабарды береді. Қолтаңба қойылған хабар мен Y=3 ашық кілтті қабылдай отырып, қолданушы М хабары үшін хэш-мәнін есептейді: m=5, одан кейін екі санды есептейді:

  1. Yaab (mod P)=36*63(mod 11)=10(mod 11)

  2. Gm (mod P)=25(mod 11)=10(mod 11)

Бұл екі бүтін сан тең болғандықтан, қолданушымен қабылданған хабар дұрыс болып табылады.

Сандық сигнатура

Сандық сигнатура алушымен сыртқы түрмен хабардың дұрыстығын дәлелдеу үшін қызмет етеді.

Хабардың мазмұнынан, жіберушінің идентификаторынан тәуелді символдар жолынан тұрады. Сандық сигнатураны тексеру үшін В қолданушы С делдалға сигнатураны верификациялау үшін өзі қолданған ақпаратты көрсетуі керек.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]