
- •1.Симметричные
- •2.Асимметричные
- •Асимметричноешифрование.
- •Алгоритмпередачисекретногоключапооткрытомуканалу
- •Лекция№2 Элементытеориичисел
- •АлгоритмЕвклида
- •Лекция№3
- •1)ПлотностьпоявленияпростыхчиселназаданноминтервалепадаетсувеличениемN.
- •Лекция№4 Получениепростыхчисел.
- •1)Самыйдревнийспособполученияпростыхчисел,какмыужезнаем,-
- •РешетоЭратосфена
- •7.Б.Увеличитьсчетчикpна2.Перейтикпункту7.
- •ПроверкапростотычиселМерсенна
- •ТестЛюка-Лемера
- •Лекция5
- •Разложениечиселна2простыхсомножителя
- •АлгоритмБухштаба
- •АлгоритмФерма
- •Лекция№6 Числовыефункции
- •ФункцияЭйлера
- •Мультипликативнаяфункция
- •ФункцияМебиуса
- •0,Еслиdделитсянаквадратнекоторогоростогочисла.
- •1)Находимвседелителиdi|m
- •Числоваяфункция
- •2.ВозведениенатуральныхчиселпомодулювбольшиестепенипосхемеГорнера
- •Лекция8 Сравнимостьпомодулю.Модулярнаяарифметика
- •Свойстваоперацийсравнения
- •Лекция9 Модулярнаяарифметика(продолжение)КвадратичныевычетыСтепенныевычеты
- •Лекция10 Общаяалгебра
- •1)Замкнутость;
- •1)Замкнутость:длялюбыхαиβизSэлементпринадлежитS,где(*)-
- •Лекция11 Конечныеполя
- •Характеристикаполя
- •Вычислениеобратныхэлементов
- •11.Какиематематическиеоперациииспользуютсявалгоритмах? лекция12 Многочленынадконечнымполем
- •ПримитивныеполиномынадполемGf(p)
- •Алrебраическиеструктурынадмножествоммногочленов КольцомногочленовнадполемGf(p)
- •Корнимногочлена
- •Лекция13 Расширениеполей
- •Лекция14 Дополнительныйматериализраздела Теориячисел
- •1.Уравнениясравнений
- •1)Имеется1решение
- •2)Неимеетсярешений
- •2.Китайскаятеоремаобостатках
- •3.Тестированиечиселнапростоту Псевдопростыечисла
- •ТестЛюка
- •4.ЧислаКармайкла
- •5.ПолучениепростыхчиселдляалгоритмаRsa Процедураполученияустойчивыхпростыхчисел
- •Лекция15
- •1.Генераторыпсевдослучайныхпоследовательностей
- •2.ГпсПнаосновепроизведениямногочленов
- •Произведениямногочленов
- •Лекцич16 СпособыпредставленияэлементовполяGf(2n)
- •АрифметическиеоперациинадэлементамиполяGf(2n), заданнымивстандартномбазисе
- •Классическаясхемаумножения
- •МатематическаямодельалгоритмаRijndael
- •РаундпреобразованияалгоритмаRijndael
- •4.КакиешагисодержитраундшифрованияалгоритмаRijndael?
- •Перечень темпопрактическимзанятиям
- •Списоклитературы
Лекцич16 СпособыпредставленияэлементовполяGf(2n)
ДляпредставленияэлементоввполяхГалуавидаGF(2n)существуютразличныеспособы,образующиеизоморфныеполя:
-полиномиальное;
-стандартныйбазис;
-припомощисопровождающейматрицы;
-параллельныемассивы;
-нормальныйбазис-ввиде:
-значениястепенейпримитивногоэлементаξ,
-степенейпримитивногоэлементаξ.
I.Полиномиальноепредставление.
Каждый элемент GF(2n) можно представить в виде некоторогомногочлена
f(x)=0+1x+…+n−1xn-1, (3.1)
-степениdeg(f(x))≤n-1
-скоэффициентамиiGF(2).
II.Стандартныйбазис(векторноепредставление):
-элементыполязадаютсяполиномамивида(3.1);
-хранятсякоэффициентыполиномаf(x)ввидедвоичноговектора.Используются2методарасположениястаршихстепенейполиномаf(x):
-математическаяформазаписи(записьслеванаправо):
-слеварасполагаетсястаршаястепеньполинома,
-оптимально для операций деления и увеличения степениполиномов;
-обратныйпорядок(записьсправаналево):
-оптимальнодляоперацийумноженияисложенияполиномов.Достоинствамивекторногопредставленияявляетсяследующее:
-рациональноиспользуетсяпамять,
-простотавыполненияоперацийсложенияивычитанияполиномов
(например,нарегистровыхструктурах).
Недостаткомвекторногопредставленияявляетсято,чтотребуетсядополнительноевремяЭВМдлявыборкикоэффициентов,таккакобработкаданныхвЭВМвыполняетсябайтами,анебитами.
Операцияполучениябинарногокоэффициентаполиномареализуетсяследующимобразом:
1)находитсябайт,содержащийтребуемыйкоэффициентввидебита;
2)байтсдвигаетсявправо,чтобыбитоказалсянамладшейпозициибайта;
3)байтлогическиумножаетсянадвоичнуюединицу:
-дляобнуленияостальныхбит,
как:
-ивыделениянужногобита.
НаязыкепрограммированияСиоперацияполучениябитавыполняется
(x>>i)&1,
гдеx-значениемашинногослова,
i-позицияискомогобита,
>>-сдвигзначенияпеременнойxнаiпозицийвправо(слевадобавляютсянули),
&-операциялогическогоумножения.
Дляустановкизначенияy (y{0,1})дляi-гобитаиспользуетсяоперация:
(x&~(1<<i))|(y<<i),
где<<-операциясдвигазначенияпеременнойyнаiпозицийвлево(справадобавляютсянули),
~(…)-двоичнаяинверсиязначениявскобках,
|-операциялогическогосложения,
(x&~(1<<i))-обнулениеi-гобитавпеременнойx(демаскированиеi-гобита).
Леваячастьвыраженияобнуляетi-ыйбитвчислеx,аправаячасть-
устанавливаетновоезначениеyвi-юпозицию.
Стандартныйбазисприменяется:
-дляпереводамеждусобойдвухтиповпредставленияэлементовнормальногобазиса:
-изстепенипримитивногоэлементавегозначение,
-иобратно.
III.Представление элементовконечногополяGF(2n) при помощи
сопровождающейматрицыA,заданнойпримитивныммногочленом
ψ(x)=0+1x+…+n−1xn-1+xn,гдеi{0,1}.
СопровождающаяматрицаAстроитсянабазеполинома-модуляψ(x)
следующимобразом.
1.МатрицаA=(aij),aij{0,1},i,j0,n1,заполняетсянулями.
2.Единицамизаполняетсяглавнаянижняяподдиагональ:
-дляi1,n2выполняетсяаi+1,I=1.
3.В верхнюю строку матрицы записываются коэффициенты принеизвестныхψ(x)впорядкеубываниястепенейнеизвестных:
-дляi0,n1:a0,i=n-i-1.
n
Тогдаполучимматрицуследующеговида(рис.3.1).
СтепениэтойматрицыA,A2,…,
определяютэлементыполяGF(2n):
A21
вместеснулевойматрицей
-нижняястрокаматрицыАiввидевектора(a(n-1)0,a(n-1)1,…,a(n-1)(n-1))
задает
-соответствующийi-ыйэлементполяGF(2n)-степеньпримитивногоэлементаξi,i0,2n2.
n-1 n-2 n-3 … 2 1 0
1 0 0 0 0 0
An?n= 0 1 0 … 0 0 0
0 0 1 0 0 0
… … …
0 0 0 0 1 0
Рис.3.1.Структурасопровождающейматрицы
Пример3.1.Представим элементыполя GF(23) в виде степенейсопровождающейматрицы.
Длямногочленаψ(x)=x3+x+1сопровождающаяматрицаимеетвид
(рис.3.2):
-
0
1
1
A3?3=
1
0
0
0
1
0
Рис.3.2.Сопровождающаяматрицадляполиномаψ(x)=x3+x+1
Получимследующеемножествоэлементовполя:(0,E,А,А2,А3,А4,А5,
А6)(рис.3.3),гдеE-единичнаяматрицаразмераn?nиА7совпадаетсE:
-
0
0
0
1
0
0
0
1
1
0=
0
0
0
;
E=
0
1
0
;
A=
1
0
0
0
0
0
0
0
1
0
1
0
-
1
1
0
1
1
1
1
0
1
A2=
0
1
1
;
A3=
1
1
0
;
A4=
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
A5=
1
0
1
;
A6=
0
0
1
;
A7=
0
1
0
1
1
1
1
0
1
0
0
1
Рис.3.3.СтепениматрицыA
Дляхраненияэлементовполятребуетсяобъемпамяти:
-равный2n?n?n=2n?n2бит,
-гдеn?n-объемпамятипододнуматрицу.Дляопераций:
-редкоиспользующихвсезначениястепенейматрицыA,
-можнохранитьтолькоматрицуA.
ПривычисленииматрицыAi,i2,2n2:
-потребуетсявыполнить(n-1)?n2?(i-1)операцийсложенияи
-n?n2?(i-1)операцийумножения,
-где(i-1)-количествопоследовательныхвозведенийвстепень,
-(n-1)-количество операций для получения одного элементарезультирующейматрицыприумноженииматрицAi-1иA.
Данныйспособпредставленияэлементовполяприменяется:
-приумножениидвухполиномовметодомPaar[16]:
-заменакомплекснойоперацииумножения
- на множество умножений и сложений полиномов меньшихстепеней;
-для получения значений степеней примитивного элемента прииспользованиинормальногобазиса.
IV.Представлениеполиномовввидепараллельныхмассивов,гдеэлементы:
-первогомассивахранятстепенинеизвестныхполинома(степеньпринеизвестнойсненулевымкоэффициентом),
-аэлементывторого-коэффициентыпринеизвестных.
Способприменимдляполиномовснеравномернымраспределениемоднихдвоичныхкоэффициентовотносительнодругих:
-хранятся коэффициенты и степени при неизвестных полиномовтолькодлястепеней,
-прикоторыхнаходятсякоэффициенты,
-общее количество которых меньше числа коэффициентов,противоположныхпозначению.
V.Нормальныйбазис.Элементыполяпредставляютсяввиде:
-степенейпримитивногоэлемента,
-которымсопоставленыбинарныезначенияэлементовполя(элементывстандартномбазисе).
ДляполяGF(2n)требуетсявычислитьихранить:
-(2n-1)степенейпримитивногоэлемента,
-каждаяизкоторыхимеетдлинуn-1бит.
ВсеэлементыполяGF(2n)можнозаписатьввидемножества:
n
GF(2n)={0,1,ξ,ξ2,…,22},
гдеξ-примитивныйэлемент.
Для полученияэлементовполя GF(2n) в этом базисе можноиспользовать:
-способпоследовательногоумноженияξiнаξ(тоестьξиспользуется
какобразующийэлементполяGF(2n));
-вычислениесопровождающейматрицыA.Пример3.2.ПостроимполеGF(2n),гдеn=3.Пустьданы:
-неприводимыйполином-модульψ(x)=x3+x+1и
-ξ-заранееизвестныйпримитивныйэлементполя,являющийсякорнеммодуля,т.е.еслиψ(ξ)=ξ3+ξ+1=0.
ТогдаGF(23)=(0,1,ξ,ξ2,ξ3,ξ4,ξ5,ξ6).
Элементыполя GF(23) в нормальном базисе можно построитьследующимобразом:
1)накаждомшагебудемумножатьпредыдущийэлементполянаξ;
2)еслиполучаетсяполином,степенькоторого≥degψ(ξ)(xзаменилина
ξ),тоосуществляетсявзятиеостаткаотделениятекущегорезультатанаполиномψ.
ξ0=1=(001)ξ1=ξ=(010)ξ2=ξ2=(100)ξ3=1+ξ=(011)
ξ4=ξ+ξ2=(110)ξ5=ξ3+ξ2=(111)ξ6=ξ4+ξ3=(101)ξ7=1=ξ0.
В скобках записаны двоичные коэффициенты при неизвестныхполинома,задающеготекущийэлементполя.
Способпредставленияданныхспомощьюнормальногобазиса:
-нерационален,
-таккакхранитсябольшоеколичествоинформации.
Существует2формыпредставленияэлементовполявнормальномбазисе-ввиде:
-значениястепенейпримитивногоэлемента;
-степенейпримитивногоэлемента.
а)Хранениезначенийстепенейпримитивногоэлемента(эквивалентстандартногобазиса):
- примитивный элемент в некоторой степени хранится в видебинарноговектора;
- значение ξi представляется в виде двоичных коэффициентов
n
многочленаξi;
-дляхраненияполяGF(2n)=(0,1,ξ,…,ξi,…,
двумерныйвектор-матрица,
22)используется
-каждаяi-аястрокаматрицысодержитдвоичноезначениеэлементаξi.
Матрицабудетиметьследующийразмер:
-количествострок(количествостепенейпримитивногоэлемента)
равно2n-1,
-количествостолбцовn,
-гдеn-максимальнаястепеньполинома-модуля,
-торазмерравен(2n-1)?nячеек.
б)Хранение степенейпримитивногоэлемента, а не значениястепенейпримитивногоэлемента:
-длязаданияэлементаξiхранитсястепеньi;
-элемент,равный1,заменяетсянаξ0,асоответственноегостепеньравна0;
-если значение степени примитивного элемента равно 0, топринимается:
-что показатель степени примитивного элемента равеннеопределенности,
-обозначаемойсимволом"".
Использованиеданногометодахранения:
-даетвыигрышвпамяти,
-так как требуется хранить не вектор-полином, а целое число,размеромвмашинноеслово;
-упрощаетоперацииумноженияэлементовивозведенияихвстепень,
-таккакоперациивыполняютсянесвекторами,асцелымичислами-
степенямиэлементов.
Вкачественедостатковможноотметить:
-таккаквосновномвоперацияхсэлементамиполяучаствуютсамизначенияэлементовполя,
-тотребуетсясистемапереводастепенипримитивногоэлементавегозначение;
-неэффективенприсложенииэлементов;
-увеличиваетсявремяработыалгоритма:
-напреобразованиеизстепенивзначениеиобратно;
-дляэтогоиспользуетсяпредварительнополученнаяматрицаизпунктаа).
Привычислениинекоторойоперациисэлементами,заданнымиввидестепеней(например,сложениеэлементов):
-элементыполязаписываютсявстандартномбазисе(ввекторномпредставлении);
-наднимивыполняютсяарифметическиеоперации;
-вконцевозможнообратноепреобразованиерезультата:
-результирующийбинарныйвекторищетсявматрицеизпунктаа),
-номернайденнойстрокиiибудетзадаватьстепеньэлементаξi.
Пример3.3.Втабл.3.1записаныэлементыполяGF(24)вразныхпредставленияхдляполинома-модуляψ(x)=x4+x+1.
Вполиномиальномпредставленииследующийэлементполучается:
-путемумноженияпредыдущегоэлемента,заданноговвидеполинома,
наx;
-еслимаксимальнаястепеньрезультатаоперацииполучаетсяравной
степенимодуля,
-товыполняетсянормированиерезультата-поразрядноесложениепомодулю2результатаиполиномаψ(x).
Таблица3.1(начало).Элементыполявразныхпредставлениях
Номерэлемента |
Нормальныйбазисξi(степенное) |
Стандарт- ныйбазис (векторное) |
Полиномиальное |
1 |
2 |
3 |
4 |
0 |
ξ |
0000 |
0 |
1 |
ξ0 |
0001 |
1 |
2 |
ξ1 |
0010 |
x |
3 |
ξ2 |
0100 |
x2 |
4 |
ξ3 |
1000 |
x3 |
5 |
ξ4 |
0011 |
x+1 |
6 |
ξ5=ξ4ξ |
0110 |
(x+1)x=x2+x |
7 |
ξ6=ξ5ξ |
1100 |
(x2+x)x=x3+x2 |
8 |
ξ7=ξ6ξmodφ(x) |
1011 |
(x3+x2)x=(x4+x3)modφ(x)=x3+x+1 |
Таблица3.1(окончание).Элементыполявразныхпредставлениях
1 |
2 |
3 |
4 |
9 |
ξ8=ξ7ξmod φ(x) |
0101 |
(x3+x+1)x=(x4+x2+x)modφ(x)=x2+1 |
10 |
ξ9=ξ8ξ |
1010 |
(x2+1)x=x3+x |
11 |
ξ10=ξ9ξmod φ(x) |
0111 |
(x3+x)x=(x4+x2)modφ(x)=x2+x+1 |
12 |
ξ11=ξ10ξ |
1110 |
(x2+x+1)x=x3+x2+x |
13 |
ξ12=ξ11ξmod φ(x) |
1111 |
(x3+x2+x)x=(x4+x3+x2)modφ(x)=x3+x2+x+1 |
14 |
ξ13=ξ12ξmod φ(x) |
1101 |
(x3+x2+x+1)x=(x4+x3+x2+x)modφ(x)=x3+x2+1 |
15 |
ξ14=ξ13ξmod φ(x) |
1001 |
(x3+x2+1)x=(x4+x3+x)modφ(x)=x3+1 |
Рассмотримполучение11-гоэлемента.Дляполучения11-гоэлемента
10−ыйэлементумножаетсянаx:
(x3+x)·x=x4+x2.
Поразрядно сложим векторы коэффициентов для полинома
x4+x2(101002)иполинома-модуляx4+x+1(100112):
101002
100112
001112.
Получаем11-ыйэлемент,равный:
-встандартномбазисе01112,
-иливполиномиальномx2+x+1.
Если степеньрезультата будет > степени модуля ψ(x), тоосуществляетсяделениерезультатанаψ(x).Например:
-получим11-ыйэлементчерез7-ой;
-умножимполином,соответствующий7-муэлементу,наx4:(x3+x2)·x4=x7+x6;
-таккакстепеньрезультата>степенимодуля,товыполняетсяделениерезультатанамодульψ(x)(например,столбиком),анесложениесним:
x7x6
x7
x4x3
x4x1
x3x21
x6x4x3
x6
x4
x4
x3x2
x2
x1
x2x1
Получимостатокx2+x+1,которыйиявляется11-мэлементомполя.
АлгоритмполученияэлементовполяGF(2n)встандартномбазисе
Для построения элементов поля GF(2n) в стандартном базисесуществуетследующийалгоритм,использующийсдвиговыерегистры.
Навходе:полеGF(2n),заданноеполиномом-модулемψ(x).
Навыходе:множествонайденныхэлементовполя(получаемыхнашаге2алгоритма).
Пустьзаданы2регистраРг1иРг2длиныn+1-внихзапишем:
-вРг1-коэффициентыполинома-модуляψ(x);
-вРг2-константу-единицу000…001.
Предполагается,чтонулевойэлементполяравен000…000.Шагиалгоритма.
1.Пустьтекущийномерэлементаполяравенj=1.
2.РегистрРг2задаетэлементполяподномеромj.
3.РегистрРг2сдвигаетсявлевонаоднупозицию.
4. Если старший, n-ый разряд регистра Рг2 равен единице, товыполнитьпоразрядноесложениеРг2=Рг1+Рг2.
5.Выполнитьсложениеj=j+1.Еслиj=2n,товыход,иначепереходк
шагу2.
Дополнительныепримерыдлярешения.
Аналогичнопримеру3.3постройтеэлементыполяGF(24),заданногополиномом-модулемψ(x)=x4+x3+1.
Вопросыдлясамопроверки.
1.Поясните,какможнопредставлятьэлементыполявстандартномбазисе.
2.Вчемдостоинстваинедостаткипредставленияэлементовполявстандартномбазисе?
3.Какимобразомвыполняетсяоперацияполучениякоэффициентаэлемента,представленноговстандартномбазисе?
4.Какимобразомвыполняетсяоперацияустановки значениякоэффициентаэлемента,представленноговстандартномбазисе?
5.Поясните,какможнопредставлятьэлементыполяприпомощисопровождающейматрицы.
6.Какойобъёмпамятитребуетсядля хранениястепенейсопровождающейматрицы?
7.Для чего используется представление элементов поля с помощьюсопровождающейматрицы?
8.Поясните,какможнопредставлятьэлементыполяприпомощипараллельныхмассивов.
9.Поясните,какможнопредставлятьэлементыполяввидезначенияпримитивногоэлемента.
10.Поясните,какможнопредставлятьэлементыполяввидестепенипримитивногоэлемента.