蒙哥马利算法
在模算數領域,蒙哥馬利模乘(Montgomery modular multiplication)、蒙哥馬利乘算(Montgomery multiplication)是一种快速大数(通常是几百個二進位)模乘算法, 由彼得·蒙哥马利在1985年提出。[1][2] 一般以傳統方式計算模乘 ab mod N 時,是將乘積 ab 除以 N 並取餘數,然而除法需要相當消耗時間的商數位估算和校正。因此蒙哥馬利模乘引入了一種特殊的數字表達形式「蒙哥馬利型(Montgomery form)」。將 a 與 b 轉化為蒙哥馬利型後,計算在蒙哥馬利型下的 ab mod N。令 R > N 為一整數常數且與 N 互質,在計算蒙哥馬利演算法的過程中,唯一必要的除法就僅為除以 R。而此常數 R 是可以設計為容易進行除法的。以實務來說,R 通常會設為 2 的冪次方,如此一來,除法就僅僅需要進行移位。 單次的蒙哥馬利模乘因為需要將 a 與 b 轉化為蒙哥馬利型,速度上可能反而不及傳統方法以及巴雷特約減。然而,當我們需要進行連續乘法時(例如模冪(modular exponentiation)運算),其優勢就會展現出來:只有在連續乘法起始與結束時需要進行蒙哥馬利型轉化,而過程中所產生的中間值可以一直維持在蒙哥馬利型的狀態。相較於連乘,轉化的時間花費在整個過程中就相對微小許多。 諸多的密碼系統如 RSA 與 迪菲-赫爾曼密鑰交換 都是基於在一個很大的奇數模上做運算。對這些演算法來說,使用 R 為二的次方的蒙哥馬利乘算是非常有效率的一種做法。[3] 蒙哥馬利約減參見參考資料
|
Index:
pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve
Portal di Ensiklopedia Dunia