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

Ашық кілтті криптожүйелер (асимметриялы жүйелер – аж). Сандар теориясына кіріспе

Ашық кілтті криптожүйелер классикалық және қазіргі кездегі алгебра негізінде өңделген (Диффи және Хеллман, 1975ж.)

Оның мәні: АЖ-ның әрбір адрес иесімен арнайы ереже бойынша өзара байланысқан екі кілт генерацияланады: 1-ші кілт – ашық, екіншісі – жабық.

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

Ашық кілтті криптожүйелер келесі қасиеттерге ие біржақты функцияларды қолданады:

  • Х-тің берілген мәнінде біршама f(x) мәнін есептеу керек және y=f(x) үшін Х-ті табу мүмкін емес.

Келесі тұрақты өзгерулер қолданылады:

  1. Үлкен сандарды жәй көбейткіштерге бөлу.

  2. Шекті өрісте логарифмді есептеу.

  3. Алгебралық теңдеулердің түбірлерін есептеу.

1: Тікелей есеп – Р және Q екі өте үлкен бүтін сандардың туындысын есептеу, яғни

мәндерін есептеу, ЭЕМ үшін біршама күрделі емес есеп.

Кері есеп – көбейткіштерге үлкен бүтін санды бөлу, яғни үлкен N үшін шешілмейтін есеп N=P*Q үлкен санның Р және Q бөлгіштерін табу.

Сандар теориясының қазіргі бағалары бойынша N санын бөлуде бүтін N2664 және PQ үшін -не жуық операциялар қажет болады, яғни қазіргі ЭЕМ-дер үшін есептер мүлдем шешілмейді.

2: Бірбағытты функциялардың келесі мысалы – бекітілген негізбен және модулі бар модульді экспонента.

Айталық А және N – 1  А < N болатын бүтін сандар.

ZN жиынын анықтаймыз:

Сонда N модулі бойынша А негізі бар модульді экспонента мына функцияны береді:

мұндағы х – бүтін сан, 1  х < N-1.

fA,N(x) функциясының мәнін жылдам есептейтін тиімді алгоритмдер бар.

Егер Y =Ax болса, онда былай жазуға болады:

Сондықтан fA,N(x) функциясын айналдыру есебін дискретті логарифмдеу есебі деп атайды.

Дискретті логарифмдеу есебі келесі түрде құралады:

Белгілі А, N, Y үшін бүтін X санын табу керек:

Дискретті логарифмнің алгоритмін есептеу әлі табылған жоқ. Сондықтан модульді экспонента бірбағытты функция болып саналады. Бүтін сандар үшін сандар теориясының қазіргі бағалары бойынша:

Дискретті логарифмдеу есебін шешу 1026 операцияларын қажет етеді. Бұл есеп көбейткішке бөлгендегі есепке қарағанда 103-не көбірек есептеу күрделілігінен тұрады.

Ашық кілтті криптожүйелерді тұрғызу үшін қолданылатын функциялардың екінші маңызды класы «жасырын кодты» бірбағытты функциялар болып табылады.

 Ашық кілтті жүйелерге (АКЖ) сенімді ақпаратты қорғауды кепілдік ету үшін екі талап қойылады:

  1. Бастапқы мәтіннің өзгеруі тұрақты болуы керек және оны ашық кілттің негізінде қалпына келуін шығару.

  2. Ашық кілттің негізінде жабық кілттің анықталуы қазіргі кездегі технологиялық деңгейде мүмкін емес.

 Ашық кілтті криптожүйелер (АКК) алгоритмдерін үш тағайындалуда қолдануға болады:

  1. Берілетін және сақталатын мәліметтерді өзіндік қорғау құралдары ретінде.

  2. Кілттерді таратуға арналған құралдар ретінде. (АКК алгоритмдері дәстүрлі криптожүйелерге қарағанда қиындау. Сондықтан пратикада АК-ның көмегімен кілттерді тарату тиімдірек, содан кейін симметриялы алгоритмдердің көмегімен үлкен ақпаратты ағындарды ауыстыруды жүзеге асыру).

  3. Аутентификациялар құралдары ретінде (қолданушылар).

Сандар теориясына кіріспе.

Конгруэнттілік және сандарды модуль бойынша алу.

N басқа санның модулі бойынша А санын алу операциясы нәтижелі В саны А санының N санына бөлгендегі қалдық болып табылады:

Бо - болатынын байқаймыз.

Модуль бойынша сандарды алу операциясы 3 негізгі қасиеттен тұрады:

  1. аддитивтілігі:

  1. мультипликативтілігі:

  1. дәреженің сақталуы:

Модуль бойынша жұмыс істеу ыңғайлы, өйткені олар барлық аралық шамалар диапазоны мен нәтижелерді шектейді. n модулі бойынша а санының дәрежесін (ax mod n) есептеуді көбейтулер мен бөлулер қатары ретінде орындауға болады. Бұл операциялар дистрибутивті болғандықтан әр кезде модуль бойынша келтіруді орындай отырып, көбейткіштер тізбегі қатары ретінде дәрежеге шығарады. Бұл ұзын сандармен жұмыс жасағанда белгілі болады (200 бит және одан көп).

Мысал.

a8 mod n есептеу керек.

(а*а*а*а*а*а*а*а) mod n орындауға болмайды. Мұның орнына модуль бойынша үш кіші көбейту мен үш кіші келтіру орындалады:

А және В сандарының ең үлкен ортақ бөлгіші (ЕҮОБ) – бұл осы екі сан да қалдықсыз

бөлінетін сандардың үлкені.

Мысал.

Ең үлкен ортақ бөлгішті Евклид алгоритмінің көмегімен есептеуге болады. Евклид бұл алгоритмді өзінің б.э.д. 300 жыл бұрын жазған «Начала» кітабында көрсеткен.

ЕҮОБ (а,b) іздеу алгоритмі:

Белгілеулер:

  • qi – жеке;

  • ri – қалдық.

`

Бөлуден қалған ri қалдық натурал сандар тізбегінің қатаң кемуін құрайды. Бұл тізбектен алатынымыз, rк - а және в сандарының ортақ бөлгіші, сонымен бірге а мен в-ның ортақ бөлгіші rк болады: rк=ЕҮОБ(а,b) (Алгоритм кепілдікпен Log2(max) итерациясынан кейін А және В-ның ең үлкен ортақ бөлгішін табады, мұндағы max – А мен В сандарының үлкені).

Жай сан – бұл 1-ге және өзіне ғана бөлінетін, басқа ешқандай санға қалдықсыз бөлінбейтін сан.

Өзара жай сандар – бұл А мен В-ның мүмкін жай сандар болмайтын, бірақ екеуі де қалдықсыз бөлінетін ортақ бөлгіші жоқ сандар (әрине 1 санынан басқа).

N модулі бойынша А санын шегеру – бұл А санын N санына бөлгендегі бүтін санды қалдық.

N модулі бойынша А санын шегеру жиыны N модуліне А*L сандарын бөлудегі әр түрлі қалдықтар жиынтығы, мұндағы L - 1-ден N-1-ге дейін барлық мәндерді қабылдайды.

Мысалы, 5 модулі бойынша 3 санын шегеру жиыны мынадай болады: {3,1,4,2}. Шегеру векторының ұзындығы максимальды және А мен N өзара жай сандар болғанда N-1-ге тең.

Мультипликативті-кері сандарды есептеу

Нақты сандар арифметикасында 0-ге тең емес а үшін мультипликативті кері шаманы есептеу қиын емес:

=1/a немесе а*=1.

Мысалы, 4 санынан мультипликативті кері шама 4*1/4=1 болғандықтан ¼-ке тең.

Модулярлы арифметикада кері шамаларды есептеу күрделі есеп болып табылады. Мысалы, 4*х  1(mod 7) салыстырмасын шешу 4*х  7*k+1 үшін х және k мәндерін табуға эквивалентті, мұндағы х және k – бүтін сандар.

Бұл есептің жалпы қалыптасуы – х бүтін санды табу:

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

Бұл есептің шешімі кейде болады, кейде болмайды. Мысалы, 14 модулі бойынша 5 саны үшін 5*3=151(mod 14) болғандықтан кері шама 3-ке тең. Екінші жағынан, 2 саны 14 модулі бойынша кері шамадан тұрмайды.

Жалпы, х(mod n) салыстырмасы жалғыз шешімнен тұрады, егер а және n – өзара жай сандар болса.

Егер а және n өзара жәй сандар болмаса, онда  х(mod n) салыстырмасының шешімі болмайды.

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

Айталық, бүтін сан а  {0,1,2,…,n-1}. Егер ЕҮОБ(а, n)=1 болса, онда i=0,1,2,…,n-1 үшін а*i (mod n) - {0,1,2,…,n-1} жиынын алмастыру болып табылады. Мысалы, егер а=3 және n=7 (ЕҮОБ(3,7)=1) болса, онда i=0,1,…,6 үшін 3*i(mod 7) - {0,1,2,…,6} жиынының тізбегі болады.

ЕҮОБ(а,n)  1 жағдайда ол дұрыс емес болады.

Мысалы, егер а=2 және n=6 болса, онда 2*i(mod6)0,1,2,4,0,2,4, i=0,1,2,…,5 үшін.

Егер ЕҮОБ(а,n)=1 болса, онда , 0<<n болатын кері сан бар болады:

а*(mod n).

Шынымен де, а*i(mod n) - 0,1,…, n-1 алмасуы болады, сондықтан а*i1(mod n) үшін i бар болады.

Жоғарыда келтірілгеннен, 0-ден n-1-ге дейінгі бүтін сандар жиынын n модулі бойынша шегерулердің толық жиыны деп айтамыз. Бұл кез келген а (а>0) бүтін сан үшін оның шегеруі:

r =a(mod n)

білдіреді, бұл 0-ден n-1-ге дейін интервалдағы кейбір бүтін сандар.

Келтірілген шегерулер жиыны бұл n-мен өзара жәй шегерулердің ішкі жиыны.

k жәй санның модулі бойынша келтірілген шегерулер жиыны n-1 элементтерден тұрады.

МЫСАЛ.

Айталық n=11 модулі – жәй сан. 11: {0,1,2,…,10} модулі бойынша шегерудің толық жиыны. Келтірілген шегерулер жиынын құастыруда олардан бір элемент қана (0) өшіріледі. 11 модулі бойынша келтірілген шегерулер жиыны 11-1=10 элементтен тұрады.

Мысал.

Айталық модуль n=10 болсын. n=10: {0,1,2,…,9} модулі бойынша шегерулердің толық жиыны. Олардан тек 1,3,7,9 ғана 10-мен ортақ көбейткіші жоқ. Сондықтан 10 модулі бойынша шегерудің келтірілген жиыны {0,1,2,…,9}-ға тең. Бұл келтірілген жиынның қалыптасуында мына элементтер алынып тасталған:

  • 0 (1 элемент);

  • 2 еселілер (4 элемент);

  • 5 еселілер (1 элемент).

p*q=n жәй сандардың туындысы үшін келтірілген шегерулер жиыны (p-1)(q-1) элементтерден тұрады.

n=p*q=2*5=10 үшін келтірілген жиындағы элементтер саны (p-1)(q-1)=(2-1)(5-1)=4

Мысал.

27=модулі бойынша келтірілген шегерулер жиыны 18 элементтен {1,2,4,5,7,8,10,11,13,14,16,17,19,20,22,23,25,26} тұрады. Шегерулердің толық жиынынан 3 еселі элементтер алынып тасталады (барлығы тоғыз элемент).

Модуль үшін n=3, r=3 болғанда (n-1) элементтердің жәй дәрежесі түрінде аламыз:

(3-1)= *2=18.

Эйлер функциясы (n) n-мен өзара жәй, n-нен кіші оң бүтін сандар саны. Эйлер функциясы (n) келтірілген шегерулер жиынында элементтер санын сипаттайды.

n модулі

(n) функциясы

n – жәй сан

n-1

n(n-1)

р*q (p,q – жәй сандар)

(p-1)(q-1)

Ферманың кіші теориясы:

Егер n – жәй сан және ЕҮОБ(а,n)=1 болса, онда mod n=1 1(mod n) болады.

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