Transcript
Page 1: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Craig Costello

A gentle introduction to isogeny-based cryptography

Tutorial at SPACE 2016December 15, 2016

CRRao AIMSCS, Hyderabad, India

Page 2: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Part 1: Motivation

Part 2: Preliminaries

Part 3: Brief SIDH sketch

Page 3: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Diffie-Hellman key exchange (circa 1976)

๐‘Ž =685408003627063761059275919665781694368639459527871881531452

๐‘” = 123456789

๐‘ž = 1606938044258990275541962092341162602522202993782792835301301

๐‘ =362059131912941987637880257325269696682836735524942246807440

๐‘”๐‘Ž mod ๐‘ž = 78467374529422653579754596319852702575499692980085777948593

๐‘”๐‘Ž๐‘ mod ๐‘ž = 437452857085801785219961443000845969831329749878767465041215

560048104293218128667441021342483133802626271394299410128798 = ๐‘”๐‘ mod ๐‘ž

Page 4: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Diffie-Hellman key exchange (circa 2016)

๐‘” = 123456789

๐‘ž =5809605995369958062859502533304574370686975176362895236661486152287203730997110225737336044533118407251326157754980517443990529594540047121662885672187032401032111639706440498844049850989051627200244765807041812394729680540024104827976584369381522292361208779044769892743225751738076979568811309579125511333093243519553784816306381580161860200247492568448150242515304449577187604136428738580990172551573934146255830366405915000869643732053218566832545291107903722831634138599586406690325959725187447169059540805012310209639011750748760017095360734234945757416272994856013308616958529958304677637019181594088528345061285863898271763457294883546638879554311615446446330199254382340016292057090751175533888161918987295591531536698701292267685465517437915790823154844634780260102891718032495396075041899485513811126977307478969074857043710

716150121315922024556759241239013152919710956468406379442914941614357107914462567329693649

๐‘”๐‘Ž๐‘ =330166919524192149323761733598426244691224199958894654036331526394350099088627302979833339501183059198113987880066739419999231378970715307039317876258453876701124543849520979430233302777503265010724513551209279573183234934359636696506968325769489511028943698821518689496597758218540767517885836464160289471651364552490713961456608536013301649753975875610659655755567474438180357958360226708742348175045563437075840969230826767034061119437657466993989389348289599600338950372251336932673571743428823026014699232071116171392219599691096846714133643382745709376112500514300983651201961186613464267685926563624589817259637248558104903657371981684417053993082671827345252841433337325420088380059232089174946086536664984836041334031650438692639106287627157575758383128971053401037407031731509582807639509448704617983930135028

7596589383292751993079161318839043121329118930009948197899907586986108953591420279426874779423560221038468

๐‘Ž =7147687166405; 9571879053605547396582692405186145916522354912615715297097100679170037904924330116019497881089087696131592831386326210951294944584400497488929803858493191812844757232102398716043906200617764831887545755623377085391250529236463183321912173214641346558452549172283787727566955898452199622029450892269665074265269127802446416400\90259271040043389582611419862375878988193612187945591802864062679\86483957813927304368495559776413009721221824915810964579376354556\65546298837778595680891578821511273574220422646379170599917677567\30420698422392494816906777896174923072071297603455802621072109220\54662739697748553543758990879608882627763290293452560094576029847\39136138876755438662247926529997805988647241453046219452761811989\97464772529088780604931795419514638292288904557780459294373052654\10485180264002079415193983851143425084273119820368274789460587100\30497747706924427898968991057212096357725203480402449913844583448

๐‘ =655456209464694; 93360682685816031704969423104727624468251177438749706128879957701\93698826859762790479113062308975863428283798589097017957365590672\8357138638957122466760949930089855480244640303954430074800250796203638661931522988606354100532244846391589798641210273772558373965\48653931285483865070903191974204864923589439190352993032676961005\08840431979272991603892747747094094858192679116146502863521484987\08623286193422239171712154568612530067276018808591500424849476686\706784051068715397706852664532638332403983747338379697022624261377163163204493828299206039808703403575100467337085017748387148822224875309641791879395483731754620034884930540399950519191679471224\05558557093219350747155777569598163700850920394705281936392411084\43600686183528465724969562186437214972625833222544865996160464558\54629937016589470425264445624157899586972652935647856967092689604\42796501209877036845001246792761563917639959736383038665362727158

1974966481832271932862620186142505559719097997625337606540081479948757754456670542185781051331382174972068905995549284294506678994768546685955940340934936375624510789382969603134886961788481424913516872530546022029662470461057707715772483216821171742461283211956785376315202786494034647973536919967369935770926871783856022988735589541210564305228996197614537270822178234757462238037900142350513967990494465082246618501681499574014746384567166244019067013944724470150525694177463721850933025357393837919800705723814217290296516393042343612687649717077634843006689239728687091216655686698309786578047401579166115635085698868474877726766712073860961529476071145597063402090591037030181826355218987380945462945580355697525966763466146993277420884712557411847558661178122098955149524361601993365326052422101474898256696660124195726100495725510022002932814218768060112310763455404567248761396399633344901857872119208518550803791724

๐‘”๐‘Ž

(mod q)=

4116046620695933066832285256534418724107779992205720799935743972371563687620383783327424719396665449687938178193214952698336131699379861648113207956169499574005182063853102924755292845506262471329301240277031401312209687711427883948465928161110782751969552580451787052540164697735099369253619948958941630655511051619296131392197821987575429848264658934577688889155615145050480918561594129775760490735632255728098809700583965017196658531101013084326474277865655251213287725871678420376241901439097879386658420056919119973967264551107584485525537442884643379065403121253975718031032782719790076818413945341143157261205957499938963479817893107541948645774359056731729700335965844452066712238743995765602919548561681262366573815194145929420370183512324404671912281455859090458612780918001663308764073238447199488070126873048860279221761629281961046255219584327714817248626243962413613075956770018017385724999495117779149416882188

=๐‘”๐‘

(mod q)

Page 5: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

ECDH key exchange (1999 โ€“ nowish)

๐‘ƒ = (48439561293906451759052585252797914202762949526041747995844080717082404635286,36134250956749795798585127919587881956611106672985015071877198253568414405109)

๐‘ = 2256 โˆ’ 2224 + 2192 + 296 โˆ’ 1๐‘ = 115792089210356248762697446949407573530086143415290314195533631308867097853951

๐‘Ž =891306445912460335776397706414628550231450284928352556031837219223173

24614395

๐ธ/๐…๐‘: ๐‘ฆ2 = ๐‘ฅ3 โˆ’3๐‘ฅ +๐‘

๐‘ =100955574639327864188069383161907080327719109190584053916797810821934

05190826

[a]๐‘ƒ = (84116208261315898167593067868200525612344221886333785331584793435449501658416,102885655542185598026739250172885300109680266058548048621945393128043427650740)

[b]๐‘ƒ = (101228882920057626679704131545407930245895491542090988999577542687271695288383,77887418190304022994116595034556257760807185615679689372138134363978498341594)

[ab]๐‘ƒ = (101228882920057626679704131545407930245895491542090988999577542687271695288383,77887418190304022994116595034556257760807185615679689372138134363978498341594)

#๐ธ = 115792089210356248762697446949407573529996955224135760342422259061068512044369

Page 6: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข Quantum computers break elliptic curves, finite fields, factoring, everything currently used for PKC

โ€ข Aug 2015: NSA announces plans to transition to quantum-resistant algorithms

โ€ข Feb 2016: NIST calls for quantum-secure submissions

Quantum computers โ†” Cryptopocalypse

Page 7: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Post-quantum key exchange

This talk + Sundayโ€™s: isogenies

What hard problem(s) do we use now???

Page 8: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Diffie-Hellman instantiations

DH ECDH R-LWE[BCNSโ€™15, newhope, NTRU]

LWE[Frodo]

SIDH[DJP14, CLN16]

elements integers ๐‘”modulo prime

points ๐‘ƒ in

curve group

elements ๐‘Ž in ring

๐‘… = โ„ค๐‘ž ๐‘ฅ /โŸจฮฆ๐‘› ๐‘ฅ โŸฉmatrices ๐ด in

โ„ค๐‘ž๐‘›ร—๐‘›

curves ๐ธ in

isogeny class

secrets exponents ๐‘ฅ scalars ๐‘˜ small errors ๐‘ , ๐‘’ โˆˆ ๐‘… small ๐‘ , ๐‘’ โˆˆ โ„ค๐‘ž๐‘› isogenies ๐œ™

computations ๐‘”, ๐‘ฅ โ†ฆ ๐‘”๐‘ฅ ๐‘˜, ๐‘ƒ โ†ฆ ๐‘˜ ๐‘ƒ ๐‘Ž, ๐‘ , ๐‘’ โ†ฆ ๐‘Ž๐‘  + ๐‘’ ๐ด, ๐‘ , ๐‘’ โ†ฆ ๐ด๐‘  + ๐‘’ ๐œ™, ๐ธ โ†ฆ ๐œ™(๐ธ)

hard problem given ๐‘”, ๐‘”๐‘ฅ

find ๐‘ฅgiven ๐‘ƒ, ๐‘˜ ๐‘ƒ

find ๐‘˜given ๐‘Ž, ๐‘Ž๐‘  + ๐‘’

find ๐‘ given ๐ด, ๐ด๐‘  + ๐‘’

find ๐‘ given ๐ธ, ๐œ™(๐ธ)

find ๐œ™

Page 9: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Part 1: Motivation

Part 2: Preliminaries

Part 3: Brief SIDH sketch

Page 10: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

To construct degree ๐‘› extension field ๐”ฝ๐‘ž๐‘› of a finite field ๐”ฝ๐‘ž, take ๐”ฝ๐‘ž๐‘› = ๐”ฝ๐‘ž(๐›ผ)where ๐‘“ ๐›ผ = 0 and ๐‘“(๐‘ฅ) is irreducible of degree ๐‘› in ๐”ฝ๐‘ž[๐‘ฅ].

Extension fields

Example: for any prime ๐‘ โ‰ก 3 mod 4, can take ๐”ฝ๐‘2 = ๐”ฝ๐‘ ๐‘– where ๐‘–2 + 1 = 0

Page 11: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข Recall that every elliptic curve ๐ธ over a field ๐พ with char ๐พ > 3 can be defined by

๐ธ โˆถ ๐‘ฆ2 = ๐‘ฅ3 + ๐‘Ž๐‘ฅ + ๐‘,

where ๐‘Ž, ๐‘ โˆˆ ๐พ, 4๐‘Ž3 + 27๐‘2 โ‰  0

โ€ข For any extension ๐พโ€ฒ/๐พ, the set of ๐พโ€ฒ-rational points forms a group with identity

โ€ข The ๐‘—-invariant ๐‘— ๐ธ = ๐‘— ๐‘Ž, ๐‘ = 1728 โ‹…4๐‘Ž3

4๐‘Ž3+27๐‘2determines isomorphism

class over เดฅ๐พ

โ€ข E.g., ๐ธโ€ฒ: ๐‘ฆ2 = ๐‘ฅ3 + ๐‘Ž๐‘ข2๐‘ฅ + ๐‘๐‘ข3 is isomorphic to ๐ธ for all ๐‘ข โˆˆ ๐พโˆ—

โ€ข Recover a curve from ๐‘—: e.g., set ๐‘Ž = โˆ’3๐‘ and ๐‘ = 2๐‘ with ๐‘ = ๐‘—/(๐‘— โˆ’ 1728)

Elliptic Curves and ๐‘—-invariants

Page 12: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Over ๐”ฝ13, the curves ๐ธ1 โˆถ ๐‘ฆ

2 = ๐‘ฅ3 + 9๐‘ฅ + 8and

๐ธ2 โˆถ ๐‘ฆ2 = ๐‘ฅ3 + 3๐‘ฅ + 5

are isomorphic, since

๐‘— ๐ธ1 = 1728 โ‹…4โ‹…93

4โ‹…93+27โ‹…82= 3 = 1728 โ‹…

4โ‹…33

4โ‹…33+27โ‹…52= ๐‘—(๐ธ2)

An isomorphism is given by ๐œ“ โˆถ ๐ธ1 โ†’ ๐ธ2 , ๐‘ฅ, ๐‘ฆ โ†ฆ 10๐‘ฅ, 5๐‘ฆ ,๐œ“โˆ’1: ๐ธ2 โ†’ ๐ธ1, ๐‘ฅ, ๐‘ฆ โ†ฆ 4๐‘ฅ, 8๐‘ฆ ,

noting that ๐œ“ โˆž1 = โˆž2

Example

Page 13: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข The multiplication-by-๐‘› map: ๐‘› โˆถ ๐ธ โ†’ ๐ธ, ๐‘ƒ โ†ฆ ๐‘› ๐‘ƒ

โ€ข The ๐‘›-torsion subgroup is the kernel of ๐‘›๐ธ ๐‘› = ๐‘ƒ โˆˆ ๐ธ เดฅ๐พ โˆถ ๐‘› ๐‘ƒ = โˆž

โ€ข Found as the roots of the ๐‘›๐‘กโ„Ž division polynomial ๐œ“๐‘›

โ€ข If char ๐พ doesnโ€™t divide ๐‘›, then ๐ธ ๐‘› โ‰ƒ โ„ค๐‘› ร— โ„ค๐‘›

Torsion subgroups

Page 14: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข Consider ๐ธ/๐”ฝ11: ๐‘ฆ2 = ๐‘ฅ3 + 4 with #๐ธ(๐”ฝ11) = 12

โ€ข 3-division polynomial ๐œ“3(๐‘ฅ) = 3๐‘ฅ4 + 4๐‘ฅ partiallysplits as ๐œ“3 ๐‘ฅ = ๐‘ฅ ๐‘ฅ + 3 ๐‘ฅ2 + 8๐‘ฅ + 9

โ€ข Thus, ๐‘ฅ = 0 and ๐‘ฅ = โˆ’3 give 3-torsion points.The points (0,2) and (0,9) are in ๐ธ ๐”ฝ11 , but the rest lie in ๐ธ(๐”ฝ112)

โ€ข Write ๐”ฝ112 = ๐”ฝ11(๐‘–) with ๐‘–2 + 1 = 0. ๐œ“3 ๐‘ฅ splits over ๐”ฝ112 as ๐œ“3 ๐‘ฅ = ๐‘ฅ ๐‘ฅ + 3 ๐‘ฅ + 9๐‘– + 4 (๐‘ฅ + 2๐‘– + 4)

โ€ข Observe ๐ธ 3 โ‰ƒ โ„ค3 ร— โ„ค3 , i.e., 4 cyclic subgroups of order 3

Example

Page 15: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Isogenies

โ€ข Isogeny: morphism (rational map)๐œ™ โˆถ ๐ธ1 โ†’ ๐ธ2that preserves identity, i.e. ๐œ™ โˆž1 = โˆž2

โ€ข Degree of (separable) isogeny is number of elements in kernel, same as its degree as a rational map

โ€ข Given finite subgroup ๐บ โˆˆ ๐ธ1, there is a unique curve ๐ธ2 and isogeny ๐œ™ โˆถ ๐ธ1 โ†’ ๐ธ2 (up to isomorphism) having kernel ๐บ. Write ๐ธ2 = ๐œ™(๐ธ1) = ๐ธ1/โŸจ๐บโŸฉ.

Page 16: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Isogenies

โ€ข Isomorphisms are a special case of isogenies where the kernel is trivial ๐œ™ โˆถ ๐ธ1 โ†’ ๐ธ2, ker ๐œ™ = โˆž1

โ€ข Endomorphisms are a special case of isogenies where the domain and co-domain are the same curve

๐œ™ โˆถ ๐ธ1 โ†’ ๐ธ1, ker ๐œ™ = ๐บ, |๐บ| > 1

โ€ข Perhaps think of isogenies as a generalization of either/both: isogenies allow non-trivial kernel and allow different domain/co-domain

โ€ข Isogenies are *almost* isomorphisms

Page 17: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Veluโ€™s formulasGiven any finite subgroup of ๐บ of ๐ธ, we may form a quotient isogeny

๐œ™: ๐ธ โ†’ ๐ธโ€ฒ = ๐ธ/๐บ

with kernel ๐บ using Veluโ€™s formulas

Example: ๐ธ โˆถ ๐‘ฆ2 = (๐‘ฅ2 + ๐‘1๐‘ฅ + ๐‘0)(๐‘ฅ โˆ’ ๐‘Ž). The point (๐‘Ž, 0) has order 2; the quotient of ๐ธ by โŸจ ๐‘Ž, 0 โŸฉ gives an isogeny

๐œ™ โˆถ ๐ธ โ†’ ๐ธโ€ฒ = ๐ธ/โŸจ ๐‘Ž, 0 โŸฉ,where

๐ธโ€ฒ โˆถ y2 = x3 + โˆ’ 4a + 2b1 x2 + b12 โˆ’ 4b0 x

And where ๐œ™ maps ๐‘ฅ, ๐‘ฆ to ๐‘ฅ3โˆ’ ๐‘Žโˆ’๐‘1 ๐‘ฅ2โˆ’ ๐‘1๐‘Žโˆ’๐‘0 ๐‘ฅโˆ’๐‘0๐‘Ž

๐‘ฅโˆ’๐‘Ž,x2โˆ’ 2a xโˆ’ b1a+b0 y

xโˆ’a 2

Page 18: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Veluโ€™s formulas

Given curve coefficients ๐‘Ž, ๐‘ for ๐ธ, and all of the ๐‘ฅ-coordinates ๐‘ฅ๐‘– of the subgroup ๐บ โˆˆ ๐ธ, Veluโ€™s formulas output ๐‘Žโ€ฒ, ๐‘โ€ฒ for ๐ธโ€ฒ, and the map

๐œ™ โˆถ ๐ธ โ†’ ๐ธโ€ฒ,

๐‘ฅ, ๐‘ฆ โ†ฆ๐‘“1 ๐‘ฅ,๐‘ฆ

๐‘”1 ๐‘ฅ,๐‘ฆ,๐‘“2 ๐‘ฅ,๐‘ฆ

๐‘”2 ๐‘ฅ,๐‘ฆ

Page 19: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข Recall ๐ธ/๐”ฝ11: ๐‘ฆ2 = ๐‘ฅ3 + 4 with #๐ธ(๐”ฝ11) = 12

โ€ข Consider 3 โˆถ ๐ธ โ†’ ๐ธ, the multiplication-by-3 endomorphism

โ€ข ๐บ = ker 3 , which is not cyclic

โ€ข Conversely, given the subgroup ๐บ,the unique isogeny ๐œ™ with ker ๐œ™ = ๐บ turns out to be the endormorphism ๐œ™ = [3]

โ€ข But what happens if we instead take ๐บ as one of the cyclic subgroups of order 3?

๐บ = ๐ธ[3]Example, cont.

Page 20: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Example, cont. ๐ธ/๐”ฝ11: ๐‘ฆ2= ๐‘ฅ3 + 4

๐œ™2

๐œ™4

๐œ™1

๐œ™3

๐ธ2/๐”ฝ11: ๐‘ฆ2= ๐‘ฅ3 + 5๐‘ฅ

๐ธ4/๐”ฝ112: ๐‘ฆ2= ๐‘ฅ3 + (4๐‘– + 3)๐‘ฅ

๐ธ1/๐”ฝ11: ๐‘ฆ2= ๐‘ฅ3 + 2

๐ธ3/๐”ฝ112: ๐‘ฆ2= ๐‘ฅ3 + 7๐‘– + 3 ๐‘ฅ

๐ธ1, ๐ธ2, ๐ธ3, ๐ธ4 all 3-isogenous to ๐ธ, but whatโ€™s the relation to each other?

Page 21: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

For every isogeny ๐œ“: ๐ธ1 โ†’ ๐ธ2 of degree ๐‘›, there exists (unique, up to isomorphism) dual isogeny ๐œ“ : ๐ธ2 โ†’ ๐ธ1 of degree ๐‘›, such that

๐œ“ โˆ˜ ๐œ“ = ๐‘› ๐ธ1

and

๐œ“ โˆ˜ ๐œ“ = ๐‘› ๐ธ2

The dual isogeny

Page 22: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข ๐ธ/๐”ฝ๐‘ž with ๐‘ž = ๐‘๐‘› supersingular iff ๐ธ ๐‘ = {โˆž}

โ€ข Fact: all supersingular curves can be defined over ๐”ฝ๐‘2

โ€ข Let ๐‘†๐‘2 be the set of supersingular ๐‘—-invariants

Supersingular curves

Theorem: #๐‘†๐‘2 =๐‘

12+ ๐‘, ๐‘ โˆˆ {0,1,2}

Page 23: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข We are interested in the set of supersingular curves (up to isomorphism) over a specific field

โ€ข Thm (Tate): ๐ธ1 and ๐ธ2 isogenous if and only if #๐ธ1 = #๐ธ2โ€ข Thm (Mestre): all supersingular curves over ๐”ฝ๐‘2 in same isogeny class

โ€ข Fact (see previous slides): for every prime โ„“ not dividing ๐‘, there existsโ„“ + 1 isogenies of degree โ„“ originating from any supersingular curve

โ€ข Previous example actually had ๐ธ2 โ‰… ๐ธ3 โ‰… ๐ธ4, so letโ€™s increase the size a little to get a picture of how this all pans outโ€ฆ

The supersingular isogeny graph

Upshot: immediately leads to (โ„“ + 1) directed regular graph ๐‘‹(๐‘†๐‘2 , โ„“)

Page 24: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข Let ๐‘ = 241, ๐”ฝ๐‘2 = ๐”ฝ๐‘ ๐‘ค = ๐”ฝ๐‘ ๐‘ฅ /(๐‘ฅ2 โˆ’ 3๐‘ฅ + 7)

โ€ข #๐‘†๐‘2 = 20

โ€ข ๐‘†๐‘2 = {93, 51๐‘ค + 30, 190๐‘ค + 183, 240, 216, 45๐‘ค + 211, 196๐‘ค +105, 64, 155๐‘ค + 3, 74๐‘ค + 50, 86๐‘ค + 227, 167๐‘ค + 31, 175๐‘ค + 237,66๐‘ค + 39, 8, 23๐‘ค + 193, 218๐‘ค + 21, 28, 49๐‘ค + 112, 192๐‘ค + 18}

E.g. a supersingular isogeny graph

Credit to Fre Vercauteren for example and pictureโ€ฆ

Page 25: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Supersingular isogeny graph for โ„“ = 2: ๐‘‹(๐‘†2412, 2)

Page 26: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Supersingular isogeny graph for โ„“ = 3: ๐‘‹(๐‘†2412, 3)

Page 27: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Rapid mixing property: Let ๐‘† be any subset of the vertices of the graph ๐บ, and ๐‘ฅ be any vertex in ๐บ. A โ€œlong enoughโ€ random

walk will land in ๐‘† with probability at least ๐‘†

2|๐บ|.

Supersingular isogeny graphs are Ramanujan graphs

See De Feo, Jao, Plut (Prop 2.1) for precise formula describing whatโ€™s โ€œlong enoughโ€

Page 28: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Part 1: Motivation

Part 2: Preliminaries

Part 3: Brief SIDH sketch

Page 29: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

๐ธ0 ๐ธ๐ด = ๐ธ0/โŸจ๐ดโŸฉ

๐ธ0/โŸจ๐ตโŸฉ = ๐ธ๐ต ๐ธ๐ด๐ต = ๐ธ0/โŸจ๐ด, ๐ตโŸฉ

๐œ™๐ด

๐œ™๐ต

๐œ™๐ดโ€ฒ

๐œ™๐ตโ€ฒ

params public private

๐ธโ€™s are isogenous curves

๐‘ƒโ€™s, ๐‘„โ€™s, ๐‘…โ€™s, ๐‘†โ€™s are points

SIDH: in a nutshell

โ€ข Non-commutative, so ๐œ™๐ต๐œ™๐ด โ‰  ๐œ™๐ด๐œ™๐ต (canโ€™t even multiply), hence ๐œ™๐ดโ€ฒ and ๐œ™๐ต

โ€ฒ

โ€ข Alice canโ€™t just take ๐ธ๐ต/โŸจ๐ดโŸฉ, ๐ด doesnโ€™t lie on ๐ธ๐ต

Page 30: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

๐ธ0 ๐ธ๐ด = ๐ธ0/โŸจ๐‘ƒ๐ด + ๐‘ ๐ด ๐‘„๐ดโŸฉ

๐ธ0/โŸจ๐‘ƒ๐ต + ๐‘ ๐ต ๐‘„๐ตโŸฉ = ๐ธ๐ต ๐ธ๐ด๐ต = ๐ธ0/โŸจ๐ด, ๐ตโŸฉ

๐œ™๐ด

๐œ™๐ต

๐œ™๐ดโ€ฒ

๐œ™๐ตโ€ฒ

params public private

๐ธโ€™s are isogenous curves

๐‘ƒโ€™s, ๐‘„โ€™s, ๐‘…โ€™s, ๐‘†โ€™s are points

SIDH: in a nutshell

(๐œ™๐ต(๐‘ƒ๐ด), ๐œ™๐ต(๐‘„๐ด)) = (๐‘…๐ต , ๐‘†๐ต)

(๐‘…๐ด, ๐‘†๐ด) = (๐œ™๐ด(๐‘ƒ๐ต), ๐œ™๐ด(๐‘„๐ต))

๐ธ๐ด/โŸจ๐‘…๐ด + ๐‘ ๐ต ๐‘†๐ดโŸฉ โ‰… ๐ธ0/โŸจ๐‘ƒ๐ด + ๐‘ ๐ด ๐‘„๐ด , ๐‘ƒ๐ต + ๐‘ ๐ต ๐‘„๐ตโŸฉ โ‰… ๐ธ๐ต/โŸจ๐‘…๐ต + ๐‘ ๐ด ๐‘†๐ตโŸฉ

Key: Alice sends her isogeny evaluated at Bobโ€™s generators, and vice versa

Page 31: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข Why ๐ธโ€ฒ = ๐ธ/โŸจ๐‘ƒ + ๐‘  ๐‘„โŸฉ , etc?

โ€ข Why not just ๐ธโ€ฒ = ๐ธ/โŸจ ๐‘  ๐‘„โŸฉ ?... because here ๐ธโ€ฒ is โ‰ˆ independent of ๐‘ 

โ€ข Need two-dimensional basis to span two-dimensional torsion

โ€ข Every different ๐‘  now gives a different order ๐‘› subgroup, i.e., kernel, i.e. isogeny

โ€ข Composite same thing, just uglier picture

๐ธ ๐‘› โ‰… โ„ค๐‘› ร— โ„ค๐‘›(๐‘› prime depicted below)

๐‘› + 1 cyclic subgroups order n

๐‘ƒ

[๐‘ ]๐‘„๐‘„

Page 32: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข Why ๐ธโ€ฒ = ๐ธ/โŸจ๐‘ƒ + ๐‘  ๐‘„โŸฉ , etc?

โ€ข Why not just ๐ธโ€ฒ = ๐ธ/โŸจ ๐‘  ๐‘„โŸฉ ?... because here ๐ธโ€ฒ is โ‰ˆ independent of ๐‘ 

โ€ข Need two-dimensional basis to span two-dimensional torsion

โ€ข Every different ๐‘  now gives a different order ๐‘› subgroup, i.e., kernel, i.e. isogeny

โ€ข Composite same thing, just uglier picture

๐ธ ๐‘› โ‰… โ„ค๐‘› ร— โ„ค๐‘›(๐‘› prime depicted below)

๐‘› + 1 cyclic subgroups order n

๐‘ƒ

[๐‘ ]๐‘„

๐‘„

Page 33: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข Why ๐ธโ€ฒ = ๐ธ/โŸจ๐‘ƒ + ๐‘  ๐‘„โŸฉ , etc?

โ€ข Why not just ๐ธโ€ฒ = ๐ธ/โŸจ ๐‘  ๐‘„โŸฉ ?... because here ๐ธโ€ฒ is โ‰ˆ independent of ๐‘ 

โ€ข Need two-dimensional basis to span two-dimensional torsion

โ€ข Every different ๐‘  now gives a different order ๐‘› subgroup, i.e., kernel, i.e. isogeny

โ€ข Composite same thing, just uglier picture

๐ธ ๐‘› โ‰… โ„ค๐‘› ร— โ„ค๐‘›(๐‘› prime depicted below)

๐‘› + 1 cyclic subgroups order n

๐‘ƒ

[๐‘ ]๐‘„๐‘„

Page 34: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข Why ๐ธโ€ฒ = ๐ธ/โŸจ๐‘ƒ + ๐‘  ๐‘„โŸฉ , etc?

โ€ข Why not just ๐ธโ€ฒ = ๐ธ/โŸจ ๐‘  ๐‘„โŸฉ ?... because here ๐ธโ€ฒ is โ‰ˆ independent of ๐‘ 

โ€ข Need two-dimensional basis to span two-dimensional torsion

โ€ข Every different ๐‘  now gives a different order ๐‘› subgroup, i.e., kernel, i.e. isogeny

โ€ข Composite same thing, just uglier picture

๐ธ ๐‘› โ‰… โ„ค๐‘› ร— โ„ค๐‘›(๐‘› prime depicted below)

๐‘› + 1 cyclic subgroups order n

๐‘ƒ

๐‘„

Page 35: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

โ€ข Computing isogenies of prime degree โ„“ at least ๐‘‚ โ„“ , e.g., Veluโ€™sformulas need the whole kernel specified

โ€ข We (obviously) need exp. set of kernels, meaning exp. sized isogenies, which we canโ€™t compute unless theyโ€™re smooth

โ€ข Here (for efficiency/ease) we will only use isogenies of degree โ„“๐‘’

for โ„“ โˆˆ {2,3}

Exploiting smooth degree isogenies

Page 36: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Exploiting smooth degree isogenies

(credit DJPโ€™14 for picture, and for a much better way to traverse the tree)

โ€ข Suppose our secret point ๐‘…0 has order โ„“5 with, e.g., โ„“ โˆˆ {2,3}, we need ๐œ™ โˆถ ๐ธ โ†’ ๐ธ/โŸจ๐‘…0โŸฉ

โ€ข Could compute all โ„“5 elements in kernel (but only because exp is 5)

โ€ข Better to factor ๐œ™ = ๐œ™4๐œ™3๐œ™2๐œ™1๐œ™0, where all ๐œ™๐‘– have degree โ„“, and

๐œ™0 = ๐ธ0 โ†’ ๐ธ0/โŸจ โ„“4 ๐‘…0โŸฉ , ๐‘…1 = ๐œ™0 ๐‘…0 ;

๐œ™1 = ๐ธ1 โ†’ ๐ธ1/โŸจ โ„“3 ๐‘…1โŸฉ , ๐‘…2 = ๐œ™1(๐‘…1);

๐œ™2 = ๐ธ2 โ†’ ๐ธ2/โŸจ โ„“2 ๐‘…2โŸฉ , ๐‘…3 = ๐œ™2(๐‘…2);

๐œ™3 = ๐ธ3 โ†’ ๐ธ3/โŸจ โ„“1 ๐‘…3โŸฉ , ๐‘…4 = ๐œ™3(๐‘…3);

๐œ™4 = ๐ธ4 โ†’ ๐ธ4/โŸจ๐‘…4โŸฉ .

Page 37: A gentle introduction to isogeny-based cryptographymath-sa-sara0050/space16/slides/space2016121503-costello.pdfCraig Costello A gentle introduction to isogeny-based cryptography Tutorial

Questions?


Recommended