10.07.2015 Views

Solving Discrete Logarithms with Partial Knowledge of the Key

Solving Discrete Logarithms with Partial Knowledge of the Key

Solving Discrete Logarithms with Partial Knowledge of the Key

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Discrete</strong> Log Problem (DLP)Let G be a cyclic group <strong>of</strong> prime order p andlet g be a generator <strong>of</strong> G.Given β ∈ G, <strong>the</strong> discrete logarithm problemis to determine α such that g α = β.The presumed computational difficulty <strong>of</strong>solving <strong>the</strong> DLP in appropriate groups is <strong>the</strong>basis <strong>of</strong> many cryptosystems and protocols.The primary reason for <strong>the</strong> popularity <strong>of</strong> ECCover RSA is that <strong>the</strong>re are currently no knownsubexponential algorithms to solve <strong>the</strong> DLP ingroups used in ECC.Indocrypt’07 - <strong>Discrete</strong> Log – p.2


Generic Groups“Generic Group” refers to a group whosestructure we do not know.It is presented in <strong>the</strong> form <strong>of</strong> a “Black Box”.Indocrypt’07 - <strong>Discrete</strong> Log – p.3


Generic Groups“Generic Group” refers to a group whosestructure we do not know.It is presented in <strong>the</strong> form <strong>of</strong> a “Black Box”.Each group element has a unique encoding.Indocrypt’07 - <strong>Discrete</strong> Log – p.3


Generic Groups“Generic Group” refers to a group whosestructure we do not know.It is presented in <strong>the</strong> form <strong>of</strong> a “Black Box”.Each group element has a unique encoding.Given <strong>the</strong> encoding <strong>of</strong> two elements g and h<strong>of</strong> <strong>the</strong> group, <strong>the</strong> black box canIndocrypt’07 - <strong>Discrete</strong> Log – p.3


Generic Groups“Generic Group” refers to a group whosestructure we do not know.It is presented in <strong>the</strong> form <strong>of</strong> a “Black Box”.Each group element has a unique encoding.Given <strong>the</strong> encoding <strong>of</strong> two elements g and h<strong>of</strong> <strong>the</strong> group, <strong>the</strong> black box canproduce g · h, in unit time.Indocrypt’07 - <strong>Discrete</strong> Log – p.3


Generic Groups“Generic Group” refers to a group whosestructure we do not know.It is presented in <strong>the</strong> form <strong>of</strong> a “Black Box”.Each group element has a unique encoding.Given <strong>the</strong> encoding <strong>of</strong> two elements g and h<strong>of</strong> <strong>the</strong> group, <strong>the</strong> black box canproduce g · h, in unit time.decide whe<strong>the</strong>r g = h, in unit time.Indocrypt’07 - <strong>Discrete</strong> Log – p.3


Generic Groups“Generic Group” refers to a group whosestructure we do not know.It is presented in <strong>the</strong> form <strong>of</strong> a “Black Box”.Each group element has a unique encoding.Given <strong>the</strong> encoding <strong>of</strong> two elements g and h<strong>of</strong> <strong>the</strong> group, <strong>the</strong> black box canproduce g · h, in unit time.decide whe<strong>the</strong>r g = h, in unit time.compute any given power <strong>of</strong> g(including g −1 ), in time O(log p).Indocrypt’07 - <strong>Discrete</strong> Log – p.3


Algorithms for DLP inGeneric GroupsBaby-step Rho Kangaroo ∗Giant-stepShanks Pollard PollardDeterministic Probabilistic ProbabilisticTime O( √ p) O( √ p) O( √ b − a)Space O( √ p) O(1) O(1)∗ Assumes that DL is known to lie in <strong>the</strong> interval [a, b]Indocrypt’07 - <strong>Discrete</strong> Log – p.4


Lower BoundsVictor Shoup has established a lower bound<strong>of</strong> Ω( √ p) for any probabilistic algorithm thatcan solve <strong>the</strong> DLP for generic groups.Indocrypt’07 - <strong>Discrete</strong> Log – p.5


Lower BoundsVictor Shoup has established a lower bound<strong>of</strong> Ω( √ p) for any probabilistic algorithm thatcan solve <strong>the</strong> DLP for generic groups.Hence <strong>the</strong> Baby-step Giant-step method and<strong>the</strong> rho method are optimal algorithms tosolve <strong>the</strong> DLP and cannot be improvedfur<strong>the</strong>r (except possibly by a constant factor).Indocrypt’07 - <strong>Discrete</strong> Log – p.5


Lower BoundsVictor Shoup has established a lower bound<strong>of</strong> Ω( √ p) for any probabilistic algorithm thatcan solve <strong>the</strong> DLP for generic groups.Hence <strong>the</strong> Baby-step Giant-step method and<strong>the</strong> rho method are optimal algorithms tosolve <strong>the</strong> DLP and cannot be improvedfur<strong>the</strong>r (except possibly by a constant factor).The reason for <strong>the</strong> popularity <strong>of</strong> <strong>the</strong> ECC isthat <strong>the</strong> only known algorithms to solve <strong>the</strong>DLP over elliptic curve groups are <strong>the</strong> genericalgorithms.Indocrypt’07 - <strong>Discrete</strong> Log – p.5


Side Channel Attacks“Side Channel Attacks” focus on <strong>the</strong>implementation <strong>of</strong> an algorithm ra<strong>the</strong>r than<strong>the</strong> specification to break a cryptosystem.Indocrypt’07 - <strong>Discrete</strong> Log – p.6


Side Channel Attacks“Side Channel Attacks” focus on <strong>the</strong>implementation <strong>of</strong> an algorithm ra<strong>the</strong>r than<strong>the</strong> specification to break a cryptosystem.By observing <strong>the</strong> implementation beingexecuted, <strong>the</strong> attacker can make correlationsbetween <strong>the</strong> events that occur in <strong>the</strong>processor and <strong>the</strong> data being processed.Indocrypt’07 - <strong>Discrete</strong> Log – p.6


Side Channel Attacks“Side Channel Attacks” focus on <strong>the</strong>implementation <strong>of</strong> an algorithm ra<strong>the</strong>r than<strong>the</strong> specification to break a cryptosystem.By observing <strong>the</strong> implementation beingexecuted, <strong>the</strong> attacker can make correlationsbetween <strong>the</strong> events that occur in <strong>the</strong>processor and <strong>the</strong> data being processed.Famous examples include Timing basedattacks and Power Analysis based attacks.Indocrypt’07 - <strong>Discrete</strong> Log – p.6


Problem ConsideredWe assume that some partial informationabout <strong>the</strong> secret key is revealed by sidechannel attacks.Indocrypt’07 - <strong>Discrete</strong> Log – p.7


Problem ConsideredWe assume that some partial informationabout <strong>the</strong> secret key is revealed by sidechannel attacks.We can certainly ignore <strong>the</strong> extra informationand use a generic algorithm <strong>of</strong> complexityO( √ p) to break <strong>the</strong> system.Indocrypt’07 - <strong>Discrete</strong> Log – p.7


Problem ConsideredWe assume that some partial informationabout <strong>the</strong> secret key is revealed by sidechannel attacks.We can certainly ignore <strong>the</strong> extra informationand use a generic algorithm <strong>of</strong> complexityO( √ p) to break <strong>the</strong> system.We can do an exhaustive search using <strong>the</strong>extra information to break <strong>the</strong> system.Indocrypt’07 - <strong>Discrete</strong> Log – p.7


Problem ConsideredWe assume that some partial informationabout <strong>the</strong> secret key is revealed by sidechannel attacks.We can certainly ignore <strong>the</strong> extra informationand use a generic algorithm <strong>of</strong> complexityO( √ p) to break <strong>the</strong> system.We can do an exhaustive search using <strong>the</strong>extra information to break <strong>the</strong> system.Can we do something in between? In o<strong>the</strong>rwords, can we use <strong>the</strong> partial informationintelligently to break <strong>the</strong> system?Indocrypt’07 - <strong>Discrete</strong> Log – p.7


Nature <strong>of</strong> <strong>Partial</strong> InformationWe consider two different scenarios based on<strong>the</strong> nature <strong>of</strong> partial information revealed.Indocrypt’07 - <strong>Discrete</strong> Log – p.8


Nature <strong>of</strong> <strong>Partial</strong> InformationWe consider two different scenarios based on<strong>the</strong> nature <strong>of</strong> partial information revealed.In <strong>the</strong> first scenario, we assume that asequence <strong>of</strong> contiguous bits <strong>of</strong> <strong>the</strong> key isrevealed.Indocrypt’07 - <strong>Discrete</strong> Log – p.8


Nature <strong>of</strong> <strong>Partial</strong> InformationWe consider two different scenarios based on<strong>the</strong> nature <strong>of</strong> partial information revealed.In <strong>the</strong> first scenario, we assume that asequence <strong>of</strong> contiguous bits <strong>of</strong> <strong>the</strong> key isrevealed.In <strong>the</strong> second scenario, we assume thatincomplete information about <strong>the</strong>“Square and Multiply Chain” (used toefficiently exponentiate) is revealed.Indocrypt’07 - <strong>Discrete</strong> Log – p.8


Contiguous bits are knownThe goal is to come up <strong>with</strong> an algorithm whosecomplexity will be square root <strong>of</strong> <strong>the</strong> size <strong>of</strong> <strong>the</strong>remaining key space (and thus optimal)Indocrypt’07 - <strong>Discrete</strong> Log – p.9


Contiguous bits are knownThe goal is to come up <strong>with</strong> an algorithm whosecomplexity will be square root <strong>of</strong> <strong>the</strong> size <strong>of</strong> <strong>the</strong>remaining key space (and thus optimal)Left Part is Known Can simply use KangarooAlgorithm.Indocrypt’07 - <strong>Discrete</strong> Log – p.9


Contiguous bits are knownThe goal is to come up <strong>with</strong> an algorithm whosecomplexity will be square root <strong>of</strong> <strong>the</strong> size <strong>of</strong> <strong>the</strong>remaining key space (and thus optimal)Left Part is Known Can simply use KangarooAlgorithm.Right Part is Known Can be solved in optimal timeas shown by Teske.Indocrypt’07 - <strong>Discrete</strong> Log – p.9


Contiguous bits are knownThe goal is to come up <strong>with</strong> an algorithm whosecomplexity will be square root <strong>of</strong> <strong>the</strong> size <strong>of</strong> <strong>the</strong>remaining key space (and thus optimal)Left Part is Known Can simply use KangarooAlgorithm.Right Part is Known Can be solved in optimal timeas shown by Teske.Middle Part is Known Has not been studied in <strong>the</strong>Literature.Indocrypt’07 - <strong>Discrete</strong> Log – p.9


Middle Part is KnownAssume that we know M and N such thatα = α 1 MN + α 2 M + α 3where 0 ≤ α 2 < N is known and <strong>with</strong>0 ≤ α 3 < M.Indocrypt’07 - <strong>Discrete</strong> Log – p.10


Middle Part is KnownAssume that we know M and N such thatα = α 1 MN + α 2 M + α 3where 0 ≤ α 2 < N is known and <strong>with</strong>0 ≤ α 3 < M.Suppose, we are given an integer r,0 < r < p, such that we can write rMN askp + s <strong>with</strong> |s| < p/2. Then,rα = rα 1 MN + rα 2 M + rα 3= α 1 kp + sα 1 + rα 2 M + rα 3= α 1 kp + rα 2 M + α ′ Indocrypt’07 - <strong>Discrete</strong> Log – p.10


Reducing to KangarooAlgorithmg αr = g α 1kp+rα 2 M+α ′(g α ) r = (g p ) α 1k g rα 2M g α′β r = g rα 2M g α′ Indocrypt’07 - <strong>Discrete</strong> Log – p.11


Reducing to KangarooAlgorithmg αr = g α 1kp+rα 2 M+α ′(g α ) r = (g p ) α 1k g rα 2M g α′β r = g rα 2M g α′Denoting ( β × g −α 2M ) rby β ′ , <strong>the</strong> aboveequation can be written in <strong>the</strong> form β ′ = g α′ .Indocrypt’07 - <strong>Discrete</strong> Log – p.11


Reducing to KangarooAlgorithmg αr = g α 1kp+rα 2 M+α ′(g α ) r = (g p ) α 1k g rα 2M g α′β r = g rα 2M g α′Denoting ( β × g −α 2M ) rby β ′ , <strong>the</strong> aboveequation can be written in <strong>the</strong> form β ′ = g α′ .Note that β ′ can be computed from β as r, α 2 ,and M are known.Indocrypt’07 - <strong>Discrete</strong> Log – p.11


Reducing to KangarooAlgorithmg αr = g α 1kp+rα 2 M+α ′(g α ) r = (g p ) α 1k g rα 2M g α′β r = g rα 2M g α′Denoting ( β × g −α 2M ) rby β ′ , <strong>the</strong> aboveequation can be written in <strong>the</strong> form β ′ = g α′ .Note that β ′ can be computed from β as r, α 2 ,and M are known.Invoke Kangaroo Algorithm to compute α ′ .Indocrypt’07 - <strong>Discrete</strong> Log – p.11


Bounding Interval SizeWhen s is positive, α ′ = α 3 r + α 1 s must be in<strong>the</strong> interval[( p)]0, r(M − 1) + sMN − 1Indocrypt’07 - <strong>Discrete</strong> Log – p.12


Bounding Interval SizeWhen s is positive, α ′ = α 3 r + α 1 s must be in<strong>the</strong> interval[( p)]0, r(M − 1) + sMN − 1Similary, if s is negative, α ′ must be in <strong>the</strong>interval[ ( p) ]sMN − 1 , r(M − 1)Indocrypt’07 - <strong>Discrete</strong> Log – p.12


Bounding Interval SizeWhen s is positive, α ′ = α 3 r + α 1 s must be in<strong>the</strong> interval[( p)]0, r(M − 1) + sMN − 1Similary, if s is negative, α ′ must be in <strong>the</strong>interval[ ( p) ]sMN − 1 , r(M − 1)In both cases we can restrict <strong>the</strong> value <strong>of</strong> α ′ toan interval <strong>of</strong> length rM + |s|pMN . Indocrypt’07 - <strong>Discrete</strong> Log – p.12


Minimizing Interval SizeWe want to select <strong>the</strong> parameters r and ssuch that <strong>the</strong> interval size is minimized.Indocrypt’07 - <strong>Discrete</strong> Log – p.13


Minimizing Interval SizeWe want to select <strong>the</strong> parameters r and ssuch that <strong>the</strong> interval size is minimized.We can do so, by using Dirichlet’s Theoremon rational approximations.Indocrypt’07 - <strong>Discrete</strong> Log – p.13


Minimizing Interval SizeWe want to select <strong>the</strong> parameters r and ssuch that <strong>the</strong> interval size is minimized.We can do so, by using Dirichlet’s Theoremon rational approximations.We can guarantee that <strong>the</strong> size <strong>of</strong> <strong>the</strong> intervalis at most O(2p/ √ N).Indocrypt’07 - <strong>Discrete</strong> Log – p.13


Minimizing Interval SizeWe want to select <strong>the</strong> parameters r and ssuch that <strong>the</strong> interval size is minimized.We can do so, by using Dirichlet’s Theoremon rational approximations.We can guarantee that <strong>the</strong> size <strong>of</strong> <strong>the</strong> intervalis at most O(2p/ √ N).So, <strong>the</strong> time complexity <strong>of</strong> <strong>the</strong> overallalgorithm will be O( √ 2p 1/2/ N 1/4 ).Indocrypt’07 - <strong>Discrete</strong> Log – p.13


RemarksOnce α ′ is known, we can solve <strong>the</strong> easydiophantine equation α ′ = rα 3 + sα 1 andextract α 1 and α 3 .Indocrypt’07 - <strong>Discrete</strong> Log – p.14


RemarksOnce α ′ is known, we can solve <strong>the</strong> easydiophantine equation α ′ = rα 3 + sα 1 andextract α 1 and α 3 .Toge<strong>the</strong>r <strong>with</strong> <strong>the</strong> known middle part α 2 , weget <strong>the</strong> discrete log α.Indocrypt’07 - <strong>Discrete</strong> Log – p.14


RemarksOnce α ′ is known, we can solve <strong>the</strong> easydiophantine equation α ′ = rα 3 + sα 1 andextract α 1 and α 3 .Toge<strong>the</strong>r <strong>with</strong> <strong>the</strong> known middle part α 2 , weget <strong>the</strong> discrete log α.The complexity that we are able to get is notquite optimal in <strong>the</strong> general case.Indocrypt’07 - <strong>Discrete</strong> Log – p.14


RemarksOnce α ′ is known, we can solve <strong>the</strong> easydiophantine equation α ′ = rα 3 + sα 1 andextract α 1 and α 3 .Toge<strong>the</strong>r <strong>with</strong> <strong>the</strong> known middle part α 2 , weget <strong>the</strong> discrete log α.The complexity that we are able to get is notquite optimal in <strong>the</strong> general case.However, if p is Mersenne prime (or if p issufficiently close to 2 l ), we are able to getoptimal complexity.Indocrypt’07 - <strong>Discrete</strong> Log – p.14


Square and MultiplyAlgorithmFor example, to compute g 43Write 43 in binary as 101011.Indocrypt’07 - <strong>Discrete</strong> Log – p.15


Square and MultiplyAlgorithmFor example, to compute g 43Write 43 in binary as 101011.Replace each 0 by S (Square) and 1 by SM(Square and Multiply) to get SMSSMSSMSM.Indocrypt’07 - <strong>Discrete</strong> Log – p.15


Square and MultiplyAlgorithmFor example, to compute g 43Write 43 in binary as 101011.Replace each 0 by S (Square) and 1 by SM(Square and Multiply) to get SMSSMSSMSM.Start <strong>with</strong> h = 1 and do <strong>the</strong> operations(Squaring h and Multiplying h by g) specifiedby <strong>the</strong> above string from left to right, storing<strong>the</strong> result back in h each time.Indocrypt’07 - <strong>Discrete</strong> Log – p.15


Square and MultiplyAlgorithmFor example, to compute g 43Write 43 in binary as 101011.Replace each 0 by S (Square) and 1 by SM(Square and Multiply) to get SMSSMSSMSM.Start <strong>with</strong> h = 1 and do <strong>the</strong> operations(Squaring h and Multiplying h by g) specifiedby <strong>the</strong> above string from left to right, storing<strong>the</strong> result back in h each time.1 → 1 → g → g 2 → g 4 → g 5 → g 10 → g 20 →g 21 → g 42 → g 43 Indocrypt’07 - <strong>Discrete</strong> Log – p.15


AssumptionsIn <strong>the</strong> second scenario, we assume that(incomplete) information about <strong>the</strong> “Squareand Multiply Chain” is revealed by <strong>the</strong> sidechannel attacks. Specifically, we assume thatIndocrypt’07 - <strong>Discrete</strong> Log – p.16


AssumptionsIn <strong>the</strong> second scenario, we assume that(incomplete) information about <strong>the</strong> “Squareand Multiply Chain” is revealed by <strong>the</strong> sidechannel attacks. Specifically, we assume that<strong>the</strong> total length n <strong>of</strong> <strong>the</strong> square and multiplychain is known.Indocrypt’07 - <strong>Discrete</strong> Log – p.16


AssumptionsIn <strong>the</strong> second scenario, we assume that(incomplete) information about <strong>the</strong> “Squareand Multiply Chain” is revealed by <strong>the</strong> sidechannel attacks. Specifically, we assume that<strong>the</strong> total length n <strong>of</strong> <strong>the</strong> square and multiplychain is known.<strong>the</strong> number m <strong>of</strong> M’s is known.Indocrypt’07 - <strong>Discrete</strong> Log – p.16


AssumptionsIn <strong>the</strong> second scenario, we assume that(incomplete) information about <strong>the</strong> “Squareand Multiply Chain” is revealed by <strong>the</strong> sidechannel attacks. Specifically, we assume that<strong>the</strong> total length n <strong>of</strong> <strong>the</strong> square and multiplychain is known.<strong>the</strong> number m <strong>of</strong> M’s is known.Exact positions <strong>of</strong> m − i <strong>of</strong> <strong>the</strong> M’s areknown.Indocrypt’07 - <strong>Discrete</strong> Log – p.16


AssumptionsIn <strong>the</strong> second scenario, we assume that(incomplete) information about <strong>the</strong> “Squareand Multiply Chain” is revealed by <strong>the</strong> sidechannel attacks. Specifically, we assume that<strong>the</strong> total length n <strong>of</strong> <strong>the</strong> square and multiplychain is known.<strong>the</strong> number m <strong>of</strong> M’s is known.Exact positions <strong>of</strong> m − i <strong>of</strong> <strong>the</strong> M’s areknown.The problem is to utilize <strong>the</strong> partialinformation and figure out <strong>the</strong> entire chain.Indocrypt’07 - <strong>Discrete</strong> Log – p.16


ObservationsWe need to figure out <strong>the</strong> exact positions <strong>of</strong><strong>the</strong> remaining i M’s. Then, <strong>the</strong> entire chain isdetermined.Indocrypt’07 - <strong>Discrete</strong> Log – p.17


ObservationsWe need to figure out <strong>the</strong> exact positions <strong>of</strong><strong>the</strong> remaining i M’s. Then, <strong>the</strong> entire chain isdetermined.We can do an exhaustive search in timeO(n i ). Guess <strong>the</strong> positions <strong>of</strong> <strong>the</strong> i M’s and<strong>the</strong>n check whe<strong>the</strong>r <strong>the</strong> guess is right.Indocrypt’07 - <strong>Discrete</strong> Log – p.17


ObservationsWe need to figure out <strong>the</strong> exact positions <strong>of</strong><strong>the</strong> remaining i M’s. Then, <strong>the</strong> entire chain isdetermined.We can do an exhaustive search in timeO(n i ). Guess <strong>the</strong> positions <strong>of</strong> <strong>the</strong> i M’s and<strong>the</strong>n check whe<strong>the</strong>r <strong>the</strong> guess is right.We can make use <strong>of</strong> <strong>the</strong> fact that every Mshould be preceded and followed by a S. But,this will not affect <strong>the</strong> asymptotics.Indocrypt’07 - <strong>Discrete</strong> Log – p.17


A solution using anadditional assumptionSuppose that somehow we can split <strong>the</strong> chaininto two parts such that i/2 M’s are on <strong>the</strong> leftpart and <strong>the</strong> remaining i/2 M’s are on <strong>the</strong>right part.β = g α = g a2x +b= ( g 2x ) agbIndocrypt’07 - <strong>Discrete</strong> Log – p.18


A solution using anadditional assumptionSuppose that somehow we can split <strong>the</strong> chaininto two parts such that i/2 M’s are on <strong>the</strong> leftpart and <strong>the</strong> remaining i/2 M’s are on <strong>the</strong>right part.β = g α = g a2x +b= ( g 2x ) agbIf we denote g −2x by h, <strong>the</strong>n <strong>the</strong> aboveequation reduces toβ −1 × g b = h a Indocrypt’07 - <strong>Discrete</strong> Log – p.18


AlgorithmMake a guess a for <strong>the</strong> left part.Indocrypt’07 - <strong>Discrete</strong> Log – p.19


AlgorithmMake a guess a for <strong>the</strong> left part.Compute h a .Indocrypt’07 - <strong>Discrete</strong> Log – p.19


AlgorithmMake a guess a for <strong>the</strong> left part.Compute h a .Record <strong>the</strong> pair (a, h a ) in a table.Indocrypt’07 - <strong>Discrete</strong> Log – p.19


AlgorithmMake a guess a for <strong>the</strong> left part.Compute h a .Record <strong>the</strong> pair (a, h a ) in a table.Repeat <strong>the</strong> above for each possible guess a.Indocrypt’07 - <strong>Discrete</strong> Log – p.19


AlgorithmMake a guess a for <strong>the</strong> left part.Compute h a .Record <strong>the</strong> pair (a, h a ) in a table.Repeat <strong>the</strong> above for each possible guess a.Sort <strong>the</strong> table based on second column.Indocrypt’07 - <strong>Discrete</strong> Log – p.19


AlgorithmMake a guess a for <strong>the</strong> left part.Compute h a .Record <strong>the</strong> pair (a, h a ) in a table.Repeat <strong>the</strong> above for each possible guess a.Sort <strong>the</strong> table based on second column.Space Complexity is O(n i/2 ) ignoringlogarithmic terms.Indocrypt’07 - <strong>Discrete</strong> Log – p.19


Algorithm - Contd.Make a guess b for <strong>the</strong> right part.Indocrypt’07 - <strong>Discrete</strong> Log – p.20


Algorithm - Contd.Make a guess b for <strong>the</strong> right part.Compute y = β −1 × g b .Indocrypt’07 - <strong>Discrete</strong> Log – p.20


Algorithm - Contd.Make a guess b for <strong>the</strong> right part.Compute y = β −1 × g b .Check if y is in <strong>the</strong> second column <strong>of</strong> somerow <strong>of</strong> <strong>the</strong> table.Indocrypt’07 - <strong>Discrete</strong> Log – p.20


Algorithm - Contd.Make a guess b for <strong>the</strong> right part.Compute y = β −1 × g b .Check if y is in <strong>the</strong> second column <strong>of</strong> somerow <strong>of</strong> <strong>the</strong> table.If so, <strong>the</strong> guess is correct, and <strong>the</strong>corresponding a is in <strong>the</strong> first column.Indocrypt’07 - <strong>Discrete</strong> Log – p.20


Algorithm - Contd.Make a guess b for <strong>the</strong> right part.Compute y = β −1 × g b .Check if y is in <strong>the</strong> second column <strong>of</strong> somerow <strong>of</strong> <strong>the</strong> table.If so, <strong>the</strong> guess is correct, and <strong>the</strong>corresponding a is in <strong>the</strong> first column.If not, <strong>the</strong> guess is wrong and we makeano<strong>the</strong>r guess for b until we succeed.Indocrypt’07 - <strong>Discrete</strong> Log – p.20


Algorithm - Contd.Make a guess b for <strong>the</strong> right part.Compute y = β −1 × g b .Check if y is in <strong>the</strong> second column <strong>of</strong> somerow <strong>of</strong> <strong>the</strong> table.If so, <strong>the</strong> guess is correct, and <strong>the</strong>corresponding a is in <strong>the</strong> first column.If not, <strong>the</strong> guess is wrong and we makeano<strong>the</strong>r guess for b until we succeed.Time Complexity is O(n i/2 ) ignoringlogarithmic terms.Indocrypt’07 - <strong>Discrete</strong> Log – p.20


Getting rid <strong>of</strong> <strong>the</strong>assumptionWe don’t really need <strong>the</strong> additionalassumption.Indocrypt’07 - <strong>Discrete</strong> Log – p.21


Getting rid <strong>of</strong> <strong>the</strong>assumptionWe don’t really need <strong>the</strong> additionalassumption.There are only O(n) ways <strong>of</strong> dividing <strong>the</strong>chain into two parts.Indocrypt’07 - <strong>Discrete</strong> Log – p.21


Getting rid <strong>of</strong> <strong>the</strong>assumptionWe don’t really need <strong>the</strong> additionalassumption.There are only O(n) ways <strong>of</strong> dividing <strong>the</strong>chain into two parts.One <strong>of</strong> <strong>the</strong>m must have <strong>the</strong> property that i/2M’s are in each part. So, we try each way <strong>of</strong>splitting <strong>the</strong> chain, one position at a time.Indocrypt’07 - <strong>Discrete</strong> Log – p.21


Getting rid <strong>of</strong> <strong>the</strong>assumptionWe don’t really need <strong>the</strong> additionalassumption.There are only O(n) ways <strong>of</strong> dividing <strong>the</strong>chain into two parts.One <strong>of</strong> <strong>the</strong>m must have <strong>the</strong> property that i/2M’s are in each part. So, we try each way <strong>of</strong>splitting <strong>the</strong> chain, one position at a time.The overall complexity <strong>of</strong> <strong>the</strong> algorithm will beO(n 1+ ⌊ i 2⌋ ).Indocrypt’07 - <strong>Discrete</strong> Log – p.21


Conclusion and OpenProblemsUnder two different scenarios <strong>of</strong> partialinformation we have better algorithms to find<strong>the</strong> discrete log.Indocrypt’07 - <strong>Discrete</strong> Log – p.22


Conclusion and OpenProblemsUnder two different scenarios <strong>of</strong> partialinformation we have better algorithms to find<strong>the</strong> discrete log.At present, we don’t know how to solve <strong>the</strong>discrete log problem efficiently when <strong>the</strong> bitsrevealed are not in contiguous postions.Indocrypt’07 - <strong>Discrete</strong> Log – p.22


Conclusion and OpenProblemsUnder two different scenarios <strong>of</strong> partialinformation we have better algorithms to find<strong>the</strong> discrete log.At present, we don’t know how to solve <strong>the</strong>discrete log problem efficiently when <strong>the</strong> bitsrevealed are not in contiguous postions.Sometimes, one uses <strong>the</strong> NAF(Non-adjacent Form) representation to do <strong>the</strong>exponentiation. If we know partial informationabout <strong>the</strong> NAF we don’t know how to solve<strong>the</strong> discrete log problem efficiently.Indocrypt’07 - <strong>Discrete</strong> Log – p.22

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!