Presentation is loading. Please wait.

Presentation is loading. Please wait.

Practical Aspects of Modern Cryptography

Similar presentations


Presentation on theme: "Practical Aspects of Modern Cryptography"— Presentation transcript:

1 Practical Aspects of Modern Cryptography
Josh Benaloh Brian LaMacchia John Manferdelli

2 Cryptography is ... Protecting Privacy of Data
Authentication of Identities Preservation of Integrity … basically any protocols designed to operate in an environment absent of universal trust. Practical Aspects of Modern Cryptography November 6, 2018

3 Alice Characters Practical Aspects of Modern Cryptography
November 6, 2018

4 Bob Characters Practical Aspects of Modern Cryptography
November 6, 2018

5 Alice talking to Bob Basic Communication
Practical Aspects of Modern Cryptography November 6, 2018

6 Eve Another Character Practical Aspects of Modern Cryptography
November 6, 2018

7 Basic Communication Problem
Eve listening to Alice talking to Bob Practical Aspects of Modern Cryptography November 6, 2018

8 Two-Party Environments
Alice Bob Practical Aspects of Modern Cryptography November 6, 2018

9 Remote Coin Flipping Alice and Bob decide to make a decision by flipping a coin. Alice and Bob are not in the same place. Practical Aspects of Modern Cryptography November 6, 2018

10 Ground Rule Protocol must be asynchronous.
We cannot assume simultaneous actions. Players must take turns. Practical Aspects of Modern Cryptography November 6, 2018

11 Is Remote Coin Flipping Possible?
Practical Aspects of Modern Cryptography November 6, 2018

12 Is Remote Coin Flipping Possible?
Two-part answer: Practical Aspects of Modern Cryptography November 6, 2018

13 Is Remote Coin Flipping Possible?
Two-part answer: NO – I will sketch a formal proof. Practical Aspects of Modern Cryptography November 6, 2018

14 Is Remote Coin Flipping Possible?
Two-part answer: NO – I will sketch a formal proof. YES – I will provide an effective protocol. Practical Aspects of Modern Cryptography November 6, 2018

15 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

16 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

17 Pruning the Tree A A A A B B B B
Practical Aspects of Modern Cryptography November 6, 2018

18 Pruning the Tree A: B: A A   B B  
Practical Aspects of Modern Cryptography November 6, 2018

19 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

20 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

21 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

22 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

23 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

24 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

25 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

26 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

27 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

28 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

29 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

30 A Protocol Flow Tree A: B: A: B:
Practical Aspects of Modern Cryptography November 6, 2018

31 A Protocol Flow Tree A Practical Aspects of Modern Cryptography
November 6, 2018

32 Completing the Pruning
When the pruning is complete one will end up with either Practical Aspects of Modern Cryptography November 6, 2018

33 Completing the Pruning
When the pruning is complete one will end up with either a winner before the protocol has begun, or Practical Aspects of Modern Cryptography November 6, 2018

34 Completing the Pruning
When the pruning is complete one will end up with either a winner before the protocol has begun, or a useless infinite game. Practical Aspects of Modern Cryptography November 6, 2018

35 Remote coin flipping is utterly impossible!!!
Conclusion of Part I Remote coin flipping is utterly impossible!!! Practical Aspects of Modern Cryptography November 6, 2018

36 How to Remotely Flip a Coin
Practical Aspects of Modern Cryptography November 6, 2018

37 How to Remotely Flip a Coin
The INTEGERS Practical Aspects of Modern Cryptography November 6, 2018

38 How to Remotely Flip a Coin
The INTEGERS Practical Aspects of Modern Cryptography November 6, 2018

39 How to Remotely Flip a Coin
The INTEGERS Practical Aspects of Modern Cryptography November 6, 2018

40 How to Remotely Flip a Coin
The INTEGERS Practical Aspects of Modern Cryptography November 6, 2018

41 How to Remotely Flip a Coin
The INTEGERS Practical Aspects of Modern Cryptography November 6, 2018

42 How to Remotely Flip a Coin
The INTEGERS Even Practical Aspects of Modern Cryptography November 6, 2018

43 How to Remotely Flip a Coin
The INTEGERS 4n + 1: 4n - 1: Practical Aspects of Modern Cryptography November 6, 2018

44 How to Remotely Flip a Coin
The INTEGERS Type +1: Type -1: Practical Aspects of Modern Cryptography November 6, 2018

45 How to Remotely Flip a Coin
Fact 1 Multiplying two (odd) integers of the same type always yields a product of Type +1. (4p+1)(4q+1) = 16pq+4p+4q+1 = 4(4pq+p+q)+1 (4p–1)(4q–1) = 16pq–4p–4q+1 = 4(4pq–p–q)+1 Practical Aspects of Modern Cryptography November 6, 2018

46 How to Remotely Flip a Coin
Fact 2 There is no known method (other than factoring) to distinguish a product of two “Type +1” integers from a product of two “Type –1” integers. Practical Aspects of Modern Cryptography November 6, 2018

47 How to Remotely Flip a Coin
Fact 3 Factoring large integers is believed to be much harder than multiplying large integers. Practical Aspects of Modern Cryptography November 6, 2018

48 How to Remotely Flip a Coin
Practical Aspects of Modern Cryptography November 6, 2018

49 How to Remotely Flip a Coin
Alice Bob Practical Aspects of Modern Cryptography November 6, 2018

50 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large integers P and Q – both of type b. Bob Practical Aspects of Modern Cryptography November 6, 2018

51 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large integers P and Q – both of type b. Compute N = PQ. Bob Practical Aspects of Modern Cryptography November 6, 2018

52 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. Bob Practical Aspects of Modern Cryptography November 6, 2018

53 How to Remotely Flip a Coin
Alice Bob N Practical Aspects of Modern Cryptography November 6, 2018

54 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. Bob Practical Aspects of Modern Cryptography November 6, 2018

55 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Practical Aspects of Modern Cryptography November 6, 2018

56 How to Remotely Flip a Coin
Alice Bob b Practical Aspects of Modern Cryptography November 6, 2018

57 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Practical Aspects of Modern Cryptography November 6, 2018

58 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Bob wins if and only if he correctly guesses the value of b. Practical Aspects of Modern Cryptography November 6, 2018

59 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. After receiving b from Bob, reveal P and Q. Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Bob wins if and only if he correctly guesses the value of b. Practical Aspects of Modern Cryptography November 6, 2018

60 How to Remotely Flip a Coin
Alice Bob P,Q Practical Aspects of Modern Cryptography November 6, 2018

61 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. After receiving b from Bob, reveal P and Q. Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Bob wins if and only if he correctly guesses the value of b. Practical Aspects of Modern Cryptography November 6, 2018

62 Let’s Play The INTEGERS 0 4 8 12 16 … 1 5 9 13 17 … 2 6 10 14 18 …
Type +1: Type -1: Practical Aspects of Modern Cryptography November 6, 2018

63 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. After receiving b from Bob, reveal P and Q. Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Bob wins if and only if he correctly guesses the value of b. Practical Aspects of Modern Cryptography November 6, 2018

64 How to Remotely Flip a Coin
Alice Randomly select a bit b{1} and two large primes P and Q – both of type b. Compute N = PQ. Send N to Bob. After receiving b from Bob, reveal P and Q. Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Bob wins if and only if he correctly guesses the value of b. Practical Aspects of Modern Cryptography November 6, 2018

65 Checking Primality Basic result from group theory –
If p is a prime, then for integers a such that 0 < a < p, then a p - 1 mod p = 1. This is almost never true when p is composite. Practical Aspects of Modern Cryptography November 6, 2018

66 How are the Answers Reconciled?
Practical Aspects of Modern Cryptography November 6, 2018

67 How are the Answers Reconciled?
The impossibility proof assumed unlimited computational ability. Practical Aspects of Modern Cryptography November 6, 2018

68 How are the Answers Reconciled?
The impossibility proof assumed unlimited computational ability. The protocol is not 50/50 – Bob has a small advantage. Practical Aspects of Modern Cryptography November 6, 2018

69 Applications of Remote Flipping
Remote Card Playing Internet Gambling Various “Fair” Agreement Protocols Practical Aspects of Modern Cryptography November 6, 2018

70 Bit Commitment We have implemented remote coin flipping via bit commitment. Commitment protocols can also be used for Sealed bidding Undisclosed contracts Authenticated predictions Practical Aspects of Modern Cryptography November 6, 2018

71 One-Way Functions We have implemented bit commitment via one-way functions. One-way functions can be used for Authentication Data integrity Strong “randomness” Practical Aspects of Modern Cryptography November 6, 2018

72 One-Way Functions Practical Aspects of Modern Cryptography
November 6, 2018

73 One-Way Functions Two basic classes of one-way functions
Practical Aspects of Modern Cryptography November 6, 2018

74 One-Way Functions Two basic classes of one-way functions Mathematical
Practical Aspects of Modern Cryptography November 6, 2018

75 One-Way Functions Two basic classes of one-way functions Mathematical
Multiplication: Z=X•Y Practical Aspects of Modern Cryptography November 6, 2018

76 One-Way Functions Two basic classes of one-way functions Mathematical
Multiplication: Z=X•Y Modular Exponentiation: Z = YX mod N Practical Aspects of Modern Cryptography November 6, 2018

77 One-Way Functions Two basic classes of one-way functions Mathematical
Multiplication: Z=X•Y Modular Exponentiation: Z = YX mod N Ugly Practical Aspects of Modern Cryptography November 6, 2018

78 The Fundamental Equation
Z=YX mod N Practical Aspects of Modern Cryptography November 6, 2018

79 The Fundamental Equation
Z=YX mod N When Z is unknown, it can be efficiently computed. Practical Aspects of Modern Cryptography November 6, 2018

80 The Fundamental Equation
Z=YX mod N When X is unknown, the problem is known as the discrete logarithm and is generally believed to be hard to solve. Practical Aspects of Modern Cryptography November 6, 2018

81 The Fundamental Equation
Z=YX mod N When Y is unknown, the problem is known as discrete root finding and is generally believed to be hard to solve... Practical Aspects of Modern Cryptography November 6, 2018

82 The Fundamental Equation
Z=YX mod N … unless the factorization of N is known. Practical Aspects of Modern Cryptography November 6, 2018

83 The Fundamental Equation
Z=YX mod N The problem is not well-studied for the case when N is unknown. Practical Aspects of Modern Cryptography November 6, 2018

84 Z=YX mod N Implementation Practical Aspects of Modern Cryptography
November 6, 2018

85 How to compute YX mod N Practical Aspects of Modern Cryptography
November 6, 2018

86 How to compute YX mod N Compute YX and then reduce mod N.
Practical Aspects of Modern Cryptography November 6, 2018

87 How to compute YX mod N Compute YX and then reduce mod N.
If X, Y, and N each are 1,000-bit integers, YX consists of ~21010 bits. Practical Aspects of Modern Cryptography November 6, 2018

88 How to compute YX mod N Compute YX and then reduce mod N.
If X, Y, and N each are 1,000-bit integers, YX consists of ~21010 bits. Since there are roughly 2250 particles in the universe, storage is a problem. Practical Aspects of Modern Cryptography November 6, 2018

89 How to compute YX mod N Practical Aspects of Modern Cryptography
November 6, 2018

90 How to compute YX mod N Repeatedly multiplying by Y (followed each time by a reduction modulo N) X times solves the storage problem. Practical Aspects of Modern Cryptography November 6, 2018

91 How to compute YX mod N Repeatedly multiplying by Y (followed each time by a reduction modulo N) X times solves the storage problem. However, we would need to perform ~ bit multiplications per second to complete the computation before the sun burns out. Practical Aspects of Modern Cryptography November 6, 2018

92 How to compute YX mod N Practical Aspects of Modern Cryptography
November 6, 2018

93 How to compute YX mod N Multiplication by Repeated Doubling
Practical Aspects of Modern Cryptography November 6, 2018

94 How to compute YX mod N Multiplication by Repeated Doubling
To compute X • Y, Practical Aspects of Modern Cryptography November 6, 2018

95 How to compute YX mod N Multiplication by Repeated Doubling
To compute X • Y, compute Y, 2Y, 4Y, 8Y, 16Y,… Practical Aspects of Modern Cryptography November 6, 2018

96 How to compute YX mod N Multiplication by Repeated Doubling
To compute X • Y, compute Y, 2Y, 4Y, 8Y, 16Y,… and sum up those values dictated by the binary representation of X. Practical Aspects of Modern Cryptography November 6, 2018

97 How to compute YX mod N Example: 26Y = 2Y + 8Y + 16Y.
Multiplication by Repeated Doubling To compute X • Y, compute Y, 2Y, 4Y, 8Y, 16Y,… and sum up those values dictated by the binary representation of X. Example: 26Y = 2Y + 8Y + 16Y. Practical Aspects of Modern Cryptography November 6, 2018

98 How to compute YX mod N Practical Aspects of Modern Cryptography
November 6, 2018

99 How to compute YX mod N Exponentiation by Repeated Squaring
Practical Aspects of Modern Cryptography November 6, 2018

100 How to compute YX mod N Exponentiation by Repeated Squaring
Practical Aspects of Modern Cryptography November 6, 2018

101 How to compute YX mod N Exponentiation by Repeated Squaring
compute Y, Y2, Y4, Y8, Y16, … Practical Aspects of Modern Cryptography November 6, 2018

102 How to compute YX mod N Exponentiation by Repeated Squaring
compute Y, Y2, Y4, Y8, Y16, … and multiply those values dictated by the binary representation of X. Practical Aspects of Modern Cryptography November 6, 2018

103 How to compute YX mod N Example: Y26 = Y2 • Y8 • Y16.
Exponentiation by Repeated Squaring To compute YX, compute Y, Y2, Y4, Y8, Y16, … and multiply those values dictated by the binary representation of X. Example: Y26 = Y2 • Y8 • Y16. Practical Aspects of Modern Cryptography November 6, 2018

104 How to compute YX mod N We can now perform a 1,000-bit modular exponentiation using ~1,500 1,000-bit modular multiplications. 1,000 squarings: y, y2, y4, …, y21000 ~500 “ordinary” multiplications Practical Aspects of Modern Cryptography November 6, 2018

105 Sliding Window Method One way to speed up modular exponentiation is by precomputation of many small products. For instance, if you have y, y2, y3, …, y15 computed in advance, you can multiply by (for example) y13 without having to multiply individually by y, y4, and y8. Practical Aspects of Modern Cryptography November 6, 2018

106 Large-Integer Operations
Addition and Subtraction Multiplication Division and Remainder (Mod N) Exponentiation Practical Aspects of Modern Cryptography November 6, 2018

107 Large-Integer Addition
+ Practical Aspects of Modern Cryptography November 6, 2018

108 Large-Integer Addition
+ Practical Aspects of Modern Cryptography November 6, 2018

109 Large-Integer Addition
+ Practical Aspects of Modern Cryptography November 6, 2018

110 Large-Integer Addition
+ Practical Aspects of Modern Cryptography November 6, 2018

111 Large-Integer Addition
+ Practical Aspects of Modern Cryptography November 6, 2018

112 Large-Integer Addition
+ Practical Aspects of Modern Cryptography November 6, 2018

113 Large-Integer Addition
In general, adding two large integers – each consisting of n small blocks – requires O(n) small-integer additions. Large-integer subtraction is similar. Practical Aspects of Modern Cryptography November 6, 2018

114 Large-Integer Multiplication
Practical Aspects of Modern Cryptography November 6, 2018

115 Large-Integer Multiplication
Practical Aspects of Modern Cryptography November 6, 2018

116 Large-Integer Multiplication
Practical Aspects of Modern Cryptography November 6, 2018

117 Large-Integer Multiplication
Practical Aspects of Modern Cryptography November 6, 2018

118 Large-Integer Multiplication
Practical Aspects of Modern Cryptography November 6, 2018

119 Large-Integer Multiplication
Practical Aspects of Modern Cryptography November 6, 2018

120 Large-Integer Multiplication
In general, multiplying two large integers – each consisting of n small blocks – requires O(n2) small-integer multiplications and O(n) large-integer additions. Practical Aspects of Modern Cryptography November 6, 2018

121 Large-Integer Squaring
Practical Aspects of Modern Cryptography November 6, 2018

122 Large-Integer Squaring
Practical Aspects of Modern Cryptography November 6, 2018

123 Large-Integer Squaring
Practical Aspects of Modern Cryptography November 6, 2018

124 Large-Integer Squaring
Careful bookkeeping can save nearly half of the small-integer multiplications (and nearly half of the time). Practical Aspects of Modern Cryptography November 6, 2018

125 Recall computing YX mod N
About 2/3 of the multiplications required to compute YX are actually squarings. Overall, efficient squaring can save about 1/3 of the small multiplications required for modular exponentiation. Practical Aspects of Modern Cryptography November 6, 2018

126 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD Practical Aspects of Modern Cryptography November 6, 2018

127 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition Practical Aspects of Modern Cryptography November 6, 2018

128 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition Practical Aspects of Modern Cryptography November 6, 2018

129 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition Practical Aspects of Modern Cryptography November 6, 2018

130 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition Practical Aspects of Modern Cryptography November 6, 2018

131 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition Practical Aspects of Modern Cryptography November 6, 2018

132 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition Practical Aspects of Modern Cryptography November 6, 2018

133 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD Practical Aspects of Modern Cryptography November 6, 2018

134 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC Practical Aspects of Modern Cryptography November 6, 2018

135 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions Practical Aspects of Modern Cryptography November 6, 2018

136 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions Practical Aspects of Modern Cryptography November 6, 2018

137 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions Practical Aspects of Modern Cryptography November 6, 2018

138 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions Practical Aspects of Modern Cryptography November 6, 2018

139 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions Practical Aspects of Modern Cryptography November 6, 2018

140 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions Practical Aspects of Modern Cryptography November 6, 2018

141 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions Practical Aspects of Modern Cryptography November 6, 2018

142 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions Practical Aspects of Modern Cryptography November 6, 2018

143 Karatsuba Multiplication
(Ax+B)(Cx+D) = ACx2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions Practical Aspects of Modern Cryptography November 6, 2018

144 Karatsuba Multiplication
This can be done on integers as well as on polynomials, but it’s not as nice on integers because of carries. The larger the integers, the larger the benefit. Practical Aspects of Modern Cryptography November 6, 2018

145 Karatsuba Multiplication
(A•2k+B)(C•2k+D) = AC•22k + (AD+BC)•2k + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions Practical Aspects of Modern Cryptography November 6, 2018

146 X = A·Q·(Q-1 mod P) + B·P·(P-1 mod Q).
Chinese Remaindering If X =A mod P and X=B mod Q then (as long as P and Q have no common factors) X can be derived as X = A·Q·(Q-1 mod P) + B·P·(P-1 mod Q). Practical Aspects of Modern Cryptography November 6, 2018

147 Chinese Remaindering If N = PQ, then a computation mod N can be accomplished by performing the same computation mod P and again mod Q and then using Chinese Remaindering to derive the answer to the mod N computation. Practical Aspects of Modern Cryptography November 6, 2018

148 Chinese Remaindering Since modular exponentiation of n-bit integers requires O(n3) time, performing two modular exponentiations on half size values requires only about one quarter of the time of a single n-bit modular exponentiation. Practical Aspects of Modern Cryptography November 6, 2018

149 Modular Reduction Generally, computing (A•B) mod N requires much more than twice the time to compute A•B. Division is slow and cumbersome. Practical Aspects of Modern Cryptography November 6, 2018

150 Modular Reduction Generally, computing (A•B) mod N requires much more than twice the time to compute A•B. Division is disgusting. Practical Aspects of Modern Cryptography November 6, 2018

151 Modular Reduction Generally, computing (A•B) mod N requires much more than twice the time to compute A•B. Division is slow and cumbersome. Practical Aspects of Modern Cryptography November 6, 2018

152 Modular Reduction Generally, computing (A•B) mod N requires much more than twice the time to compute A•B. Division is dreadful. Practical Aspects of Modern Cryptography November 6, 2018

153 Modular Reduction Generally, computing (A•B) mod N requires much more than twice the time to compute A•B. Division is slow and cumbersome. Practical Aspects of Modern Cryptography November 6, 2018

154 Modular Reduction Generally, computing (A•B) mod N requires much more than twice the time to compute A•B. Division is wretched. Practical Aspects of Modern Cryptography November 6, 2018

155 Modular Reduction Generally, computing (A•B) mod N requires much more than twice the time to compute A•B. Division is slow and cumbersome. Practical Aspects of Modern Cryptography November 6, 2018

156 The Montgomery Method The Montgomery Method performs a domain transform to a domain in which the modular reduction operation can be achieved by multiplication and simple truncation. Since a single modular exponentiation requires many modular multiplications and reductions, transforming the arguments is well justified. Practical Aspects of Modern Cryptography November 6, 2018

157 Montgomery Multiplication
Let A, B, and M be n-block integers represented in base x with 0  M  x n. Let R = x n. GCD(R,M) = 1. The Montgomery Product of A and B modulo M is the integer ABR–1 mod M. Let M = –M–1 mod R and S = ABM mod R. Fact: (AB+SM)/R  ABR–1 (mod M). Practical Aspects of Modern Cryptography November 6, 2018

158 Using the Montgomery Product
The Montgomery Product ABR–1 mod M can be computed in the time required for two ordinary large-integer multiplications. Montgomery transform: AAR mod M. The Montgomery product of (AR mod M) and (BR mod M) is (ABR mod M). Practical Aspects of Modern Cryptography November 6, 2018

159 Z=YX mod N One-Way Functions Practical Aspects of Modern Cryptography
November 6, 2018

160 One-Way Functions Informally, F : X  Y is a one-way if
Given x, y = F(x) is easily computable. Given y, it is difficult to find any x for which y = F(x). Practical Aspects of Modern Cryptography November 6, 2018

161 One-Way Functions The family of functions FY,N(X) = YX mod N
is believed to be one-way for most N and Y. Practical Aspects of Modern Cryptography November 6, 2018

162 One-Way Functions The family of functions FY,N(X) = YX mod N
is believed to be one-way for most N and Y. No one has ever proven a function to be one-way, and doing so would, at a minimum, yield as a consequence that PNP. Practical Aspects of Modern Cryptography November 6, 2018

163 One-Way Functions When viewed as a two-argument function, the (candidate) one-way function FN(Y,X) = YX mod N also satisfies a useful additional property which has been termed quasi-commutivity: F(F(Y,X1),X2) = F(F(Y,X2),X1) since YX1X2 = YX2X1. Practical Aspects of Modern Cryptography November 6, 2018

164 Diffie-Hellman Key Exchange
Alice Bob Practical Aspects of Modern Cryptography November 6, 2018

165 Diffie-Hellman Key Exchange
Alice Randomly select a large integer a and send A = Ya mod N. Bob Randomly select a large integer b and send B = Yb mod N. Practical Aspects of Modern Cryptography November 6, 2018

166 Diffie-Hellman Key Exchange
Alice Bob A B Practical Aspects of Modern Cryptography November 6, 2018

167 Diffie-Hellman Key Exchange
Alice Randomly select a large integer a and send A = Ya mod N. Bob Randomly select a large integer b and send B = Yb mod N. Practical Aspects of Modern Cryptography November 6, 2018

168 Diffie-Hellman Key Exchange
Alice Randomly select a large integer a and send A = Ya mod N. Compute the key K = Ba mod N. Bob Randomly select a large integer b and send B = Yb mod N. Compute the key K = Ab mod N. Practical Aspects of Modern Cryptography November 6, 2018

169 Diffie-Hellman Key Exchange
Alice Randomly select a large integer a and send A = Ya mod N. Compute the key K = Ba mod N. Bob Randomly select a large integer b and send B = Yb mod N. Compute the key K = Ab mod N. Ba = Yba = Yab = Ab Practical Aspects of Modern Cryptography November 6, 2018

170 Diffie-Hellman Key Exchange
Practical Aspects of Modern Cryptography November 6, 2018

171 Diffie-Hellman Key Exchange
What does Eve see? Practical Aspects of Modern Cryptography November 6, 2018

172 Diffie-Hellman Key Exchange
What does Eve see? Y, Ya , Yb Practical Aspects of Modern Cryptography November 6, 2018

173 Diffie-Hellman Key Exchange
What does Eve see? Y, Ya , Yb … but the exchanged key is Yab. Practical Aspects of Modern Cryptography November 6, 2018

174 Diffie-Hellman Key Exchange
What does Eve see? Y, Ya , Yb … but the exchanged key is Yab. Belief: Given Y, Ya , Yb it is difficult to compute Yab . Practical Aspects of Modern Cryptography November 6, 2018

175 Diffie-Hellman Key Exchange
What does Eve see? Y, Ya , Yb … but the exchanged key is Yab. Belief: Given Y, Ya , Yb it is difficult to compute Yab . Contrast with discrete logarithm assumption: Given Y, Ya it is difficult to compute a . Practical Aspects of Modern Cryptography November 6, 2018

176 More on Quasi-Commutivity
Quasi-commutivity has additional applications. decentralized digital signatures membership testing digital time-stamping Practical Aspects of Modern Cryptography November 6, 2018

177 One-Way Trap-Door Functions
Z=YX mod N Practical Aspects of Modern Cryptography November 6, 2018

178 One-Way Trap-Door Functions
Z=YX mod N Recall that this equation is solvable for Y if the factorization of N is known, but is believed to be hard otherwise. Practical Aspects of Modern Cryptography November 6, 2018

179 RSA Public-Key Cryptosystem
Alice Anyone Practical Aspects of Modern Cryptography November 6, 2018

180 RSA Public-Key Cryptosystem
Alice Select two large random primes P & Q. Anyone Practical Aspects of Modern Cryptography November 6, 2018

181 RSA Public-Key Cryptosystem
Alice Select two large random primes P & Q. Publish the product N=PQ. Anyone Practical Aspects of Modern Cryptography November 6, 2018

182 RSA Public-Key Cryptosystem
Alice Select two large random primes P & Q. Publish the product N=PQ. Anyone To send message Y to Alice, compute Z=YX mod N. Practical Aspects of Modern Cryptography November 6, 2018

183 RSA Public-Key Cryptosystem
Alice Select two large random primes P & Q. Publish the product N=PQ. Anyone To send message Y to Alice, compute Z=YX mod N. Send Z and X to Alice. Practical Aspects of Modern Cryptography November 6, 2018

184 RSA Public-Key Cryptosystem
Alice Select two large random primes P & Q. Publish the product N=PQ. Use knowledge of P & Q to compute Y. Anyone To send message Y to Alice, compute Z=YX mod N. Send Z and X to Alice. Practical Aspects of Modern Cryptography November 6, 2018

185 RSA Public-Key Cryptosystem
In practice, the exponent X is almost always fixed to be X = = Practical Aspects of Modern Cryptography November 6, 2018

186 X mod (P-1)(Q-1) = 1 and 0 YN.
Some RSA Details When N=PQ is the product of distinct primes, YX mod N = Y whenever X mod (P-1)(Q-1) = 1 and 0 YN. Practical Aspects of Modern Cryptography November 6, 2018

187 X mod (P-1)(Q-1) = 1 and 0 YN.
Some RSA Details When N=PQ is the product of distinct primes, YX mod N = Y whenever X mod (P-1)(Q-1) = 1 and 0 YN. Alice can easily select integers E and D such that E•D mod (P-1)(Q-1) = 1. Practical Aspects of Modern Cryptography November 6, 2018

188 Some RSA Details Encryption: E(Y) = YE mod N.
Decryption: D(Y) = YD mod N. D(E(Y)) = (YE mod N)D mod N = YED mod N = Y Practical Aspects of Modern Cryptography November 6, 2018

189 RSA Signatures Practical Aspects of Modern Cryptography
November 6, 2018

190 RSA Signatures An additional property
Practical Aspects of Modern Cryptography November 6, 2018

191 RSA Signatures An additional property D(E(Y)) = YED mod N = Y
Practical Aspects of Modern Cryptography November 6, 2018

192 RSA Signatures An additional property D(E(Y)) = YED mod N = Y
E(D(Y)) = YDE mod N = Y Practical Aspects of Modern Cryptography November 6, 2018

193 RSA Signatures An additional property D(E(Y)) = YED mod N = Y
E(D(Y)) = YDE mod N = Y Only Alice (knowing the factorization of N) knows D. Hence only Alice can compute D(Y) = YD mod N. Practical Aspects of Modern Cryptography November 6, 2018

194 RSA Signatures An additional property D(E(Y)) = YED mod N = Y
E(D(Y)) = YDE mod N = Y Only Alice (knowing the factorization of N) knows D. Hence only Alice can compute D(Y) = YD mod N. This D(Y) serves as Alice’s signature on Y. Practical Aspects of Modern Cryptography November 6, 2018

195 Public Key Directory Practical Aspects of Modern Cryptography
November 6, 2018

196 Public Key Directory (Recall that E is commonly fixed to be E=65537.)
Practical Aspects of Modern Cryptography November 6, 2018

197 Certificate Authority
“Alice’s public modulus is NA = …” -- signed CA. Practical Aspects of Modern Cryptography November 6, 2018

198 Trust Chains Alice certifies Bob’s key. Bob certifies Carol’s key.
If I trust Alice should I accept Carol’s key? Practical Aspects of Modern Cryptography November 6, 2018

199 Authentication Practical Aspects of Modern Cryptography
November 6, 2018

200 Authentication How can I use RSA to authenticate someone’s identity?
Practical Aspects of Modern Cryptography November 6, 2018

201 Authentication How can I use RSA to authenticate someone’s identity?
If Alice’s public key EA, just pick a random message m and send EA(m). Practical Aspects of Modern Cryptography November 6, 2018

202 Authentication How can I use RSA to authenticate someone’s identity?
If Alice’s public key EA, just pick a random message m and send EA(m). If m comes back, I must be talking to Alice. Practical Aspects of Modern Cryptography November 6, 2018

203 Authentication Should Alice be happy with this method of authentication? Bob sends Alice the authentication string y = “I owe Bob $1,000,000 - signed Alice.” Alice dutifully authenticates herself by decrypting (putting her signature on) y. Practical Aspects of Modern Cryptography November 6, 2018

204 Authentication What if Alice only returns authentication queries when the decryption has a certain format? Practical Aspects of Modern Cryptography November 6, 2018

205 RSA Cautions Is it reasonable to sign/decrypt something given to you by someone else? Note that RSA is multiplicative. Can this property be used/abused? Practical Aspects of Modern Cryptography November 6, 2018

206 RSA Cautions D(Y1) • D(Y2) = D(Y1 • Y2)
Thus, if I’ve decrypted (or signed) Y1 and Y2, I’ve also decrypted (or signed) Y1 • Y2. Practical Aspects of Modern Cryptography November 6, 2018

207 The Hastad Attack Given E1(x) = x3 mod n1 E2(x) = x3 mod n2
one can easily compute x. Practical Aspects of Modern Cryptography November 6, 2018

208 The Bleichenbacher Attack
PKCS#1 Message Format: 00 01 XX XX ... XX 00 YY YY ... YY random non-zero bytes message Practical Aspects of Modern Cryptography November 6, 2018

209 “Man-in-the-Middle” Attacks
Practical Aspects of Modern Cryptography November 6, 2018

210 The Practical Side Practical Aspects of Modern Cryptography
November 6, 2018

211 The Practical Side RSA can be used to encrypt any data.
Practical Aspects of Modern Cryptography November 6, 2018

212 The Practical Side RSA can be used to encrypt any data.
Public-key (asymmetric) cryptography is very inefficient when compared to traditional private-key (symmetric) cryptography. Practical Aspects of Modern Cryptography November 6, 2018

213 The Practical Side Practical Aspects of Modern Cryptography
November 6, 2018

214 The Practical Side For efficiency, one generally uses RSA (or another public-key algorithm) to transmit a private (symmetric) key. Practical Aspects of Modern Cryptography November 6, 2018

215 The Practical Side For efficiency, one generally uses RSA (or another public-key algorithm) to transmit a private (symmetric) key. The private session key is used to encrypt any subsequent data. Practical Aspects of Modern Cryptography November 6, 2018

216 The Practical Side For efficiency, one generally uses RSA (or another public-key algorithm) to transmit a private (symmetric) key. The private session key is used to encrypt any subsequent data. Digital signatures are only used to sign a digest of the message. Practical Aspects of Modern Cryptography November 6, 2018


Download ppt "Practical Aspects of Modern Cryptography"

Similar presentations


Ads by Google