Optimisation of big N-width digits multiplication based on N-width DFT

It is considered multidigit multiplication, that has biggest influence on asymmetric cryptography performance. It is given detailed description of N-digit multiplication algorithm that is based on FFT of the length of N using of "unpacking" and "packing" formulas....

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Datum:2015
Hauptverfasser: Tereshchenko, A.N., Zadiraka, V.K.
Format: Artikel
Sprache:Russisch
Veröffentlicht: PROBLEMS IN PROGRAMMING 2015
Schlagworte:
Online Zugang:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/113
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Institution

Problems in programming
_version_ 1859475653348294656
author Tereshchenko, A.N.
Zadiraka, V.K.
author_facet Tereshchenko, A.N.
Zadiraka, V.K.
author_sort Tereshchenko, A.N.
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
collection OJS
datestamp_date 2018-07-24T13:14:48Z
description It is considered multidigit multiplication, that has biggest influence on asymmetric cryptography performance. It is given detailed description of N-digit multiplication algorithm that is based on FFT of the length of N using of "unpacking" and "packing" formulas. It is given description, that gives possibility to build more simpler algorithm with using only either "unpacking" or "packing" operations.
first_indexed 2025-07-17T09:32:53Z
format Article
fulltext Прикладні засоби програмування та програмне забезпечення © А.Н. Терещенко, В.К. Задирака, 2012 116 ISSN 1727-4907. Проблеми програмування. 2012. № 4 УДК: 519.6 А.Н. Терещенко, В.К. Задирака ОПТИМИЗАЦИЯ УМНОЖЕНИЯ БОЛЬШИХ N-РАЗРЯДНЫХ ЧИСЕЛ НА ОСНОВЕ N-РАЗРЯДНЫХ ДПФ Рассматривается операция умножения больших чисел, от быстродействия которой зависит быстродей- ствие ассиметричной криптографии. Приведено детальное описание алгоритма реализации операции умножения N-разрядных чисел на основе вычисления N-разрядных БПФ с использованием операций “распаковки” и “упаковки”. Описана процедура, позволяющая строить более простой алгоритм с ис- пользованием только формул “распаковки” или только формул “упаковки”. Введение Характерной особенностью реше- ния многих задач аппроксимации функ- ций, моделирования физических, химиче- ских (биохимических) процессов, аэроди- намики, гидродинамики, защиты инфор- мации является использование вычислений над многоразрядными числами. Это обу- славливает актуальность создания эффек- тивных алгоритмов выполнения операций над многоразрядными числами для после- дующей программной реализации на уни- версальных ЭВМ и для спе- циализированных аппаратных и програм- мно-аппаратных комплексов. В данной статье рассматривается эффективная реа- лизация операции умножения с использо- ванием дискретного преобразования Фурье (ДПФ) [1–5], которое связано с быстрым вычислением циклической свертки двух дискретных сигналов. При умножении двух N -разрядных чисел получается N2 - разрядный результат, из-за чего не- обходимо вычислять N2 -разрядную свертку и N2 -разрядные ДПФ мно- жителей. В данной работе, которая являет- ся продолжением [6], описан эффективный метод вычисления операции умножения с использованием ДПФ, при котором раз- рядность исходного N -разрядного сигна- ла не изменяется, а для вычисления ре- зультата умножения достаточно знать 1+N первых значений N2 -разрядной свертки. Для этого приводятся формулы перехода ДПФ от разрядности N к ДПФ разрядности N2 и наоборот. Метод [6] по- зволяет уменьшить число комплексных операций умножения приблизительно в 2 раза по сравнению со стандартным алго- ритмом умножения на основе БПФ, при котором необходимо вычислять все N2 значений свертки. В работе приведена оп- тимизация метода [6], позволяющая упро- стить алгоритмическую (программную) реализацию операции умножения больших N -разрядных чисел. Приведем два свойства ДПФ сигна- лов (см. [6]), которые позволяют упростить реализацию операции умножения. Лемма 1 [6]. (Распаковка. Переход от меньшей разрядности N к большей N2 ). Четные и нечетные компоненты пер- вых 1+N разрядов ДПФ 2 ˆ NZ действи- тельного сигнала ( )2NZ r , 12,0 −= Nr , могут быть вычислены на основе ДПФ NX̂ сигнала ( ) ( ) ( )2 22 2 1N N NX r Z r i Z r= + + , 0, 1r N= − , используя следующие соотно- шения: ( ) ( ) ( )2 ˆ ˆ ˆ0 Re 0 Im 0N N NZ X X= + , ( ) ( ) ( )2 Re 0 Im 0N N NZ N X X= − , * 2 ˆ ˆ( 2) ( 2)N NZ N X N= . ( ) ( ) ( )2 2 2 ˆ N N NZ r A r S r= + , ( ) ( )* * 2 2 2 ˆ ( )N N NZ N r A r S r− = − , ( ) ( )( )* 2 1 ˆ ˆ ( ) 2 N NNA r X r X N r= + − , ( ) ( ) ( )( )*2 2 ˆ ˆ 2 r N N N N WS r X r X N r i = − − , 2 2 2 i ir rr N N NW e e π π − − = = , 12,1 −= Nr . Прикладні засоби програмування та програмне забезпечення 117 Лемма 2 [6]. (Упаковка. Переход от большей разрядности N2 к меньшей N ). В условиях Леммы 1 справедливы сле- дующие соотношения: ( ) ( ) ( )( )( 2 2 1ˆ ˆ ˆ0 Re 0 Re 2N N NX Z Z N= + + ( ) ( )( ))2 2 ˆ ˆRe 0 ReN Ni Z Z N+ − , ( ) ( )* 2 ˆ ˆ2 2N NX N Z N= . ( ) ( ) ( )2 2 ˆ N N NX r A r S r= − , ( ) ( ) ( )* * 2 2 ˆ N N NX N r A r S r− = + , ( ) ( ) ( )( )* 2 22 1 ˆ ˆ 2 N NNA r Z r Z N r= + − , ( ) ( ) ( )( )*2 2 2 22 r N N N N WS r Z r Z N r i − = − − , 2 i rr N NW e π − = , 12,1 −= Nr . (1) Алгоритм 1. Реализация операции умножения двух N -разрядных сигналов на основе N -разрядных ДПФ с использо- ванием формул распаковки и упаковки. Приведем его пошаговое описание. Вход: ( )NU r , )(rVN , 1,0 −= Nr – N -разрядные множители. Выход: NR2 – N2 -разрядный ре- зультат умножения. Шаг 1. Предвычисление векторов )(rBN , )(rCN , 1,0 −= Nr . ( )0 0NB ← , ( )0 1NC ← , 0←r , Nn 2log← . 1+← rr , ( ) 2cos 2N vC r N π⎛ ⎞← − ⋅⎜ ⎟ ⎝ ⎠ , vrBN ←)( , dkBv N +← )( , 1,0 −= jk , 2 pj ← , 12n pd − −← , 1,0 −= np . Шаг 2. Инициализация сигналов , ( )N̂Y r из ( )NU r , ( )NV r , 1,0 −= Nr . ( ) ( ) ( )2 2 1N N NX r U r iU r← + + , )12()2()( ++← riVrVrY NNN , 12,0 −= Nr . ( ) ( ) 0N NX r Y r← ← , 1,2 −= NNr . Шаг 3. Вычисление БПФ сигналов ( )ˆ NX r , ( )N̂Y r , 1,0 −= Nr . ( ) ( )ˆ ˆ1 1N NX i X i X← + , ˆ ˆ( 2) ( 1)N NX i X i X← − , ( ) ( )ˆ ˆ1 1N NY i Y i Y← + , ( ) ( )ˆ ˆ2 1N NY i Y i Y← − , WXX ⋅← , ( )ˆ 2NX X i← , WYY ⋅← , ( )ˆ 2NY Y i← , 2 2 1, при 0 , при 1 , при 2 ,, при 3 0, ( ) ( 1) , при 3 1, ( ) ( 1) N N N N W k W i k W S iS k W S iS k k C k iC k W k k C k iC k ← =⎧ ⎫ ⎪ ⎪← − =⎪ ⎪ ⎪ ⎪← − =⎪ ⎪ ⎨ ⎬← − − = ⎪ ⎪ ⎪ ⎪⎧ ⎫= + +⎪ ⎪← >⎪ ⎪⎨ ⎬ = − −⎪ ⎪⎪ ⎪⎩ ⎭⎩ ⎭ 2 2 ←S , rsi +← 11 , rsi +← 22 , dss +← 12 , )2(1 dks ⋅⋅← , 1,0 −= dr , 1,0 −= jk , 12n pd − −← , 2 pj ← , 1,0 −= np . Шаг 4. Битовая инверсия сигналов )(ˆ rX N , )(ˆ rYN , 1,0 −= Nr . ˆ ˆ( ), ( ); ˆ ˆ ˆ ˆ, ( ) ( ), ( ) ( ); ,ˆ ˆ( ) , ( ) . ˆ ˆ ˆ ˆ, ( ) ( ), ( ) ( ) N N N N N N N N N N N N X X j Y Y j r j X j X r Y j Y r X r X Y r Y r j X r X r Y r Y r ⎧ ⎫⎧ ⎫← ← ⎪ ⎪⎪ ⎪⎪ ⎪⎪ ⎪< ← ←⎨ ⎬⎪ ⎪ ⎨ ⎬⎪ ⎪← ←⎪ ⎪⎪ ⎪⎩ ⎭ ⎪ ⎪ ≥ ← ←⎪ ⎪⎩ ⎭ )(rBj N← , 1,0 −= Nr . Шаг 5. Распаковка сигналов ( )ˆ NX r , ( )N̂Y r , 0, 1r N= − . ( )ˆ 0 Re ImNX X X← + , ( )ˆ 0 Re ImNY Y Y← + , ˆ ( ) Re ImNX N X X← − , ( )ˆ 0NX X← . ˆ ( ) Re ImNY N Y Y← − , ( )ˆ 0NY Y← . ( ) ( )*ˆ ˆ2 2N NX N X N← , ( ) ( )*ˆ ˆ2 2N NY N Y N← . ( )ˆ NX r AX SX← + , ( )N̂Y r AY SY← + , **)(ˆ SXAXrNX N −←− , SXWSX ⋅← , * *ˆ ( )NY N r AY SY− ← − , SYWSY ⋅← , Прикладні засоби програмування та програмне забезпечення 118 ( ) ( )( )*1 ˆ ˆ 2 N NAX X r X N r← + − , ( ) ( )( )*1 ˆ ˆ 2 N NSX X r X N r i ← − − , ))(ˆ)(ˆ( 2 1 * rNYrYAY NN −+← , ))(ˆˆ( 2 1 * rNYY i SY NN −−← , ⎭ ⎬ ⎫ ⎩ ⎨ ⎧ −−= ++= ← )1()(,1 )1()(,0 2 2 kiCkCk kiCkCk W NN NN , ( )Nk B r← , 12,0 −= Nr . Шаг 6. Комплексное умножение сигналов 1 ˆ NX + , 1N̂Y + , Nr ,0= . ( ) ( ) ( )1 1 1 ˆ ˆ ˆ N N NZ r X r Y r+ + +← ⋅ , Nr ,0= . Шаг 7. Упаковка сигнала ( )1 ˆ NZ r+ , Nr ,0= . ( ) ( ) ( )( )(1ˆ ˆ ˆ0 Re 0 Im 2N N NZ Z Z N← + + ( ) ( )( ))ˆ ˆRe 0 ImN Ni Z Z N+ − , ( ) ( )*ˆ ˆ2 2N NZ N Z N← . SArZ N −←)(ˆ , **)(ˆ SArNZ N +←− , ( )*S W S← ⋅ , ( ) ( )( )*1 ˆ ˆ 2 N NA Z r Z N r← + − , ( ) ( )( )*1 ˆ ˆ 2 N NS Z r Z N r i ← − − , ⎭ ⎬ ⎫ ⎩ ⎨ ⎧ −−= ++= ← )1()(,1 )1()(,0 2 2 kiCkCk kiCkCk W NN NN , )(rBk N← , 12,0 −= Nr . Шаг 8. Комплексное сопряжение сигнала )(ˆ rZN , 1,0 −= Nr . )(ˆ)(ˆ * rZrZ NN ← , 1,0 −= Nr . Шаг 9. Вычисление БПФ сигнала ( )ˆ NZ r , 1,0 −= Nr . ( ) ( )1 1N NZ i Z i Z← + , ( ) ( )2 1N NZ i Z i Z← − , WZZ ⋅← , ( )2NZ Z i← , 2 2 1, при 0 , при 1 , при 2 ,, при 3 0, ( ) ( 1) ,при 3 1, ( ) ( 1) N N N N W k W i k W S iS k W S iS k k C k iC k W k k C k iC k ← =⎧ ⎫ ⎪ ⎪← − =⎪ ⎪ ⎪ ⎪← − =⎪ ⎪ ⎨ ⎬← − − = ⎪ ⎪ ⎪ ⎪⎧ ⎫= + +⎪ ⎪← >⎪ ⎪⎨ ⎬ = − −⎪ ⎪⎪ ⎪⎩ ⎭⎩ ⎭ 22←S , rsi +← 11 , rsi +← 22 , dss +← 12 , )2(1 dks ⋅⋅← , 1,0 −= dr , 1,0 −= jk , pnd −−← 12 , pj 2← , 1,0 −= np . Шаг 10. Битовая инверсия сигналов NZ , 1,0 −= Nr . ( ) ( ) ( ) ( ) , , , , ( ) ( ) N N N N N N Z r Z r j Z j Z r Z Z j r j Z r Z r ⎧ ⎫⎧ ⎫← ⎪ ⎪⎪ ⎪ < ←⎪ ⎪⎨ ⎬ ⎨ ⎬⎪ ⎪←⎪ ⎪⎩ ⎭ ⎪ ⎪≥ ←⎩ ⎭ , ( )Nj B r← , 1,0 −= Nr . Шаг 11. Комплексное сопряжение сигнала ( )NZ r , 1,0 −= Nr . ( ) ( )* N NZ r Z r← , 1,0 −= Nr . Шаг 12. Результат умножения из сигнала NẐ , 1,0 −= Nr . ( ) ( )2 2 ReN NR r Z r← , ( ) ( )2 2 1 ImN NR r Z r+ ← , 1,0 −= Nr . Примечание. На 5-м шаге (Распа- ковка) длина сигналов NX̂ , NX̂ увеличи- вается на один разряд, а на 7-м шаге (Упаковка) длина сигнала 1 ˆ +NZ уменьша- ется на один разряд. Алгоритм 2. Реализация операции умножения двух N -разрядных сигналов на основе N -разрядных ДПФ с исполь- зованием формул распаковки и упаковки (в виде подалгоритмов). Вход: ( )NU r , ( )NV r , 1,0 −= Nr – N -разрядные множители, N – число разрядов множителей. Прикладні засоби програмування та програмне забезпечення 119 Выход: 2NR – N2 -разрядный ре- зультат умножения. Шаг 1. ( NС , )NB ←Предвычисле- ние ( N )1 (см. Алгоритм 3). Шаг 2. ( NX , )NY ←Инициализа- ция ( NU , NV , )N (см. Алгоритм 4). Шаг 3. ˆ NX ←БПФ ( NX , NC , )N (см. Алгоритм 5). Шаг 4. N̂Y ←БПФ ( NY , NC , )N (см. Алгоритм 5). Шаг 5. ˆ NX ←Битовая инверсия ( ˆ NX , NB , )N (см. Алгоритм 6). Шаг 6. N̂Y ←Битовая инвер- сия ( N̂Y , NB , )N (см. Алгоритм 6). Шаг 7. 1 ˆ NX + ←Распаковка ( ˆ NX , NC , NB , N ) (см. Алгоритм 7). Шаг 8. 1N̂Y + ←Распаковка( NŶ , NC , NB , N ) (см. Алгоритм 7). Шаг 9. 1 ˆ NZ + ←Умножение( 1 ˆ +NX , 1 ˆ +NY , N ) (см. Алгоритм 8). Шаг 10. ˆ NZ ←Упаковка( 1 ˆ +NZ , NC , NB , N ) (см. Алгоритм 9). Шаг 11. NẐ ←Комплексное сопря- жение( NẐ , N ) (см. Алгоритм 10). Шаг 12. NZ ←БПФ( NẐ , NC , N ) (см. Алгоритм 5). Шаг 13. NZ ←Битовая инвер- сия( NZ , NB , N ) (см. Алгоритм 6). Шаг 14. NZ ←Комплексное сопря- жение( NZ , N ) (см. Алгоритм 10). Шаг 15. 2NR ←Результат умноже- ния( NZ , N ) (см. Алгоритм 11). Примечание. См. табл. 1–11. Ре- зультат вычисления Алгоритмов при 16=N . Алгоритм 3. Предвычисление. 1 Алгоритмы 3-11 описаны далее Вход: N – число разрядов ком- плексного сигнала. Выход: )(rCN , 1,0 −= Nr – вектор предвычисленных косинусов, )(rBN , 1,0 −= Nr – вектор номе- ров строк для битовой инверсии. Шаг 1. ( )0 0NB ← ; ( )0 1NC ← (или ))0(cos()0( NN BC ← ); 0←r , Nn 2log← . Шаг 2. 1←j , 2Nd ← . Шаг 3. Для p от 0 до 1−n . Шаг 4. Для k от 0 до 1−j . Шаг 5. dkBv N +← )( . Шаг 6. ( )NB r v← , ( ) 2cos . 2N vC r N π⎛ ⎞← − ⋅⎜ ⎟ ⎝ ⎠ . Шаг 7. 1+← rr . Шаг 8. Конец цикла по k . Шаг 9. jj ⋅← 2 , 2dd ← . Шаг 10. Конец цикла по p . Алгоритм 4. Инициализация. Вход: )(rU N , )(rVN , 1,0 −= Nr – действительные сигналы, N – число разрядов в действитель- ных и комплексных сигналах. Выход: )(rX N , )(rYN , 1,0 −= Nr – комплексные сигналы. Шаг 1. Для r от 0 до 12 −N . Шаг 2. ( ) ( ) ( )2 2 1N N NX r U r iU r← + + . Шаг 3. )12()2()( ++← riVrVrY NNN . Шаг 4. Конец цикла по r . Шаг 5. Для r от 2N до 1−N . Шаг 6. 0←rx , 0←ry . Шаг 7. Конец цикла по r . Алгоритм 5. БПФ (Быстрое преоб- разование Фурье) оптимизированный. Вход: ( )ˆ NX r , 1,0 −= Nr – ком- плексный сигнал, Прикладні засоби програмування та програмне забезпечення 120 ( )NC r , 1,0 −= Nr – вектор пред- вычисленных косинусов (см. Алгоритм 3. Предвычисления), N – число разрядов комплексного сигнала. Выход: )(ˆ rX N , 1,0 −= Nr – ДПФ входного комплексного сигнала ( )ˆ NX r , 1,0 −= Nr . Шаг 1. 22←S , 1←j , 2Nd ← . Шаг 2. Для p от 0 до 1−n . Шаг 3. Для k от 0 до 1−j . Шаг 4. ( )1 2s k d← ⋅ ⋅ , dss +← 12 . Шаг 5. Для r от 0 до 1−d . Шаг 6. rsi +← 11 , rsi +← 22 . Шаг 7. ( )ˆ 2NX X i← ; 2 2 , при 0 ( ), при 1 ( ), при 2 ( ), при 3 0, ( ) ( 1) , при 3 1, ( ) ( 1) N N N N X X k X X i k X X S iS k X X S iS k k C k iC k X X k k C k iC k ← =⎧ ⎫ ⎪ ⎪← ⋅ − =⎪ ⎪ ⎪ ⎪← ⋅ − =⎪ ⎪ ⎨ ⎬← ⋅ − − = ⎪ ⎪ ⎪ ⎪⎧ ⎫= + +⎪ ⎪← ⋅ >⎪ ⎪⎨ ⎬ = − −⎪ ⎪⎪ ⎪⎩ ⎭⎩ ⎭ Шаг 8. ( ) ( )ˆ ˆ2 1N NX i X i X← − , ( ) ( )ˆ ˆ1 1N NX i X i X← + . Шаг 9. Конец цикла по r . Шаг 10. Конец цикла по k . Шаг 11. Конце цикла по p . Алгоритм 6. Битовая инверсия. Вход: ( )ˆ NX r , 1,0 −= Nr – ком- плексный сигнал, ( )NB r , 1,0 −= Nr – вектор номе- ров строк для битовой инверсии (см. Алго- ритм 3), N – число разрядов комплексного сигнала. Выход: NX̂ – результат битовой инверсии входного комплексного сигнала NX̂ . Шаг 1. Для r от 0 до 1−N . Шаг 2. ( )Nj B r← . Шаг 3. Если jr < , то ( )ˆ NX r X← , ( ) ( )ˆ ˆ N NX j X r← , )(ˆ jXX N← . Шаг 4. Конец цикла по r . Алгоритм 7. Распаковка. Вход: ( )ˆ NX r , Nr ,0= – комплекс- ный сигнал, ( )NC r , Nr ,0= – вектор предвы- численных косинусов, )(rBN , Nr ,0= – вектор номеров строк для битовой инверсии (см. Алгоритм 3. Предвычисления), N – число разрядов комплексного сигнала. Выход: ( )1 ˆ NX r+ , Nr ,0= – 1+N первых разрядов ДПФ действительного сигнала ( )NU r , Nr ,0= , добавленного N старшими нулями. Шаг 1. ( )ˆ 0 Re ImNX X X← + , ( )ˆ Re ImNX N X X← − , ( )ˆ 0NX X← . Шаг 2. Для r от 1 до 1 2 − N . Шаг 3. ( )Nk B r← ; ⎭ ⎬ ⎫ ⎩ ⎨ ⎧ −−= ++= ← )1()(,1 )1()(,0 2 2 kiCkCk kiCkCk W NN NN . Шаг 4. ( ) ( )( )*1 ˆ ˆ 2 N NA X r X N r← + − , ( ) ( )( )*1 ˆ ˆ 2 N NS X r X N r← − − . Шаг 5. ( )S i W S← − ⋅ ⋅ . Шаг 6. ( )ˆ NX r A S← + , ( ) * *ˆ NX N r A S− ← − . Шаг 7. Конец цикла по r . Алгоритм 8. Умножение. Вход: ( )1 ˆ NX r+ , ( )1N̂Y r+ , Nr ,0= – 1+N первых разрядов ДПФ действитель- ных сигналов ( )NU r и ( )NV r , Nr ,0= , добавленных N старшими нулями; Прикладні засоби програмування та програмне забезпечення 121 N – число разрядов комплексного сигнала. Выход: ( )1 ˆ NZ r+ , Nr ,0= – резуль- тат умножения сигналов ( )1 ˆ NX r+ , ( )1N̂Y r+ , Nr ,0= . Шаг 1. ( ) ( ) ( )1 1 1 ˆ ˆ ˆ0 Re 0 Re 0N N NZ X Y+ + +← ⋅ , ( ) ( ) ( )1 1 1 ˆ ˆ ˆRe ReN N NZ N X N Y N+ + +← ⋅ . Шаг 2. Для r от 1 до 1−N . Шаг 3. ( ) ( ) ( )1 1 1 ˆ ˆ ˆ N N NZ r X r Y r+ + +← ⋅ . Шаг 4. Конец цикла по r . Алгоритм 9. Упаковка. Вход: ( )1 ˆ NZ r+ , Nr ,0= – 1+N первых разрядов умножения ДПФ дейст- вительных сигналов ( )NU r и ( )NV r , 1,0 −= Nr , добавленных N старшими нулями. ( )NC r , 1,0 −= Nr – вектор пред- вычисленных косинусов, ( )NB r , 1,0 −= Nr – вектор номе- ров строк для битовой инверсии (см. Алго- ритм 3. Предвычисления), N – число разрядов комплексного сигнала. Выход: ( )ˆ NZ r , 1,0 −= Nr – об- ратное ДПФ сигнала ( )NZ r , 1,0 −= Nr . Шаг 1. ( ) ( )( )( ( ) ( )( )) 1ˆ ˆ ˆ0 Re 0 Re ( ) 2 ˆ ˆRe 0 Re . N N N N N Z Z Z N i Z Z N ← + + + − Шаг 2. Для r от 1 до 1 2 − N . Шаг 3. ( )Nk B r← ; ( ) ( ) ( ) ( ) 2 2 0, 1 1, 1 N N N N k C k iC k W k C k iC k ⎧ ⎫= + +⎪ ⎪← ⎨ ⎬ = − −⎪ ⎪⎩ ⎭ . Шаг 4. ( )( )*1 ˆ ˆ ( ) 2 N NA Z r Z N r← + − , ( ) ( )( )*1 ˆ ˆ 2 N NS Z r Z N r← − − . Шаг 5. ( ) ( )*S i W S← − ⋅ ⋅ . Шаг 6. ( )ˆ NZ r A S← − , ( ) * *ˆ NZ N r A S− ← + . Шаг 7. Конец цикла по r . Алгоритм 10. Комплексное сопря- жение. Вход: ( )ˆ NX r , 1,0 −= Nr – ком- плексный сигнал, N – число разрядов комплексного сигнала. Выход: ( )ˆ NX r , 1,0 −= Nr – ре- зультат комплексного сопряжения входно- го сигнала ( )ˆ NX r , 1,0 −= Nr . Шаг 1. Для r от 0 до 1−N . Шаг 2. ( ) ( )*ˆ ˆ N NZ r Z r← . Шаг 3. Конец цикла по r . Алгоритм 11. Результат умноже- ния. Вход: ( )NZ r , 1,0 −= Nr – ком- плексный сигнал, N – число разрядов комплексного сигнала. Выход: ( )2NR r , 12,0 −= Nr – действительный сигнал, результат умно- жения )(rU N и )(rVN , 1,0 −= Nr . Шаг 1. Для r от 0 до 1−N . Шаг 2. ( ) ( )2 2 ReN NR r Z r N← , ( ) ( )2 2 1 ImN NR r Z r N+ ← . Шаг 3. Конец цикла по r . Далее приводятся табл. 1 – 12 про- межуточных результатов выполнения каж- дого шага Алгоритма 2 на примере опера- ции умножения двух 16-разрядных чисел, все разряды которых одинаковые и равны 1, что соответствует операции возведения в квадрат 16-разрядного числа. Прикладні засоби програмування та програмне забезпечення 122 Таблица 1. Результат вычисления Алгоритма 3. Предвычисления ( 16=N ) r )(rСN )(rBN 0 1 0 1 0 8 2 0.7071067812 4 3 –0.7071067812 12 4 0.9238795325 2 5 –0.3826834324 10 6 0.3826834324 6 7 –0.9238795325 14 8 0.9807852804 1 9 –0.195090322 9 10 0.555570233 5 11 –0.8314696123 13 12 0.8314696123 3 13 –0.555570233 11 14 0.195090322 7 15 –0.9807852804 15 Таблица 2. Результат вычисления Алгоритма 4. Инициализация ( 16=N ) r )(),( rVrU NN )(ˆIm),(ˆIm ),(ˆRe),(ˆRe rYrX rYrX NN NN , 0 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 0 9 1 0 10 1 0 11 1 0 12 1 0 13 1 0 14 1 0 15 1 0 Таблица 3. Результат итераций ( 2,1,0=p ) Алгоритма 5. БПФ сигналов ( )ˆ NX r , ( )N̂Y r Вход 0=p 1=p 2=p 3=p r Re Im Re Im Re Im Re Im Re Im 0 1 1 1 1 2 2 4 4 8 8 1 1 1 1 1 2 2 4 4 0 0 2 1 1 1 1 2 2 0 0 0 0 3 1 1 1 1 2 2 0 0 0 0 4 1 1 1 1 0 0 0 0 0 0 5 1 1 1 1 0 0 0 0 0 0 6 1 1 1 1 0 0 0 0 0 0 7 1 1 1 1 0 0 0 0 0 0 8 0 0 1 1 2 0 3.414213562 –1.414213562 6.027339492 –4.027339492 9 0 0 1 1 2 0 3.414213562 –1.414213562 0.8010876326 1.198912367 10 0 0 1 1 2 0 0.5857864376 1.414213562 1.668178638 0.3318213621 11 0 0 1 1 2 0 0.5857864376 1.414213562 –0.4966057627 2.496605763 12 0 0 1 1 0 2 1.414213562 0.5857864376 2.496605763 –0.4966057627 13 0 0 1 1 0 2 1.414213562 0.5857864376 0.3318213621 1.668178638 14 0 0 1 1 0 2 –1.414213562 3.414213562 1.198912367 0.8010876326 15 0 0 1 1 0 2 –1.414213562 3.414213562 –4.027339492 6.027339492 Прикладні засоби програмування та програмне забезпечення 123 Таблица 4. Результат Алгоритма 6. Битовая инверсия сигналов ( )ˆ NX r , ( )N̂Y r Вход ( )ˆ NX r Выход ( )ˆIm NX r r Re Im Re Im 0 8 8 8 8 1 0 0 6.027339492 –4.027339492 2 0 0 0 0 3 0 0 2.496605763 –0.4966057627 4 0 0 0 0 5 0 0 1.668178638 0.3318213621 6 0 0 0 0 7 0 0 1.198912367 0.8010876326 8 6.027339492 –4.027339492 0 0 9 0.8010876326 1.198912367 0.8010876326 1.198912367 10 1.668178638 0.3318213621 0 0 11 –0.4966057627 2.496605763 0.3318213621 1.668178638 12 2.496605763 –0.4966057627 0 0 13 0.3318213621 1.668178638 –0.4966057627 2.496605763 14 1.198912367 0.8010876326 0 0 15 –4.027339492 6.027339492 –4.027339492 6.027339492 Таблица 5. Результат Алгоритма 7. Распаковка ( )ˆ NX r , ( )N̂Y r Вход ( )ˆ NX r Выход ( )1 ˆ NX r+ r Re Im Re Im 0 8 8 16 0 1 6.027339492 –4.027339492 1 –10.15317039 2 0 0 0 0 3 2.496605763 –0.4966057627 1 –3.296558209 4 0 0 0 0 5 1.668178638 0.3318213621 1 –1.870868412 6 0 0 0 0 7 1.198912367 0.8010876326 1 –1.218503526 8 0 0 0 0 9 0.8010876326 1.198912367 1 –0.8206787908 10 0 0 0 0 11 0.3318213621 1.668178638 1 –0.534511136 12 0 0 0 0 13 –0.4966057627 2.496605763 1 –0.3033466836 14 0 0 0 0 15 –4.027339492 6.027339492 1 –0.09849140336 16 0 0 Прикладні засоби програмування та програмне забезпечення 124 Таблица 6. Результат Алгоритма 8. Умножение ( ) ( )1 1 ˆ ˆ N NX r Y r+ +⋅ Вход ( )1 ˆ NX r+ , ( )1N̂Y r+ Выход ( )1 ˆRe NZ r+ r Re Im Re Im 0 16 0 256 0 1 1 –10.15317039 –102.0868689 –20.30634078 2 0 0 0 0 3 1 –3.296558209 –9.867296025 –6.593116418 4 0 0 0 0 5 1 –1.870868412 –2.500148614 –3.741736824 6 0 0 0 0 7 1 –1.218503526 –0.4847508419 –2.437007051 8 0 0 0 0 9 1 –0.8206787908 0.3264863223 –1.641357582 10 0 0 0 0 11 1 –0.534511136 0.7142978455 –1.069022272 12 0 0 0 0 13 1 –0.3033466836 0.9079807895 –0.6066933672 14 0 0 0 0 15 1 –0.09849140336 0.9902994435 –0.1969828067 16 0 0 0 0 Таблица 7. Результат Алгоритма 9. Упаковка ( )( )ˆ NZ r Вход ( )1 ˆ NZ r+ Выход ( )ˆ NZ r r Re Im Re Im 0 256 0 128 128 1 –102.0868689 –20.30634078 –30.43892677 –58.60296372 2 0 0 0 0 3 –9.867296025 –6.593116418 1.506765433 –5.472869143 4 0 0 0 0 5 –2.500148614 –3.741736824 1.779789167 –0.2292826602 6 0 0 0 0 7 –0.4847508419 –2.437007051 0.7165172097 1.523043005 8 0 0 0 0 9 0.3264863223 –1.641357582 –0.8747817293 2.318692475 10 0 0 0 0 11 0.7142978455 –1.069022272 –3.565639936 2.443431891 12 0 0 0 0 13 0.9079807895 –0.6066933672 –10.46608067 0.5135539076 14 0 0 0 0 15 0.9902994435 –0.1969828067 –70.65764271 –38.49360575 16 0 0 Прикладні засоби програмування та програмне забезпечення 125 Таблица 8. Результат Алгоритма 10. Комплексное сопряжение ( )( )ˆ NZ r Вход ( )ˆ NZ r Выход ( )ˆ NZ r r Re Im Re Im 0 128 128 128 –128 1 –30.43892677 –58.60296372 –30.43892677 58.60296372 2 0 0 0 0 3 1.506765433 –5.472869143 1.506765433 5.472869143 4 0 0 0 0 5 1.779789167 –0.2292826602 1.779789167 0.2292826602 6 0 0 0 0 7 0.7165172097 1.523043005 0.7165172097 –1.523043005 8 0 0 0 0 9 –0.8747817293 2.318692475 –0.8747817293 –2.318692475 10 0 0 0 0 11 –3.565639936 2.443431891 –3.565639936 –2.443431891 12 0 0 0 0 13 –10.46608067 0.5135539076 –10.46608067 –0.5135539076 14 0 0 0 0 15 –70.65764271 –38.49360575 –70.65764271 38.49360575 Таблица 9. Результат Алгоритма 5. БПФ ( )ˆ NZ Таблица 10. Результат Алгоритма 6. Битовая инверсия ( )( )ˆ NZ r Вход ( )ˆ NZ r Выход ( )ˆ NZ r ˆ ˆr Re Im Re Im 0 128 –128 16 –32 1 –30.43892677 58.60296372 240 –224 2 0 0 144 –160 3 1.506765433 5.472869143 122 –96 4 0 0 80 –96 5 1.779789167 0.2292826602 176 –160 6 0 0 208 –224 7 0.7165172097 –1.523043005 48 –32 8 0 0 48 –64 9 –0.8747817293 –2.318692475 208 –192 10 0 0 176 –192 11 –3.565639936 –2.443431891 80 –64 12 0 0 112 –128 13 –10.46608067 –0.5135539076 144 –128 14 0 0 240 –256 15 –70.65764271 38.49360575 16 0 Вход ( )ˆ NZ r Выход )(ˆ rZ N r Re Im Re Im 0 16 –32 16 –32 1 240 –224 48 –64 2 144 –160 80 –96 3 122 –96 112 –128 4 80 –96 144 –160 5 176 –160 176 –192 6 208 –224 208 –224 7 48 –32 240 –256 8 48 –64 240 –224 9 208 –192 208 –192 10 176 –192 176 –160 11 80 –64 144 –128 12 112 –128 112 –96 13 144 –128 80 –64 14 240 –256 48 –32 15 16 0 16 0 Прикладні засоби програмування та програмне забезпечення 126 Таблица 11. Результат Алгоритма 10. Комплексное сопряжение ( )(ˆ rZ N ) Таблица 12. Результат Алгоритма 11. Результат умножения ( )(2 rR N ) Вход )(ˆ rZ N Выход )(ˆ rZ N r Re Im Re Im 0 16 –32 16 32 1 240 –224 48 64 2 144 –160 80 96 3 122 –96 112 128 4 80 –96 144 160 5 176 –160 176 192 6 208 –224 208 224 7 48 –32 240 256 8 48 –64 240 224 9 208 –192 208 192 10 176 –192 176 160 11 80 –64 144 128 12 112 –128 112 96 13 144 –128 80 64 14 240 –256 48 32 15 16 0 16 0 Вход )(ˆ rZ N Выход )(ˆ rZ N r Re Im )2(2 rR N )12(2 +rR N 0 16 32 1 2 1 48 64 3 4 2 80 96 5 6 3 112 128 7 8 4 144 160 9 10 5 176 192 11 12 6 208 224 13 14 7 240 256 15 16 8 240 224 15 14 9 208 192 13 12 10 176 160 11 10 11 144 128 9 8 12 112 96 7 6 13 80 64 5 4 14 48 32 3 2 15 16 0 1 0 Лемма 3. (Распаковка-Упаковка. Переход от большей разрядности N2 к меньшей N , используя фломулы распа- ковки). В условиях леммы 1 справедливы следующие соотношения: ( ) ( )*ˆ ˆ NNZ r Z r← , 1,0 −= Nr . (2) ( ) ( ) ( )( )(1ˆ ˆ ˆ0 Re 0 Re 2N N NX Z Z N← + + ( ) ( )( ))ˆ ˆRe 0 ReN Ni Z Z N+ − , ( ) ( )*ˆ ˆ2 2N NX N Z N← . (3) ( ) ( ) ( )2 2 ˆ N N NX r A r S r← + , ( ) ( ) ( )* * 2 2 ˆ N N NX N r A r S r− ← − , (4) ( ) ( ) ( )( )* 2 1 ˆ ˆ 2 N NNA r Z r Z N r← + − , ( ) ( ) ( )( )*2 2 ˆ ˆ 2 r N N NN WS r Z r Z N r i ← − − , (5) r N i r N eW π − =2 , 12,1 −= Nr . (6) ( ) ( )*ˆ ˆ NNX r X r← , 1,0 −= Nr . (7) Доказательство. Видно, что форму- лы (3)–(6) являются формулами распаковки (лемма 1). Рассмотрим сначала выражения (2), (3), (7) для 0=r . Так как ( )ˆ 0NZ , )(ˆ NZ N – действительные числа, то выпол- нение выражения (2) для 0=r не оказыва- ет влияния на результат ( )ˆ 0NX . При 2Nr = выражения )(ˆ)(ˆ * rZrZ NN ← , )2(ˆ)2(ˆ * NZNX NN ← , ( ) ( )*ˆ ˆ2 2NNX N X N← дают результат )2(ˆ)2(ˆ * NZNX NN ← с учетом свойства комплексных чисел ( )**a a← . Сделаем подстановку (2) в (5) и (4) в (7): ( ) ( ) ( )( )*2 2 ˆ N N NX r A r S r= + , ( ) ( ) ( )( )** * 2 2 ˆ N N NX N r A r S r− = − , ( ) ( )( ) ( )( )** * 2 1 ˆ ˆ 2 N NNA r Z r Z N r⎛ ⎞= + −⎜ ⎟ ⎝ ⎠ , ( ) ( )( ) ( )( )** *2 2 ˆ ˆ , 2 r N N N N WS r Z r Z N r i ⎛ ⎞= − −⎜ ⎟ ⎝ ⎠ 2 i rr N NW e π − = , 12,1 −= Nr . (8) С учетом свойств *** )( gfgf ±=± , r N r N WW 2 * 2 )( =− , * * *( )f g f g⋅ = ⋅ , **f f i i ⎛ ⎞= −⎜ ⎟ ⎝ ⎠ , Прикладні засоби програмування та програмне забезпечення 127 i i −= 1 где f и g – комплексные числа, выражения для ( )2NA r и ( )2NS r при- мут вид: ( ) ( )( ) ( )( )** * 2 1 ˆ ˆ 2 N NNA r Z r Z N r⎛ ⎞= + − =⎜ ⎟ ⎝ ⎠ ( ) ( )( )**1 ˆ ˆ 2 N NZ r Z N r= + − , ( ) ( )( ) ( )( ) ( ) ( )( ) ** *2 2 **2 ˆ ˆ 2 ˆ ˆ 2 r N N N N r N N N WS r Z r Z N r i W Z r Z N r i ⎛ ⎞= − − =⎜ ⎟ ⎝ ⎠ = − − = ( ) ( )( ) * *2 ˆ ˆ 2 r N N N W Z r Z N r i −⎛ ⎞ = − − −⎜ ⎟⎜ ⎟ ⎝ ⎠ . Подставляя полученные выражения в (8) получим (1), что и требовалось дока- зать. Свойство, доказанное выше, позво- ляет заменить формулы упаковки формула- ми распаковки при 12,1 −= Nr , что уменьшает число подпрограмм при реали- зации операции умножения больших чисел. Интересно, что аналогичным обра- зом можно избежать использования фор- мул распаковки, заменив их формулами упаковки. Алгоритм 12. Распаковка-Упаковка. Вход: ( )ˆ N MX r+ , 1,0 −= Nr ( )( 1 ˆ NX r+ , Nr ,0= , при 1=M ) – ком- плексный сигнал, ( )NC r , 1,0 −= Nr – вектор пред- вычисленных косинусов, ( )NB r – вектор номеров строк для битовой инверсии (см. Алгоритм 3. Пред- вычисления), N – число разрядов комплексного сигнала. M – режим вычисления (0 – распа- ковка, 1 – упаковка). Выход: 1 ˆ N MX + − , Nr ,0= , ( ˆ ( )NX r , 1,0 −= Nr , при 1=M ) – преобразован- ный ДПФ. Шаг 1. Если 0=M , то Шаг 2. ( )1 ˆ 0 Re ImNX X X+ ← + , ( )1 ˆ Re ImNX N X X+ ← − , ( )ˆ 0NX X← . Шаг 3. Иначе Шаг 4. ( ) ( ) ( )( )( 1 1 1ˆ ˆ ˆ0 Re 0 Re 2N N NX X X N+ +← + + ( ) ( )( ))1 1 ˆ ˆRe 0 ReN Ni X X N+ ++ − . Шаг 5. Конец если. Шаг 6. Для r от 1 до 12 −N . Шаг 7. ( )Nk B r← ; ⎭ ⎬ ⎫ ⎩ ⎨ ⎧ −−= ++= ← )1()(,1 )1()(,0 2 2 kiCkCk kiCkCk W NN NN . Шаг 8. ( ) ( )( )*1 ˆ ˆ 2 N NA X r X N r← + − , ( ) ( )( )*1 ˆ ˆ 2 N NS X r X N r← − − . Шаг 9. SWiS ⋅⋅−← )( . Шаг 10. ( )ˆ NX r A S← + , **)(ˆ SArNX N −←− . Шаг 11. Конец цикла по r . Тогда в Алгоритме 2 шаг 7–11 за- меняются следующими выражениями: Шаг 7. 1 ˆ +NX ←Распаковка-Упаков- ка( NX̂ , NB , NB , N , 0) (см. Алгоритм 12). Шаг 8. 1 ˆ +NY ←Распаковка-Упаковка ( NŶ , NC , NB , N , 0) (см. Алгоритм 12). Шаг 9. 1 ˆ +NZ ←Умножение( 1 ˆ +NX , 1 ˆ +NY , N ) (см. Алгоритм 8). Шаг 10. NẐ ←Комплексное сопря- жение( NẐ , N ) (см. Алгоритм 10). Шаг 11. NẐ ←Распаковка-Упаков- ка ( )1 ˆ , , , , 1N N NZ C B N+ (см. Алгоритм 12). Видим, что в оптимизированном ал- горитме комплексное сопряжение выпол- няется сразу после поразрядного умноже- ния сигналов. Далее приведены реализации Алго- ритма 2 и его оптимизация (язык програм- мирования APL). Прикладні засоби програмування та програмне забезпечення 128 Прикладні засоби програмування та програмне забезпечення 129 Прикладні засоби програмування та програмне забезпечення 130 Выполнение программ FFTMainF2 и FFTMainF2Opt дают одинаковый ре- зультат: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 02 Младший разряд слева. Вывод Предложена оптимизация алгорит- ма умножения больших N -разрядных чи- сел на основе N -разрядных БПФ с ис- пользованием формул распаковки-упако- вки [6]. Оптимизация позволяет умень- шить число модулей (подпрограмм), что уменьшает общую сложность алгоритма умножения. Показан метод замены формул упаковки формулами распаковки. Приве- дено детальное описание алгоритма реали- зации операции умножения. 1. Задірака В., Олексюк О. Комп’ютерна арифметика багаторозрядних чисел. – К.: Наук. думка, 2003. – 263 с. 2. Schonhage A., Strassen V. Schnelle Mul- tiplikation grossen Zahnel // Computing. – 1971. – 7, N 3–4. – P. 281–292. 3. Шенхаге А., Шрассен В. Быстрое умноже- ние больших чисел // Кибернетика. – 1972. – Вып. 2. – С. 87–98. 4. Cooley J.W., Tukey J.W. An algorithm for the machine calculation of complex Fourier Se- ries // Math Compt. – 1965. Apr. – P. 257–301. 5. Березовский А.И., Задирака В.К., Шевчук Л.Б. О тестировании быстродействия ал- горитмов и программ выполнения основ- ных операций для асимметричной крипто- графии // Кибернетика и системный ана- лиз. – 1999. – № 5. – С. 61–68. 6. Терещенко А.Н. Умножение больших N- разрядных чисел с вычислением только N- разрядных ДПФ // Компьютерная матема- тика. – 2008. – № 1. – С. 122–130. Получено 13.08.2012 2 Каждый разряд – 1 байт Об авторах: Терещенко Андрей Николаевич, кандидат физико-математических наук, начальник отдела по поддержке информационных систем, Задирака Валерий Константинович, доктор физико-математических наук, профессор, член-корреспондент НАН Украины, заведующий отделом. Место работы авторов: ООО «Симкорп Украина», Киев, ул. В. Стусса 35-37, teramidi@ukr.net Институт кибернетики имени В.М. Глушкова НАН Украины, 03680, Київ-187, проспект Академика Глушкова, 40, (044) 526 4568, zvk140@ukr.net
id pp_isofts_kiev_ua-article-113
institution Problems in programming
keywords_txt_mv keywords
language Russian
last_indexed 2025-07-17T09:32:53Z
publishDate 2015
publisher PROBLEMS IN PROGRAMMING
record_format ojs
resource_txt_mv ppisoftskievua/15/115bc9999f246f0ceab15d9b418dea15.pdf
spelling pp_isofts_kiev_ua-article-1132018-07-24T13:14:48Z Optimisation of big N-width digits multiplication based on N-width DFT Оптимизация умножения больших N-разрядных чисел на основе N-разрядных ДПФ Оптимізація множення великих N- разрядних чисел на основі N-разрядних ДПФ Tereshchenko, A.N. Zadiraka, V.K. Multidigit multiplication Операция умно­жения Операція множення It is considered multidigit multiplication, that has biggest influence on asymmetric cryptography performance. It is given detailed description of N-digit multiplication algorithm that is based on FFT of the length of N using of &quot;unpacking&quot; and &quot;packing&quot; formulas. It is given description, that gives possibility to build more simpler algorithm with using only either &quot;unpacking&quot; or &quot;packing&quot; operations. Рассматривается операция умно­жения больших чи­сел, от быстро­действия которой за­ви­­сит быстродействие асси­мет­­рич­ной крип­то­гра­фии. При­ве­де­но де­тальное описание алго­рит­ма ре­­а­ли­зации операции ум­но­же­ния N-разрядных чисел на ос­но­ве вы­чис­­ле­ния N-разрядных БПФ с ис­поль­­­зо­ва­ни­ем операций &quot;распаковки&quot; и &quot;упа­ков­ки&quot;. Описана процедура, позволяющая строить более простой алгоритм с использованием только фор­мул &quot;распаковки&quot; или только формул &quot;упа­ков­ки&quot;. Розглядається операція множення великих чисел, від швидкодії якої залежить швидкодія асиметричної криптографії. Наведено детальний опис алгоритму реалізації операції множення N-розрядних чисел на основі обчислення N-розрядних БПФ з використаннямоперацій &quot;розпакування&quot; та &quot;пакування&quot;. Описана процедура, яка дозволяє побудувати більш простий алгоритм з використанням тільки формул &quot;розпакування&quot; або тільки формул &quot;пакування&quot;. PROBLEMS IN PROGRAMMING ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ПРОБЛЕМИ ПРОГРАМУВАННЯ 2015-09-22 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/113 PROBLEMS IN PROGRAMMING; No 4 (2012) ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 4 (2012) ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 4 (2012) 1727-4907 ru https://pp.isofts.kiev.ua/index.php/ojs1/article/view/113/113 Copyright (c) 2015 ПРОБЛЕМИ ПРОГРАМУВАННЯ
spellingShingle Multidigit multiplication

Tereshchenko, A.N.
Zadiraka, V.K.
Optimisation of big N-width digits multiplication based on N-width DFT
title Optimisation of big N-width digits multiplication based on N-width DFT
title_alt Оптимизация умножения больших N-разрядных чисел на основе N-разрядных ДПФ
Оптимізація множення великих N- разрядних чисел на основі N-разрядних ДПФ
title_full Optimisation of big N-width digits multiplication based on N-width DFT
title_fullStr Optimisation of big N-width digits multiplication based on N-width DFT
title_full_unstemmed Optimisation of big N-width digits multiplication based on N-width DFT
title_short Optimisation of big N-width digits multiplication based on N-width DFT
title_sort optimisation of big n-width digits multiplication based on n-width dft
topic Multidigit multiplication

topic_facet Multidigit multiplication

Операция умно­жения

Операція множення

url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/113
work_keys_str_mv AT tereshchenkoan optimisationofbignwidthdigitsmultiplicationbasedonnwidthdft
AT zadirakavk optimisationofbignwidthdigitsmultiplicationbasedonnwidthdft
AT tereshchenkoan optimizaciâumnoženiâbolʹšihnrazrâdnyhčiselnaosnovenrazrâdnyhdpf
AT zadirakavk optimizaciâumnoženiâbolʹšihnrazrâdnyhčiselnaosnovenrazrâdnyhdpf
AT tereshchenkoan optimízacíâmnožennâvelikihnrazrâdnihčiselnaosnovínrazrâdnihdpf
AT zadirakavk optimízacíâmnožennâvelikihnrazrâdnihčiselnaosnovínrazrâdnihdpf