Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗахКриптология курс лекций 2 - копия.docx
Скачиваний:
5
Добавлен:
24.09.2019
Размер:
5.15 Mб
Скачать

Лекцич16 СпособыпредставленияэлементовполяGf(2n)

ДляпредставленияэлементоввполяхГалуавидаGF(2n)существуютразличныеспособы,образующиеизоморфныеполя:

-полиномиальное;

-стандартныйбазис;

-припомощисопровождающейматрицы;

-параллельныемассивы;

-нормальныйбазис-ввиде:

-значениястепенейпримитивногоэлементаξ,

-степенейпримитивногоэлементаξ.

I.Полиномиальноепредставление.

Каждый элемент GF(2n) можно представить в виде некоторогомногочлена

f(x)=0+1x+…+n1xn-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,аправаячасть-

устанавливаетновоезначениеi-юпозицию.

Стандартныйбазисприменяется:

-дляпереводамеждусобойдвухтиповпредставленияэлементовнормальногобазиса:

-изстепенипримитивногоэлементавегозначение,

-иобратно.

III.Представление элементовконечногополяGF(2n) при помощи

сопровождающейматрицыA,заданнойпримитивныммногочленом

ψ(x)=0+1x+…+n1xn-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):

A21

вместеснулевойматрицей

-нижняястрокаматрицыА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+

-ξ-заранееизвестныйпримитивныйэлементполя,являющийсякорнеммодуля,т.е.еслиψ(ξ)=ξ3+ξ+1=0.

ТогдаGF(23)=(0,1,ξ,ξ2,ξ3,ξ4,ξ5,ξ6).

Элементыполя GF(23) в нормальном базисе можно построитьследующимобразом:

1)накаждомшагебудемумножатьпредыдущийэлементполянаξ;

2)еслиполучаетсяполином,степенькоторого≥degψ(ξ)(аменилина

ξ),тоосуществляетсявзятиеостаткаотделениятекущегорезультатанаполиномψ.

ξ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.

Пример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+xx=x4+x2.

Поразрядно сложим векторы коэффициентов для полинома

x4+x2(101002)иполинома-модуляx4+x+1(100112):

101002

100112

001112.

Получаем11-ыйэлемент,равный:

-встандартномбазисе01112,

-иливполиномиальномx2+x+1.

Если степеньрезультата будет > степени модуля ψ(x), тоосуществляетсяделениерезультатанаψ(x).Например:

-получим11-ыйэлементчерез7-ой;

-умножимполином,соответствующий7-муэлементу,наx4:(x3+x2x4=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.Поясните,какможнопредставлятьэлементыполяввидестепенипримитивногоэлемента.