Кіріспе
Математикада шекті өріс арифметикасы — шекті өрісте (шекті сандағы элементтерді қамтитын өріс) арифметика, бұл рационал сандар өрісі сияқты шексіз сандағы элементтерді қамтитын өрістегі арифметикаға қарсы. Шекті өрістер сансыз көп. Олардың элементтерінің саны міндетті түрде pn түрінде болады, мұнда p — жай сан, ал n — оң бүтін сан. Бірдей өлшемдегі екі шекті өріс изоморфты болады. p саны өрістің сипаттамасы деп аталады, ал оң бүтін n саны — өрістің негізгі өріс бойынша өлшемділігі деп аталады. Шекті өрістер түрлі қолданыстарда қолданылады, оның ішінде классикалық кодтау теориясында, сызықтық блок кодтарында, мысалы, BCH кодтары мен Рид-Соломон қателерді түзетуде, Rijndael (AES) шифрлау алгоритмі сияқты криптография алгоритмдерінде, турнирлерді ұйымдастыруда және эксперименттерді жобалауда.
In mathematics, finite field arithmetic is arithmetic in a finite field (a field containing a finite number of elements) contrary to arithmetic in a field with an infinite number of elements, like the field of rational numbers. There are infinitely many different finite fields. Their number of elements is necessarily of the form pn where p is a prime number and n is a positive integer, and two finite fields of the same size are isomorphic. The prime p is called the characteristic of the field, and the positive integer n is called the dimension of the field over its prime field. Finite fields are used in a variety of applications, including in classical coding theory in linear block codes such as BCH codes and Reed–Solomon error correction, in cryptography algorithms such as the Rijndael (AES) encryption algorithm, in tournament scheduling, and in the design of experiments.
Бастапқы көптіктер
Шекті өрісті құру үшін қолданылатын көптеген азайтылмайтын көптіктер (кейде оларды азайтушы көптіктер деп атайды), бірақ олардың барлығы өрістің бірдей бейнелеуін бермейді. GF(q) шекті өрісінің коэффициенттері бар n дәрежелі монологиялық азайтылмайтын көптік, мұнда 1=q = p^(t) кейбір жай p және оң бүтін t үшін, егер оның барлық түбірлері GF(q^n) примитивті элементтері болса, бастапқы көптік деп аталады. Бұл шекті өрістің полиномиялық бейнелеуінде x примитивті элемент екенін білдіреді. Кем дегенде бір азайтылмайтын полиномиал бар, ол үшін x бастапқы элемент болады. Басқаша айтқанда, примитивті полиномиал үшін x-тің дәрежелері өрістегі нөлден басқа барлық мәндерді тудырады. Келесі мысалдарда полиномиялық бейнелеуді қолданбаған дұрыс, өйткені x мәні мысалдар арасында өзгереді. Мониктік азайтылмайтын көптік x^(8) + x^(4) + x^(3) + x + 1 / GF(2) примитивті емес. λ осы полиномияның түбірі болсын (полиномиялық өрнекте бұл x болады), яғни 1=λ^(8) + λ^(4) + λ^(3) + λ + 1 = 0. Енді 1=λ^(51) = 1, сондықтан λ GF(2^8) примитивті элементі емес және 51-ші реттік көбейтуші кіші топты тудырады. Мониктік азайтылмайтын көптік x^(8) + x^(4) + x^(3) + x^(2) + 1 үстіне GF(2) примитивті, ал барлық 8 түбірлер GF(2^(8)) генераторлары болып табылады. Барлық GF(2^8) жалпы 128 генераторға ие (примитивті элементтердің саны), ал бастапқы көпмүше үшін олардың 8-і азайтушы көпмүшенің түбірі болып табылады. Х-тің шекті өрістің генераторы ретінде болуы көптеген есептеу математикалық операциялар үшін пайдалы.
Көбейту
Шекті өрісте көбейту — шекті өрісті анықтау үшін қолданылатын ирредукцияланатын азайту полиномы бойынша модульдік көбейту. (Яғни, бұл көбейтуден кейін азайту полиномын бөлігіш ретінде пайдалана отырып бөлу операциясы, ал қалдық — көбейтінді нәтижесі.) Шекті өрістегі көбейтуді көрсету үшін "•" символын қолдануға болады.
Алып жүруге болмайтын көбейту
Бинарлы өрістер GF(2n) үшін, өріс көбейтуді CLMUL нұсқаулар жиынтығы сияқты тасымалдаусыз көбейту арқылы жүзеге асыруға болады, бұл n ≤ 64 үшін тиімді. Көбейту бір тасымалдаусыз көбейтуді өнімді алу үшін (2n − 1 битке дейін) пайдаланады, өріс полиномының алдын ала есептелген керісімен тағы бір тасымалдаусыз көбейтуді бөлімді алу үшін пайдаланады = ⌊өнім / (өріс полиномы)⌋, содан кейін бөлімді өріс полиномымен көбейту және xor операциясы: нәтиже = өнім ⊕ ((өріс полиномы) ⌊өнім / (өріс полиномы)⌋). Соңғы 3 қадам (pclmulqdq, pclmulqdq, xor) x86 pclmulqdq нұсқауын пайдаланып, CRC-ні жылдам есептеу үшін Барретт азайту қадамында қолданылады.
Құрама өріс
k құрама сан болған кезде, бинарлық өрістен GF(2k) оның қосалқы өрістерінің біріне, яғни GF((2m)n) кеңейту өрісіне изоморфизмдер болады, мұнда 1=k = m n. Осы изоморфизмдердің бірін пайдалану математикалық қарастыруларды жеңілдетеді, себебі кеңейту дәрежесі кішірейеді, бірақ элементтер енді үлкен қосалқы өрісте көрсетіледі. Аппараттық жүзеге асыру үшін шлюздер санын азайту үшін процесс бірнеше деңгейлі ұялауды қамтуы мүмкін, мысалы GF(28) -ден GF(((22)2)2) -ге бейнелеу. Орындалу шектеулері бар: екі бейнелеудегі операциялар үйлесімді болуы керек, сондықтан изоморфизмді нақты пайдалану қажет. Нақтырақ айтқанда, изоморфизм «карта» арқылы белгіленеді, ол GF(2k) элементін GF((2m)n) -ге бейнелейтін биекция болып табылады және келесі шарттарды қанағаттандырады: карта(a + b) = карта(a) + карта(b) және карта(a b) = карта(a) карта(b), мұнда сол жақтағы операциялар картаға түсіру алдында GF(2k) -да, ал оң жақтағы операциялар картаға түсіруден кейін GF((2m)n) -де орындалады. Изоморфизм әдетте k қатарлы k биттік матрица арқылы жүзеге асырылады, ол GF(2k) элементін (k қатарлы 1 биттік матрица ретінде қарастырылатын) GF(2) үстінен матрицалық көбейтуге қолданылады. α-ны GF(2k) -ның примитивті элементі, ал β-ны GF((2m)n) -ның примитивті элементі деп анықтайық. Онда βj = карта(αj) және αj = карта−1(βj). α және β мәндері бейнелеу матрицасын және оның кері матрицасын анықтайды. Нақты есептеулер GF((2m)n) -де орындалғандықтан, GF((2m)n) үшін кемітуші полином әдетте примитивті болады және β = x GF((2m)n) -де. Қосу және көбейтудің үйлесімділік шартын сақтау үшін GF(2k) -ның кез келген примитивті элементі α-ны табу үшін іздеу жүргізіледі. Егер GF(2k) үшін кемітуші полином примитивті болса, баламалы бейнелеу әдісі мүмкін: GF(2k) үшін кемітуші полиномның 1 биттік коэффициенттері GF(2m) -нің 0 немесе 1 элементтері ретінде қарастырылады, және n дәрежелі m примитивті фактор болады, олардың кез келгенін GF((2m)n) үшін кемітуші полином ретінде пайдалануға болады. Композиттік өріске бейнелеуді GF(pk) -ны (p кез келген жай сан үшін) GF((pm)n) сияқты композиттік өріске бейнелеуге жалпылауға болады.