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

Кері шамаларды табудың негізгі тәсілдері

    1. а*(mod n)1 (а*х=1(mod n) болатын х=(mod n) табылмайынша) болатын  1(mod n) табылмайынша 1,2,…,n-1 мәндерін кезекпен тексеру.

Мысал.

Айталық n=7, a=5 болсын. Табу керек: х = (mod n).

а*х  1(mod n) немесе 5*х =1(mod 7)

n-1=7-1=6,

Алатынымыз, x=5-1(mod 7)=3

Тексеру нәтижелері:

х

5*х

5*х(mod 7)

1

2

3

4

5

6

5

10

15

20

25

30

5

3

1

6

4

2

    1. Эйлера функциясы (n) белгілі болса, (mod n) табамыз:

(mod n) (mod n)

Мысал.

Айталық n=7, a=5 болсын. Табу керек: х=(mod n).

х= (mod 7). n=7 модулі – жәй сан. Сондықтан Эйлер функциясы (n)= (7)=n-1=6 болады. Кері шама 5-тен mod7-ге дейін:

(mod n)= (mod n)=mod 7=mod 7 =(mod 7) (mod 7) mod 7=

(25 mod 7)(125 mod 7) mod 7=(4*6) mod 7=24 mod 7.

Сонымен, х =(mod 7)=3.

    1. Евклидтің кеңейтілген алгоритмінің көмегімен (mod n) кері шамасын табу.

Евклидтің кеңейтілген алгоритмі:

Берілген а және b теріс емес бүтін сандар үшін бұл алгоритм (U1,U2,U3) векторын анықтайды:

a* U1+b*U2=U3=ЕҮОБ(a,b).

Есептеу кезінде (V1,V2,V3), (t1,t2,t3) қосымша векторлар қолданылады. Туынды векторлармен әрекет барлық есептеу кезеңінде мына арақатынастар орындалады:

а* t1+b* t2= t3,

a* U1+b* U2= U3,

a* V1+b* V2= V3.

(mod n) кері шаманы есептеу үшін b=n, ЕҮОБ(a,n)=1 болғанда Евклидтің кеңейтілген алгоритмінің жеке жұмыс режимі қолданылады және бұл алгоритм (U1,U2,U3) векторын анықтайды:

U3=1,

a* U1+n*U2=ЕҮОБ(a,n)=1,

(a* U1+n*U2) mod n  a* U1(mod n)  1,

(mod n)  U1(mod n).

Алгоритм қадамдары:

  1. Бастапқы орнату. (U1,U2,U3):=(0,1,n)

(V1,V2,V3):=(1,0,а) орнату.

  1. U3=1?. Егер U3=1 болса, онда алгоритм аяқталады.

  2. Бөлу, шегеру.

q:=[ U3/ V3] орнату керек. Одан кейін орнату керек

(t1,t2,t3):= (U1,U2,U3)- (V1,V2,V3) * q;

(U1,U2,U3):= (V1,V2,V3);

(V1,V2,V3):= (t1,t2,t3).

2-ші қадамға ораламыз.

Мысал.

n=23 модулі және a=5 саны берілген. (mod 23) кері санын табу керек, яғни х=(mod 23).

Евклидтің кеңейтілген алгоритмінің жеке қадамдарының нәтижесі:

q

U1

U2

U3

V1

V2

V3

-

4

1

1

-

0

1

-4

5

-9

1

0

1

-1

2

n=23

5

3

2

1

1

-4

5

-9

0

1

-1

2

а=5

3

2

1

U3=1, U1=-9, U2=2 үшін

(a* U1+n*U2)mod n=(5*(-9)+23*2)mod 23=5*(-9)mod 23  1

(mod n) = (mod 23) = (-9)mod 23=(-9+23)mod 23=14.

Сонымен, х=(mod 23) = 14(mod 23)=14.

Қалдық жайлы қытай теоремасы:

Модуль туындысынан асып түспейтін кез келген теріс емес бүтін санды бір мәнді қалпына келтіруге болады, егер оның осы модуль бойынша шегерулері белгілі болса.

Айталық m1,m2,…,mt – жұптасқан өзара жәй модульдер (1-ден үлкен бүтін сандар), яғни ЕҮОБ(mi,mj) =1, ij үшін.

Айталық а1,а2,…,аt – бүтін сандар, 0 аi  mi.

Айталық М=m1*m2*…*mt – барлық mi-дің туындысы. Мi=M/mi деп белгілейміз. Және Ni - Mi(mod mi)-ға кері болсын, i=1,2,…,t үшін, яғни Mi*Ni  1(mod mi) болады. ЕҮОБ (Mi, mi)=1 болса, онда кері элемент бар болады және Евклид алгоритмінен төмендегі арақатынас жеңіл табылады:

Mi*Ni + mi*ni, i=1,2,…,t.

хai(mod mi), i=1,2,…,t салыстырмасы [0,M-1] интервалында жалғыз ортақ шешім болады

Негізгі әдебиет: 5нег[301-319]

Қосымша әдебиет: 11қос[0-109], 20қос[86-115]

Бақылау сұрақтары:

  1. Ашық кілтті криптожүйелер неге негізделген?

  2. Ашық кілтті криптожүйелерде қандай тұрақты өзгерулер қолданылатынын анықтаңыз.

  3. Ашық кілтті криптожүйелер алгоритмдерін қандай мақсаттарда қолдануға болады?

  4. Ферма теоремасын құрастырыңыз.

  5. Мультипликативті кері шаманы табу тәсілдерін көрсетіңіз.

7лек

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