You are on page 1of 15

𝐿−1

⟨𝑋⟩𝑚𝑗 = ⟨∑ 𝑥(𝑖)⟨2𝑟𝑖⟩ ⟩ , ∀𝑗 ∈ [1, 𝐿].


𝑚 𝑗
𝑖=0 𝑚𝑗

Ако ⟨2𝑟𝑖⟩ су константе унапред израчунате, ово израчунавање је типична операција


𝑚𝑗
множења-акумулације и може се израчунати у 𝐿корацима, када се извршава по
𝐿јединицама паралелно.

Како је (15) основа представљених РНСМММ алгоритама, корисно је користити га и за


конверзију РНС у децимални. Препишимо (15) као
𝐿
𝑋 = ∑ ⟨𝑥𝑖 ⋅ 𝑀 −1⟩ ⋅ 𝑀𝑖 − 𝛾𝑀 =
𝑖 𝑚𝑖
𝑖=1
𝑀𝑖(𝐿−1) 𝑀(𝐿−1)
𝐿
⋮ ⋮
= (2𝑟(𝐿−1), … , 2𝑟, 1) ∑ 𝜉𝑖 ⋅ −𝛾
𝑀 𝑀
𝑖=1 𝑖(1) (1)
{ [ 𝑀𝑖(0) ] [ 𝑀(0) ])
где 𝜉𝑖 = ⟨𝑥𝑖 ⋅ 𝑀−1⟩ . Чим 𝛾се процени коришћењем метода из одељка 3, сваки ред (36)
𝑖 𝑚𝑖
се може израчунати паралелно у сваком каналу модула помоћу операција множења-
акумулације. У овом случају, пренос треба да се пропагира од канала 1 до канала 𝐿[24].

Сви радови у [24, 5, 14] користе архитектуре засноване на ћелијама за имплементацију


алгоритама у [24] и [5, 14] респективно. Свака ћелија одговара једном РНС модулу и
користи јединицу за вишеструку акумулацију праћену модуларном редукционом
јединицом која врши редукцију за одговарајући РНС модул користећи (33). Заправо, уз
мале модификације, архитектура у [14] подржава оба алгоритма у [24,5]. Структура ћелије
је приказана на слици 7 [14]; заједничка магистрала која повезује ћелије као и линије које
повезују једну ћелију са следећом су изостављене, из разлога једноставности. Јединица за
вишеструко акумулирање је приказана на врху ћелије, а модуларне редукционе јединице
на дну су директна имплементација (33). Детаљна анализа броја тактова потребних за
обављање свих операција заједно са презентацијом архитектонског поређења може се
наћи у [14].
Слика 7 МАЦ ћелија [15]

1. Двопољне аритметичке архитектуре


остатка
ЦРТ је доминирао доступним опцијама за проширење базе и конверзију остатка у
бинарну од увођења РНС-а у криптографију. Међутим, МРЦ је недавно коришћен у њему
избегава процену фактора 𝛾(15) и може да представља основу алтернативног множења
Монтгомерија заснованог на РНС [44, 48]. Изведени алгоритам је идентичан алгоритму
0.4, међутим алгоритам BEје сада заснован на модификованој верзији МРЦ-а приказаној
у (22) и (24). У поређењу са "Сзабо-Танака" приступом у (23), који захтева
𝐿−1 модуларна множења, оптимизовани МРЦ захтева само 𝐿 − 2модуларна множења.
𝐿 2

Алгоритам 0.11 описује процес проширења базе који претвара цео број 𝑋изражен у РНС
бази ℳ ′у 𝑋ℳ ′ РНС репрезентацију друге базе ℳ. Он имплементира (24) у корацима 1-8
да би добио мешовите 𝑈𝑖 цифре 𝑋. У корацима 9 15, (22)се реализује, док се цео збир
рачуна по модулу сваког модула 𝑚𝑖 нове базеℳ

За разлику од других алгоритама који користе ЦРТ и користе методе апроксимације за


израчунавање фактора корекције 𝛾од (15)[24,5,15,14], проширење базе засновано на
МРЦ-у је без грешака. Услови gcd (𝑀′, 𝑁) = 1и gcd (𝑀, 𝑀′) = 1довољни су за постојање
(−𝑁−1)ℳ′и 𝑀 ℳ′−1, респективно. Како то држи

𝑣 𝑎𝑏 + 𝑡𝑁 (2𝑁)2 + 𝑀 ′𝑁 4𝑁
𝑐= = =( + 1) 𝑁 ≤ 2𝑁,
𝑀′ 𝑀′
< 𝑀′ 𝑀′
следи да 4𝑁 ≤ 𝑀′је довољно за 𝑐 < 2𝑁држати када 𝑎, 𝑏 < 2𝑁. Коначно, (37) такође
показује да 2𝑁 ≤ 𝑀је довољно за 𝑐 < 𝑀′и 𝑣 < 𝑀𝑀′. Пошто 𝑣је максимална средња
вредност, све вредности су мање од 𝑀𝑀′[24,46].

1.1. Уграђивање ПРНС-а у ГФ (2 )Монтгомери множење


𝑛

У литератури су предложене и модификације Монтгомеријевог алгоритма за множење


који обухвата ПРНС [6, 48, 44]. 𝐺𝐹(2𝑛)На пример, алгоритам у [48] користи опште
полиноме (било ког степена) и проширење је алгоритма [6], који користи триноме за скуп
ПРНС модула.

ПРНСМММ алгоритам за 𝐺𝐹 (2𝑛 )је илустрован као алгоритам 0.12, док је одговарајући
алгоритам за проширење базе у 𝐺𝐹 (2𝑛 )идентичан алгоритму 0.11. Једина разлика је у
томе што се целобројна сабирања/одузимања и множења замењују полиномима. Опет,
степени улазног и излазног полинома су мањи од 𝑛, што омогућава конструкцију
модуларног алгоритма за експоненцијацију понављањем ПРНСМММ. Проширење базе у
кораку 7 се користи из истог разлога.

1.2. Версатиле Арцхитецтурес


Испитивање алгоритама РНСМММ и ПРНСМММ открива потенцијал за уједињење у
заједнички алгоритам Дуал-фиелд Ресидуе Аритхметиц МММ (ДРАМММ) и заједнички
алгоритам Дуал-фиелд Басе Ектенсион (ДБЕ) [48, 44]. Обједињени ДРАМММ алгоритам
је доле приказан као алгоритам 0.13, где ⊕представља сабирање/одузимање са
двоструким пољем и ⊙множење са двоструким пољем. Ради једноставности, ДБЕ
алгоритам је изостављен пошто је идентичан БЕ алгоритму 0.11, узимајући у обзир ⊕
,⊙операторе дуалног поља уместо типичних сабирања/множења.

И ДРАМММ и ДБЕ алгоритам одржавају МАЦ карактеристике претходно представљених


BEалгоритама и сваки канал рукује операцијама дужине речи једнаке дужини речи
модула 𝑟. Ово омогућава потпуно паралелну хардверску имплементацију, користећи
паралелне МАЦ јединице, од којих је свака посвећена модулу РНС/ПРНС базе.

Доказано је да је потребна валидна РНС/ПРНС трансформација Монтгомеријевог


алгоритма
deg {𝑀} >𝑛
deg {𝑀′} >𝑛
𝑀 ≥ 2𝑁},
𝑀′ ≥ 4𝑁

што значи да РНС/ПРНС опсеге треба изабрати да буду дужине речи

⌈log 𝑀⌉ ≥ max{⌈log 2𝑁⌉, 𝑛}


⌈log 𝑀 ′⌉ ≥ max{⌈log 4𝑁⌉, 𝑛}

за базе ℳи ℳ′, респективно [48]. ДРАМММ и ДБЕ алгоритми заједно са условима (38) и
(39) обезбеђују неопходне услове за Монтгомеријево аритметичко множење са
двоструким пољем.

Као што је раније описано, структура ДРАМММ алгоритма омогућава да се поново


користи у контексту било ког алгоритма за експоненцијацију. Могућа имплементација је
приказана у алгоритму 0.14, захтевајући укупан број 2𝑛 + 2ДРАМММ множења [30,32].
Користећи Фермаову малу теорему, инверзија поља се може реализовати
експоненцијацијом поља [18]. Тако се може ефикасно мапирати и на ДРАМММ
архитектуру без додатног хардвера.
Слика 8 Ћелија са пуним сабирачем са двоструким пољем

1.2.1. Конверзија остатка у бинарни


Пошто су сви операнди у (24) дужине речи 𝑟, њима се може ефикасно руковати 𝑟-бит
МАЦ јединица. Међутим, (22) користи множење са великим вредностима, наиме с 𝑊𝑖 . Да
би се превазишао овај проблем, (22) се може преписати у матричном запису, као у (40),
што имплицира потпуно паралелну имплементацију процеса конверзије [48].

Унутрашњи производи реда 𝑖се израчунавају паралелно у свакој МАЦ јединици. Сваки
МАЦ затим пропагира свој резултат на следећи МАЦ, тако да на крају последњи даје
MAC (𝐿)цифру 𝑧(𝑖)радикса −2𝑟резултата. Паралелно са овим сумирањем, могу се
формулисати унутрашњи производи следећег реда 𝑖 + 1, пошто сабирач и множилац
ДРАМММ МАЦ јединице могу да раде паралелно.
(𝐿−1)
0 0 𝑊𝐿
0 ⋮(2) ⋮

⋮ 0
𝑧= 𝑈⊙0 ⊕𝑈⊙ ⊕ 𝑊3 ⊕⋯⊕𝑈⊙ ⊙𝑉
⊙ (2)
𝑈 𝑊
1 2 (1) 3 (1) 𝐿 𝐿
0 𝑊2 𝑊3 (1)
[1] 𝑊
(0) (0) 𝐿

[𝑊2 [𝑊3 ] (0)


{ [ 𝑊𝐿 ]}
]

𝐿 = 4, 𝛽 = 4
Слика 9 Дистрибуција задатака у ДРАМММ алгоритму [48]

1.3. Двоструко поље сабирања/одузимања


Ћелија са пуним сабирачем са двоструким пољем (ДФА) је у основи ћелија са пуним
сабирачем опремљена сигналом за избор поља (fsel)који контролише режим рада [43].
Када је 𝑓сел = 0, излаз за ношење је присиљен на 0 и збир даје рад 𝑋𝑂𝑅улаза. Као што је
већ поменуто, ово је еквивалентно операцији сабирања у 𝐺𝐹(2𝑛). Када је изабран режим
𝑓рада = 1, 𝐺𝐹(𝑝)и ћелија ради као нормална ФА ћелија. Очигледно, сабирачи са
двоструким пољем у различитим конфигурацијама (преношење-пропагирање, пренос-
прескакање, итд.) могу бити механизовани коришћењем ДФА ћелија. Са овом ћелијом
која служи као основна компонента за конструисање, могу се механизовати хардверски
модули за сабирање/одузимање са двоструким пољем (ДМАС), множење са двоструким
пољем (ДМ) и модуларну редукцију двоструког поља [48].

1.4. Модуларна редукција са двоструким пољем


Потребно је коначно модуларно смањење за сваки РНС/ПРНС модул, за сваки резултат
множења, унутар сваке МАЦ јединице. Претпоставимо 2𝑟-битни производ 𝑐који треба
смањити модулом целог броја 𝑚𝑖. Избором 𝑚𝑖форме 2𝑟 − 𝜇𝑖, где је ℎ-бит 𝜇𝑖 ≪ 2𝑟, процес
модуларне редукције се може поједноставити као

𝜉
𝐸 𝐹
⏞𝑟 𝑟⏞− 1
⏞𝑟 − 1
𝑑
−1

⟨𝑐⟩𝑚𝑖 = ⟨∑ 𝑐 2𝑖 + 2𝑟 𝑐𝑟+𝑖2𝑖⟩ = ⟨⏞𝐸 + 2𝑟 𝐹 ⟩ = ⟨∑ 𝑑 2𝑖 + 𝜇 ∑ 𝑑 2𝑖 ⟩ .
𝑖
∑ 𝑚𝑖 𝑖 𝑖 𝑟+𝑖
𝑖=0 𝑖=0 𝑚𝑖 𝑖=0 𝑖=0
𝑚𝑖

Из (41) је очигледно да
𝑟−1

∑ 𝜉𝑖2𝑖, 𝜉 < 2𝑟 − 𝜇
⟨𝑐⟩𝑚𝑖 = 𝑖=0
𝑟
∑ 𝜉𝑖2𝑖 + 𝜇𝑖, 2𝑟 − 𝜇 < 𝜉 < 2𝑟.
{𝑖=0

Иста декомпозиција се може применити на полиноме и, сходно томе, ако се користе


сабирачи са двоструким пољем и множитељи двоструког поља, јединица модуларне
редукције са двоструким пољем (ДМР) може се механизовати као што је приказано на
слици 10. Дужина речи може бити ℎограничена 𝜇𝑖 на максимално 10 битова за базу са 66
елемената [24].

1.5. Умножавајте-акумулирајте Јединицу


Организација кола основне јединице која обавља све операције, јединице за
умножавање-акумулирање (МАЦ), приказана је на слици 11. Њен рад је анализиран у
наставку у три корака, што одговара три фазе прорачуна којима обрађује, тј. -у-остатак
конверзија, РНС/ПРНС Монтгомери множење, и остатак-бинарни конверзија.
Слика 10 Модуларна редукциона јединица са два поља (ДМР)

1.5.1. Конверзија бинарне у резидуе


У почетку, 𝑟-битне речи улазних операнада, као што имплицира (34), каскадно се
каскадирају на сваку МАЦ јединицу и чувају у РАМ1 на врху слике 11. Ове речи служе као
први улаз за множилац, заједно са количинама ⟨2𝑟𝑖⟩ 𝑟𝑖
′или ⟨𝑥 ⟩ ′ , који се чувају у
𝑚𝑖,𝑚𝑖 𝑚𝑖,𝑚𝑖
РОМ-у. Њихово множење производи унутрашње производе (34) који се рекурзивно
сабирају у ДМАС јединици. Резултат се чува преко магистрале у РАМ1. Процес се понавља
за други операнд и резултат се чува у РАМ2, тако да када се конверзија заврши, свака
МАЦ јединица садржи цифре заостатака два операнда у две РАМ јединице. За конверзију
су потребни 𝐿кораци.

1.5.2. Монтгомеријево множење


Први корак ДРАМММ-а је модуларно множење преосталих цифара операнада. Пошто су
ове цифре одмах доступне у два РАМ-а, извршава се модуларно множење и резултат 𝑅1 се
чува у РАМ1 за базу ℳ ′и у РАМ2 за базу ℳ. Корак 2 ДРАМММ-а је множење претходног
резултата са константом коју обезбеђује РОМ. Резултати одговарају 𝑥𝑖′улазима ДБЕ
алгоритма и поново се чувају у РАМ1. Све МАЦ јединице се ажурирају преко магистрале са
одговарајућим РНС цифрама свих осталих МАЦ-ова и покреће се ДБЕ процес.

Да би се илустровао ДБЕ процес, график расподеле задатака је представљен на слици 9 за


ДРАМММ који захтева 𝐿 = 4модуле. Заступљена су два случаја; први одговара потпуно
паралелној архитектури са 𝛽 = 4јединицама, а други показује како се задаци могу
преклапати када 𝛽 = 2су доступне само МАЦ јединице. Свака МАЦ јединица је додељена
различитом шаблону сенчења, тако да у случају преклапања кодови боја означавају када
МАЦ јединица обавља операције за друге јединице. У примеру са слике 9, МАЦ(1) рукује
МАЦ(4) и МАЦ(2) управља МАЦ(3).

У сваком циклусу, модуларна сабирања и множења се обављају паралелно у сваком МАЦ-


у. Да би се ово приказало, сваки циклус је подељен на два дела: операције на левој
страни одговарају модуларним сабирању, а на десној модуларним множењима. Резултати
добијени сваком операцијом су приказани у сваком циклусу (одговарају алгоритму 0.11),
док су стања мировања означена испрекиданим линијама. Анализа броја потребних
циклуса такта и начина на који се МАЦ јединице могу ефикасно упарити је представљена у
следећем одељку.

Преостала множења, сабирања и коначна операција проширења базе коју захтева


ДРАМММ алгоритам израчунавају се на исти начин акумулације множења и коначни
Монтгомеријев производ остатка може бити или доведен до интерфејса, или га МАЦ
јединице могу поново користити за I/Oконверзију резултат у бинарни формат.

1.5.3. Претворба остатака у бинарну


Конверзија остатка у бинарну је у суштини понављање ДБЕ алгоритма, осим корака 9-14,
који више нису модуло операције. Уместо тога, (40) је развијен да ефикасно мапира
процес конверзије у ДРАМММ архитектуру. Важно запажање је да, кад год је претходна
операција резидуе-тобинарне конверзије ДРАМММ, која се завршава извршавањем ДБЕ,
постижу се уштеде времена, пошто је горњи део ДБЕ алгоритма (кораци 1-8) заједнички
са конверзија. Према томе, средњи резултати из корака 1-8 могу бити сачувани док се ДБЕ
не заврши, а затим поново коришћени за имплементацију (40).

Слика 11 ДРАМММ МАЦ јединица

Слика 12 ДРАМММ општа архитектура

Да бисмо илустровали процес конверзије, претпоставимо генерисање унутрашњих


производа у реду 1 од (40). Сваки производ се израчунава паралелно у свакој МАЦ
јединици и врши се „преношење“ од до MAC(1)да би се додали сви унутрашњи
производи. MAC(𝐿)Када се сумирање заврши, прва цифра 𝑧 (0) резултата се производи у
MAC (𝐿). Паралелно са овим „преношењем“, израчунавају се унутрашњи производи
линије 2. Чим МАЦ јединица заврши додавање унутрашњих производа који се
размножавају у преносу за линију 1, врши се ново додавање за линију 2. Процес се
наставља за све линије (40) и резултат је доступан након 𝐿корака. Комплетна ДРАМММ
архитектура је приказана на слици 12.

1.5.4. Кашњење
Претпоставимо да 𝛽 ≤ 𝐿се паралелне МАЦ јединице користе у стварној имплементацији.
Да бисмо поједноставили дискусију, претпоставља се да 𝛽је вишекратник 𝐿, тј 𝐿 = 𝑘𝛽. То
значи да ће сваки од првих MAC (𝑖), 𝑖 = 1,2, … , 𝛽, дати резултате за 𝑘 − 1више канала.
Изградњом МРЦ-а, ДБЕ процес на слици 9 захтева 2𝐿 − 1циклусе такта у пуном
паралелном случају. Сваки канал 1 ≤ 𝑖 ≤ 𝛽захтева 𝐿циклусе за множење и 𝐿 + 𝑖 −
2циклусе за сабирања, тако да сваки канал има 𝐿 − 1слободне слотове за множење и 𝐿 −
𝑖 + 1слободне прорезе за сабирања (стања мировања на слици 9).

Претпоставимо, ради једноставности, да 𝑘 = 3. Слободни слотови у сваком MAC (𝑖)ће


прихватити операције од једног MAC (𝑗), 𝑗 = 𝛽 + 1, … ,2𝛽и једног MAC (𝑙), 𝑙 = 2𝛽 +
1, … ,3𝛽. Пошто свако MAC (𝑗)захтева 𝐿множење и 𝐿 + 𝑗 − 2сабирање и сваки
MAC (𝑙)захтева 𝐿циклусе за множење и 𝐿 + 𝑙 − 2циклусе за сабирање, циклуси потребни
за прилагођавање резултата су 2𝐿 + (𝑗 + 𝑙) − 4. Слободни слотови у сваком MAC(𝑖)су 𝐿 −
𝑖 + 1према томе додатни циклуси за производњу свих резултата у сваком од MAC(𝑖)њих
2𝐿 + (𝑗 + 𝑙) − 4 − (𝐿 − 𝑖 + 1) = 𝐿 + (𝑖 + 𝑗 + 𝑙) − 5. Најбоље комбинације за
(𝑖, 𝑗, 𝑙)минимизирање количине 𝐿 + (𝑖 + 𝑗 + 𝑙) − 5могу се пронаћи помоћу псеудо-
кода[48,44]

који израчунава све могуће вредности додатних циклуса за све комбинације (𝑖, 𝑗, 𝑙)и у
кораку 6 бирамо 𝑣као максималну заједничку вредност за све MAC(𝑖). За сваку различиту
комбинацију (𝑖, 𝑗, 𝑙)која задовољава 𝛼𝑖𝑗𝑙 < 𝑣, упарујемо одговарајуће јединице све док сви
различити парови јединица на позицијама (𝑗, 𝑙)не буду додељени посебној јединици на
позицији 𝑖. Преосталих 6 корака ДРАМММ-а захтевају 6𝑘циклусе, укупно[48,44]
2. Примена на криптографију елиптичне
криве
У наставку је приказана примена РНСМММ алгоритма на ЕЦЦ. Дизајн користи основе
модула који нуде ефикасну аритметику и разликује се од приступа анализираних раније у
смислу да се наменске компоненте користе за ИО конверзије и БЕ операције. Дизајн
користи једначину (23) за добијање МРС цифара резултата, док се (22) израчунава по
модулу сваког модула нове базе.

Скупови од три и четири модула се користе у имплементацији РНСМММ алгоритма 0.4.


Облик модула у великој мери одређује ефикасност аритметичких операција и распоред
улазно/излазних претварача [36]. Коришћене РНС базе су приказане у табели 2. У првој
бази су коришћени РНС модули облика 2𝑟 − 2𝑡𝑖 − 1, где , који нуде једноставне операције
редукције по модулу [3]. 𝑡𝑖 < 𝑟/2Друга база је реализована скуповима од три или четири
модула

You might also like