WEBVTT

1
00:00:00.120 --> 00:00:03.799
<v Speaker 1>Welcome to the deep dive. Today, we're venturing into the

2
00:00:04.440 --> 00:00:08.560
<v Speaker 1>really fascinating realm of cryptography and computer security.

3
00:00:09.039 --> 00:00:11.759
<v Speaker 2>Indeed, we've got quite a bit of material here, covering

4
00:00:11.800 --> 00:00:16.239
<v Speaker 2>everything from the sort of deep mathematical roots of encryption

5
00:00:16.480 --> 00:00:18.559
<v Speaker 2>all the way to how it protects us every day.

6
00:00:18.879 --> 00:00:21.719
<v Speaker 1>Right, and our mission really is to sift through all this,

7
00:00:21.879 --> 00:00:24.239
<v Speaker 1>pull out the key insights and maybe show you some

8
00:00:24.280 --> 00:00:28.280
<v Speaker 1>connections you hadn't thought of. Because cryptography, it sounds technical,

9
00:00:28.519 --> 00:00:29.320
<v Speaker 1>but it's everywhere.

10
00:00:29.359 --> 00:00:33.479
<v Speaker 2>Oh absolutely, think about secure websites, messaging apps, even your phone, security,

11
00:00:33.560 --> 00:00:36.479
<v Speaker 2>your car. It all relies on the stuff working behind

12
00:00:36.479 --> 00:00:37.399
<v Speaker 2>the scenes.

13
00:00:37.200 --> 00:00:40.280
<v Speaker 1>And the consequences if it doesn't work are pretty serious.

14
00:00:40.479 --> 00:00:44.240
<v Speaker 2>Yeah, we're talking email hacks, bank accounts getting breached, identity theft.

15
00:00:44.840 --> 00:00:47.439
<v Speaker 2>It's not just theory. These are real threats, which.

16
00:00:47.240 --> 00:00:50.039
<v Speaker 1>Makes you wonder who's doing the attacking right. The motivations

17
00:00:50.119 --> 00:00:50.759
<v Speaker 1>vary a lot.

18
00:00:50.719 --> 00:00:54.719
<v Speaker 2>Totally, from criminals after money to while more organized groups

19
00:00:54.759 --> 00:00:57.920
<v Speaker 2>with bigger targets. It really highlights why being proactive about

20
00:00:57.920 --> 00:00:59.399
<v Speaker 2>security is so vital.

21
00:01:00.159 --> 00:01:02.200
<v Speaker 1>For this deep dive, we're kind of splitting in two.

22
00:01:02.719 --> 00:01:07.079
<v Speaker 2>Yeah, first, we'll tackle the basics, the foundational concepts of cryptography,

23
00:01:07.120 --> 00:01:08.319
<v Speaker 2>how it all works at its.

24
00:01:08.159 --> 00:01:09.159
<v Speaker 1>Core and done.

25
00:01:09.239 --> 00:01:12.000
<v Speaker 2>Then we'll look at the practical side, how these ideas

26
00:01:12.040 --> 00:01:14.200
<v Speaker 2>actually get built into the technologies you use.

27
00:01:14.319 --> 00:01:16.599
<v Speaker 1>Okay, sounds good. Let's start with the big picture then

28
00:01:17.200 --> 00:01:18.680
<v Speaker 1>computer security itself.

29
00:01:18.959 --> 00:01:22.280
<v Speaker 2>Right. So, at as heart, information security is about protecting

30
00:01:22.319 --> 00:01:26.000
<v Speaker 2>information and systems. It comes down to three key things

31
00:01:26.159 --> 00:01:28.439
<v Speaker 2>often called the CIA.

32
00:01:27.840 --> 00:01:31.400
<v Speaker 1>Triad CIA not the agency I assume.

33
00:01:31.560 --> 00:01:36.040
<v Speaker 2>Huh No, not that CIA. It stands for confidentiality, integrity,

34
00:01:36.280 --> 00:01:37.200
<v Speaker 2>and availability.

35
00:01:37.359 --> 00:01:42.519
<v Speaker 1>Okay, confidentiality, keeping secret, secret, integrity, making sure data isn't

36
00:01:42.519 --> 00:01:44.359
<v Speaker 1>messed with. What about availability?

37
00:01:44.480 --> 00:01:47.959
<v Speaker 2>Availability is crucial. It means authorized users can actually get

38
00:01:47.959 --> 00:01:50.959
<v Speaker 2>to the information and services when they need them. Security

39
00:01:51.040 --> 00:01:54.359
<v Speaker 2>isn't just about locking things down. It's also about ensuring access.

40
00:01:54.439 --> 00:01:57.120
<v Speaker 1>That's a great point. We often focus on the secrecy.

41
00:01:56.640 --> 00:02:01.239
<v Speaker 2>Part exactly, but think about attacks that target availability. Sabotaging

42
00:02:01.239 --> 00:02:04.480
<v Speaker 2>a system like say car breaks control to lectonically or

43
00:02:04.519 --> 00:02:07.640
<v Speaker 2>deleting critical data, or just blocking access to servers. Those

44
00:02:07.640 --> 00:02:09.400
<v Speaker 2>are all serious security breaches.

45
00:02:09.759 --> 00:02:13.800
<v Speaker 1>So information security is the umbrella term, and cybersecurity fits

46
00:02:13.840 --> 00:02:14.360
<v Speaker 1>underneath it.

47
00:02:14.400 --> 00:02:21.479
<v Speaker 2>Pretty much. Cybersecurity focuses specifically on protecting that digital world, networks, devices, data,

48
00:02:21.879 --> 00:02:24.120
<v Speaker 2>everything in cyberspace from attacks.

49
00:02:24.240 --> 00:02:28.000
<v Speaker 1>Got it. Now, let's zoom in on cryptography itself. What's

50
00:02:28.039 --> 00:02:28.840
<v Speaker 1>its main job?

51
00:02:29.159 --> 00:02:34.080
<v Speaker 2>Fundamentally, cryptography is about enabling secure communication and building trust

52
00:02:34.199 --> 00:02:37.120
<v Speaker 2>even when people don't know each other. It's about privacy

53
00:02:37.199 --> 00:02:40.479
<v Speaker 2>and security and a connected world. And you know this

54
00:02:40.520 --> 00:02:41.479
<v Speaker 2>isn't a new problem.

55
00:02:41.719 --> 00:02:44.319
<v Speaker 1>Ah, right. The historical examples I saw those in the notes.

56
00:02:44.520 --> 00:02:47.639
<v Speaker 2>Yeah, people have wanted to send secret messages for ages.

57
00:02:48.159 --> 00:02:50.280
<v Speaker 2>Think about the ancient Greeks with their side tail a

58
00:02:50.360 --> 00:02:54.680
<v Speaker 2>cylinder for scrambling messages, or even Thomas Jefferson's wheel cipher.

59
00:02:54.479 --> 00:02:56.199
<v Speaker 1>Much more complex, I imagine a bit.

60
00:02:56.360 --> 00:03:00.360
<v Speaker 2>Yeah, mechanical shows that drive for secrecy. These were early steps.

61
00:03:00.199 --> 00:03:02.280
<v Speaker 1>And then we get to things like the Enigma machine

62
00:03:02.280 --> 00:03:02.960
<v Speaker 1>in World War Two.

63
00:03:03.159 --> 00:03:06.520
<v Speaker 2>Right, Enigma a huge leap in complexity for its time,

64
00:03:06.840 --> 00:03:09.800
<v Speaker 2>electro mechanical, very sophisticated.

65
00:03:09.080 --> 00:03:11.240
<v Speaker 1>Codes famously broken by Alan Turing and.

66
00:03:11.199 --> 00:03:16.039
<v Speaker 2>His team exactly, which perfectly illustrates this constant cat and

67
00:03:16.080 --> 00:03:19.800
<v Speaker 2>mouse game in cryptography. Code makers build something, code breakers

68
00:03:19.800 --> 00:03:21.840
<v Speaker 2>try to crack it. It's always evolving.

69
00:03:22.080 --> 00:03:25.840
<v Speaker 1>Now here's something interesting. Attacks on the algorithms themselves, they're

70
00:03:25.879 --> 00:03:28.240
<v Speaker 1>not usually about tricking the user, are they?

71
00:03:28.319 --> 00:03:31.719
<v Speaker 2>That's a key distinction. Things like phishing they prey on

72
00:03:31.800 --> 00:03:36.120
<v Speaker 2>human error, but cryptanalysis attacking the crypto algorithm aims to

73
00:03:36.199 --> 00:03:39.800
<v Speaker 2>find weaknesses in the math or the design itself, not

74
00:03:39.879 --> 00:03:42.199
<v Speaker 2>trying to fool you into giving up your password.

75
00:03:42.360 --> 00:03:45.400
<v Speaker 1>So how does cryptanalysis work? Then? Sounds complicated?

76
00:03:45.560 --> 00:03:49.080
<v Speaker 2>It can be, but the core idea is using knowledge

77
00:03:49.120 --> 00:03:52.159
<v Speaker 2>of how the algorithm is built, and often these designs

78
00:03:52.159 --> 00:03:55.479
<v Speaker 2>are public. Plus looking for patterns in the original message,

79
00:03:55.560 --> 00:03:56.120
<v Speaker 2>the plain.

80
00:03:55.960 --> 00:03:58.240
<v Speaker 1>Text, using the ciphertext the encrypted.

81
00:03:57.919 --> 00:04:02.120
<v Speaker 2>Message right, analyzing the ciphertech, knowing the algorithms structure, maybe

82
00:04:02.120 --> 00:04:05.879
<v Speaker 2>knowing something about the likely plaintext, you use computation to

83
00:04:05.919 --> 00:04:08.199
<v Speaker 2>try and figure out the secret key or the message.

84
00:04:08.280 --> 00:04:12.319
<v Speaker 1>Okay, the notes mentioned unconditional versus computational security. What's the difference.

85
00:04:12.599 --> 00:04:16.839
<v Speaker 2>Unconditional security is like the theoretical ideal. It means, even

86
00:04:16.879 --> 00:04:20.480
<v Speaker 2>with infinite computing power, you couldn't break the cipher. The

87
00:04:20.519 --> 00:04:21.360
<v Speaker 2>one time pad is.

88
00:04:21.360 --> 00:04:23.399
<v Speaker 1>An example, but not very practical.

89
00:04:23.600 --> 00:04:26.920
<v Speaker 2>Not usually, No, you need a key as long as

90
00:04:26.959 --> 00:04:32.279
<v Speaker 2>the message perfectly random used only once securely shared. Tricky.

91
00:04:33.680 --> 00:04:38.360
<v Speaker 2>Computational security is what we rely on, meaning it's theoretically breakable,

92
00:04:38.720 --> 00:04:40.800
<v Speaker 2>but it would take an absurd amount of time and

93
00:04:40.839 --> 00:04:45.319
<v Speaker 2>computing power, far beyond anything feasible. Our everyday crypto relies

94
00:04:45.360 --> 00:04:45.720
<v Speaker 2>on this.

95
00:04:45.839 --> 00:04:51.079
<v Speaker 1>Gotcha and quickly pseudorandom number generators PR andngs. They sound random,

96
00:04:51.120 --> 00:04:52.879
<v Speaker 1>but they're not quite exactly.

97
00:04:53.120 --> 00:04:56.839
<v Speaker 2>They're algorithms that produce sequences that look random, but they're deterministic.

98
00:04:56.920 --> 00:04:58.199
<v Speaker 2>If you know the starting point, the.

99
00:04:58.160 --> 00:04:59.680
<v Speaker 1>Seed, you can predict the whole sequence.

100
00:04:59.800 --> 00:05:02.079
<v Speaker 2>Yeah, that's the risk. If an attacker gets the seed,

101
00:05:02.120 --> 00:05:05.480
<v Speaker 2>the randomness collapses and any security relying on it is

102
00:05:05.560 --> 00:05:08.759
<v Speaker 2>potentially gone. So true randomness for seating is vital.

103
00:05:08.879 --> 00:05:12.879
<v Speaker 1>Okay, makes sense. So strong algorithms plus real randomness. Now,

104
00:05:12.959 --> 00:05:16.560
<v Speaker 1>let's get into some of the math behind this. Modular arithmetic, right.

105
00:05:16.639 --> 00:05:19.639
<v Speaker 2>Think of clock arithmetic. After twelve, you're back to one

106
00:05:19.800 --> 00:05:23.720
<v Speaker 2>that's modulo twelve. Cryptography uses this a lot, working with

107
00:05:23.839 --> 00:05:27.800
<v Speaker 2>numbers within a specific range a modulus. Concepts like Fermat's

108
00:05:27.800 --> 00:05:31.959
<v Speaker 2>little theorem, modular square roots their tools in the crypto toolbox.

109
00:05:31.519 --> 00:05:35.040
<v Speaker 1>And groups in fields. Sounds like abstract algebra class.

110
00:05:34.720 --> 00:05:38.560
<v Speaker 2>It is a bit, but structures like ZP, integers modulo

111
00:05:38.600 --> 00:05:41.839
<v Speaker 2>a prime P, or finite fields FP define how addition

112
00:05:41.959 --> 00:05:44.959
<v Speaker 2>and multiplication work in these limited sets. They provide the

113
00:05:45.000 --> 00:05:49.120
<v Speaker 2>mathematical playground for many crypto operations. The order of an element,

114
00:05:49.160 --> 00:05:51.759
<v Speaker 2>for instance, is important for security in some systems.

115
00:05:51.959 --> 00:05:55.000
<v Speaker 1>The notes show examples in finite fields, like F twenty three.

116
00:05:55.240 --> 00:05:56.000
<v Speaker 1>That looks different.

117
00:05:56.240 --> 00:06:00.360
<v Speaker 2>Yeah, it's math with polynomials over binary fields. We're working

118
00:06:00.399 --> 00:06:02.360
<v Speaker 2>with strings of bits, and the rules for adding and

119
00:06:02.439 --> 00:06:07.000
<v Speaker 2>multiplying are based on polynomial math modulo some irreducible polynomial

120
00:06:07.399 --> 00:06:10.879
<v Speaker 2>sounds complex, but it gives a well defined structure for operations.

121
00:06:11.360 --> 00:06:14.920
<v Speaker 2>Generators are elements that can create all others through repeated multiplications.

122
00:06:14.959 --> 00:06:17.120
<v Speaker 1>Okay, I'll trust you on that one. And the Chinese

123
00:06:17.120 --> 00:06:18.879
<v Speaker 1>remainder theorem, what's its role?

124
00:06:19.319 --> 00:06:24.360
<v Speaker 2>Ugh crt. It's a clever theorem for solving systems of congruences,

125
00:06:24.399 --> 00:06:27.279
<v Speaker 2>finding a number that leaves specific remainders when divided by

126
00:06:27.279 --> 00:06:31.279
<v Speaker 2>different numbers. In crypto, especially RSA, it's used to speed

127
00:06:31.319 --> 00:06:34.519
<v Speaker 2>things up. You can break a big calculation down into smaller,

128
00:06:34.680 --> 00:06:37.680
<v Speaker 2>faster ones modulo the factors of the main number.

129
00:06:37.879 --> 00:06:42.040
<v Speaker 1>Right optimization. Okay, mad foundations late, let's talk symmetric ciphers.

130
00:06:42.399 --> 00:06:43.480
<v Speaker 1>The basic idea.

131
00:06:43.319 --> 00:06:48.560
<v Speaker 2>Simple concept, one shared secret key, same key to encrypt

132
00:06:48.600 --> 00:06:51.920
<v Speaker 2>the plaintext into ciphertext, same key to decrypt it back.

133
00:06:52.319 --> 00:06:55.000
<v Speaker 2>Security hinges entirely on keeping that key secret.

134
00:06:55.199 --> 00:06:58.480
<v Speaker 1>Like the vigenera cipher that's a step up from the

135
00:06:58.480 --> 00:06:59.639
<v Speaker 1>basic Cazar shift right.

136
00:07:00.399 --> 00:07:03.560
<v Speaker 2>Instead of shifting every letter the same amount, Vgenia uses

137
00:07:03.600 --> 00:07:05.839
<v Speaker 2>a keyword. The keyword letter tells you how much to

138
00:07:05.879 --> 00:07:07.800
<v Speaker 2>shift the corresponding plaintex.

139
00:07:07.399 --> 00:07:09.480
<v Speaker 1>Letter, so you repeat the keyword yeap, repeat the.

140
00:07:09.519 --> 00:07:12.360
<v Speaker 2>Keyword to match the message length, then use a Visionaire

141
00:07:12.399 --> 00:07:14.560
<v Speaker 2>table to do the look up. It was much harder

142
00:07:14.600 --> 00:07:16.439
<v Speaker 2>to break than Caesar for a long time because it

143
00:07:16.519 --> 00:07:19.920
<v Speaker 2>uses multiple alphabets. Still breakable, though, especially now.

144
00:07:19.879 --> 00:07:22.680
<v Speaker 1>And reusing keys and stream ciphers is a big no, no.

145
00:07:22.959 --> 00:07:27.079
<v Speaker 2>Huge mistake. Stream ciphers often generate a keystream from the key.

146
00:07:27.720 --> 00:07:30.040
<v Speaker 2>If you encrypt two different messages with the exact same

147
00:07:30.120 --> 00:07:33.959
<v Speaker 2>keystream problems, big problems. An attacker can xor the two

148
00:07:34.040 --> 00:07:37.560
<v Speaker 2>cipher texts together, the KEYSTRM cancels out, and they're left

149
00:07:37.560 --> 00:07:41.199
<v Speaker 2>with the xor of the two original plaintexts. If they

150
00:07:41.279 --> 00:07:44.839
<v Speaker 2>know or can guess part one message, they can often recover.

151
00:07:44.639 --> 00:07:46.959
<v Speaker 1>Both, like using the same combo on two safes.

152
00:07:47.000 --> 00:07:48.439
<v Speaker 2>Good analogy yeah.

153
00:07:48.199 --> 00:07:52.079
<v Speaker 1>Which leads to crib based tax sounds like spying.

154
00:07:52.240 --> 00:07:54.000
<v Speaker 2>It kind of is. A crib is just a piece

155
00:07:54.000 --> 00:07:56.000
<v Speaker 2>of plaintext you guess might be in the message, like

156
00:07:56.079 --> 00:07:57.959
<v Speaker 2>weather report in Enigma messages.

157
00:07:58.120 --> 00:07:59.160
<v Speaker 1>How does guessing help?

158
00:07:59.360 --> 00:08:01.959
<v Speaker 2>You? Try a line your guest crib against the cyphertext

159
00:08:02.000 --> 00:08:04.480
<v Speaker 2>at different positions. If your guess is right, it can

160
00:08:04.519 --> 00:08:07.120
<v Speaker 2>help you deduce parts of the key or confirm your guess.

161
00:08:07.360 --> 00:08:11.240
<v Speaker 2>It was vital for breaking Enigma, combining language knowledge with cryptoanalysis.

162
00:08:11.360 --> 00:08:16.000
<v Speaker 1>However, and the XR operation itself simple logic gate but fundamental.

163
00:08:15.480 --> 00:08:18.560
<v Speaker 2>Here absolutely xor is its own inverse a XR B

164
00:08:18.879 --> 00:08:22.000
<v Speaker 2>xr B gets you back to a so plaintext, XR

165
00:08:22.079 --> 00:08:27.000
<v Speaker 2>key stream ciphertext ciphertext XR keystream plaintext very efficient.

166
00:08:26.800 --> 00:08:29.240
<v Speaker 1>But the key reuse issue comes back to xor.

167
00:08:29.439 --> 00:08:32.120
<v Speaker 2>Yes, because certext one xo R so for text two

168
00:08:32.159 --> 00:08:36.720
<v Speaker 2>equals plaintext one, XR keystream, XR plaintext two, XR key stream.

169
00:08:37.120 --> 00:08:40.519
<v Speaker 2>The keystreams cancel leaving plaintext one xo R plaintext.

170
00:08:40.120 --> 00:08:41.399
<v Speaker 1>Two, and that leaks information.

171
00:08:41.519 --> 00:08:44.639
<v Speaker 2>It can, yeah, especially with things like AC encoding. The

172
00:08:44.720 --> 00:08:48.039
<v Speaker 2>bit patterns for letters versus spaces are different. XOR and

173
00:08:48.080 --> 00:08:51.080
<v Speaker 2>ciphertext might reveal if one character was likely a space,

174
00:08:51.120 --> 00:08:53.279
<v Speaker 2>which is a common character. It gives the attack or

175
00:08:53.320 --> 00:08:54.120
<v Speaker 2>a starting point.

176
00:08:54.279 --> 00:08:58.080
<v Speaker 1>Okay, fascinating how simple operations have big impacts. Let's switch

177
00:08:58.120 --> 00:09:02.480
<v Speaker 1>to hash functions, m as and digital signatures different goals.

178
00:09:02.159 --> 00:09:05.480
<v Speaker 2>Here, totally different. Symmetric crypto is about confidentiality. These are

179
00:09:05.480 --> 00:09:07.080
<v Speaker 2>more about integrity and authenticity.

180
00:09:07.159 --> 00:09:10.120
<v Speaker 1>So hash functions first, like a digital fingerprint.

181
00:09:09.799 --> 00:09:13.080
<v Speaker 2>Exactly takes any input data, produces a fixed size output

182
00:09:13.200 --> 00:09:15.919
<v Speaker 2>the hash. Good ones are one way, easy to compute

183
00:09:15.919 --> 00:09:18.720
<v Speaker 2>the hash, hard to go from hashback to input and

184
00:09:18.840 --> 00:09:22.000
<v Speaker 2>collision resistant. Hard to find two different inputs that give

185
00:09:22.039 --> 00:09:22.799
<v Speaker 2>the same hash.

186
00:09:23.200 --> 00:09:27.840
<v Speaker 1>Saha algorithms are common examples Saha one, Saha two, Saha

187
00:09:27.879 --> 00:09:28.559
<v Speaker 1>three Right.

188
00:09:29.080 --> 00:09:31.879
<v Speaker 2>Saha one is weak now, but SAHA two and SAHA

189
00:09:31.879 --> 00:09:35.320
<v Speaker 2>three are widely used. They have different structures and output sizes.

190
00:09:35.600 --> 00:09:38.159
<v Speaker 2>SAHA three uses something called the sponge construction.

191
00:09:38.320 --> 00:09:38.879
<v Speaker 1>Sponge.

192
00:09:39.080 --> 00:09:41.879
<v Speaker 2>Yeah, think of absorbing the input data into an internal

193
00:09:41.919 --> 00:09:45.200
<v Speaker 2>state than squeezing the hash output out. It's a flexible

194
00:09:45.240 --> 00:09:47.000
<v Speaker 2>design with good security properties.

195
00:09:47.080 --> 00:09:51.279
<v Speaker 1>Okay, and MAA key's message authentication codes? How are they

196
00:09:51.279 --> 00:09:52.240
<v Speaker 1>different from hashes?

197
00:09:52.639 --> 00:09:56.080
<v Speaker 2>Hashes verify integrity? Was the data changed? MAA keys do

198
00:09:56.159 --> 00:09:59.320
<v Speaker 2>that plus authentication. They use a secret key shared between

199
00:09:59.360 --> 00:10:02.720
<v Speaker 2>sender and res How you compute the MA using the

200
00:10:02.720 --> 00:10:05.360
<v Speaker 2>message and the secret key. Send the message and the

201
00:10:05.480 --> 00:10:08.519
<v Speaker 2>mt tag. The receiver uses their copy of the key

202
00:10:08.559 --> 00:10:11.639
<v Speaker 2>to recompute the MC on the receive message. If the

203
00:10:11.679 --> 00:10:13.919
<v Speaker 2>tags matched, the message is intact and it came from

204
00:10:14.000 --> 00:10:14.600
<v Speaker 2>someone with the.

205
00:10:14.639 --> 00:10:17.639
<v Speaker 1>Key, So it uses a shared secret like symmetric encryption.

206
00:10:17.840 --> 00:10:20.399
<v Speaker 2>Yes, HMAC is a common way to build up MC

207
00:10:20.600 --> 00:10:22.159
<v Speaker 2>using a hash function and a key.

208
00:10:22.399 --> 00:10:24.960
<v Speaker 1>Then digital signatures, they offer non repudiation.

209
00:10:25.240 --> 00:10:29.480
<v Speaker 2>Exactly digital signatures use public key crypto. The sender signs

210
00:10:29.480 --> 00:10:31.720
<v Speaker 2>the message or hash of it using their private key.

211
00:10:32.159 --> 00:10:35.159
<v Speaker 2>Anyone can verify the signature using the sender's public key,

212
00:10:35.480 --> 00:10:40.240
<v Speaker 2>and that proves it proves integrity, message wasn't changed, and authenticity.

213
00:10:40.519 --> 00:10:44.320
<v Speaker 2>Only the private key owner could create that signature. Crucially,

214
00:10:44.799 --> 00:10:48.679
<v Speaker 2>it provides non repudiation. The sender can't deny signing it

215
00:10:48.879 --> 00:10:51.639
<v Speaker 2>because only they have the private key. That's a key

216
00:10:51.679 --> 00:10:53.279
<v Speaker 2>difference from MAC got it.

217
00:10:53.759 --> 00:10:58.240
<v Speaker 1>The notes mentioned generic attacks on hashes, pre image, second

218
00:10:58.240 --> 00:10:59.879
<v Speaker 1>pre image collision. What are those?

219
00:11:00.080 --> 00:11:03.440
<v Speaker 2>They target? The core properties pre image given a hash,

220
00:11:03.600 --> 00:11:06.879
<v Speaker 2>find any input that produces it. Second pre image given

221
00:11:06.919 --> 00:11:09.240
<v Speaker 2>an input and its hash. Find a different input with

222
00:11:09.279 --> 00:11:13.759
<v Speaker 2>the same hash. Collision find any two different inputs with

223
00:11:13.799 --> 00:11:14.399
<v Speaker 2>the same hash.

224
00:11:14.559 --> 00:11:16.759
<v Speaker 1>All bad news for security, definitely.

225
00:11:17.080 --> 00:11:21.840
<v Speaker 2>They undermine the integrity and authenticity guarantees. A collision, for example,

226
00:11:21.919 --> 00:11:24.120
<v Speaker 2>could let someone create a malicious file with the same

227
00:11:24.159 --> 00:11:25.480
<v Speaker 2>hash as a legitimate one.

228
00:11:25.559 --> 00:11:28.320
<v Speaker 1>Okay, back to cipher's for a moment. Stream cipher is

229
00:11:28.320 --> 00:11:29.240
<v Speaker 1>the synchronous model.

230
00:11:29.360 --> 00:11:32.639
<v Speaker 2>Right In synchronist stream ciphers, both sender and receiver generate

231
00:11:32.679 --> 00:11:36.240
<v Speaker 2>the exact same keystream independently based on a shared key

232
00:11:36.279 --> 00:11:38.720
<v Speaker 2>and usually an IV initialization.

233
00:11:38.120 --> 00:11:40.840
<v Speaker 1>Vector, and the keystream generation is separate from the message

234
00:11:41.000 --> 00:11:41.919
<v Speaker 1>completely separate.

235
00:11:42.159 --> 00:11:45.720
<v Speaker 2>Keystream generation doesn't depend on the plaintext or ciphertext. You

236
00:11:45.879 --> 00:11:48.840
<v Speaker 2>just XR the plaintext with the generated keystream.

237
00:11:48.840 --> 00:11:54.240
<v Speaker 1>Bits and linear feedbackshift registers LFSRs are used for making keystreams.

238
00:11:54.320 --> 00:11:57.919
<v Speaker 2>They're a basic building block, simple hardware shift bits along

239
00:11:58.360 --> 00:12:01.879
<v Speaker 2>calculate the next bit using XORs of previous bits based

240
00:12:01.919 --> 00:12:03.320
<v Speaker 2>on a feedback polynomial.

241
00:12:03.480 --> 00:12:04.480
<v Speaker 1>But they have weaknesses.

242
00:12:04.559 --> 00:12:08.200
<v Speaker 2>Yeah, they're linearity algorithms like burlycamp Massy can figure out

243
00:12:08.240 --> 00:12:11.000
<v Speaker 2>the feedback polynomial if they see enough of the output stream.

244
00:12:11.399 --> 00:12:16.559
<v Speaker 2>So real world stream ciphers use more complex nonlinear methods

245
00:12:16.600 --> 00:12:19.440
<v Speaker 2>on top of or instead of basic LFSRs.

246
00:12:19.519 --> 00:12:22.799
<v Speaker 1>Okay, let's shift to block ciphers. Now, how are they different.

247
00:12:22.879 --> 00:12:25.519
<v Speaker 2>Block ciphers work on fixed sized chunks of data like

248
00:12:25.559 --> 00:12:28.440
<v Speaker 2>one hundred and twenty eight bits for as stream ciphers

249
00:12:28.440 --> 00:12:31.000
<v Speaker 2>work bit by bit or bite by byte. Block ciphers

250
00:12:31.080 --> 00:12:33.240
<v Speaker 2>use the same key for each block, but apply complex

251
00:12:33.279 --> 00:12:35.679
<v Speaker 2>transformation within each block, usually.

252
00:12:35.440 --> 00:12:37.960
<v Speaker 1>Over multiple rounds, and they're fundamental.

253
00:12:37.799 --> 00:12:41.159
<v Speaker 2>Very use for encrypting bulk data and also as components

254
00:12:41.159 --> 00:12:43.879
<v Speaker 2>in other crypto things like hash functions or even stream

255
00:12:43.919 --> 00:12:45.440
<v Speaker 2>ciphers when used in certain modes.

256
00:12:45.600 --> 00:12:48.759
<v Speaker 1>kDa and AES are the main standards mentioned right.

257
00:12:49.080 --> 00:12:51.919
<v Speaker 2>TDA or triple DS was a way to strengthen the

258
00:12:51.960 --> 00:12:55.559
<v Speaker 2>older DS by applying it three times. DS itself has

259
00:12:55.600 --> 00:12:58.720
<v Speaker 2>two small a key size fifty six bits now, as

260
00:12:58.759 --> 00:13:01.360
<v Speaker 2>is the modern standard keys one hundred and twenty eight

261
00:13:01.440 --> 00:13:04.000
<v Speaker 2>hundred and ninety two two hundred fifty six bits. Stronger

262
00:13:04.039 --> 00:13:04.759
<v Speaker 2>design the.

263
00:13:04.759 --> 00:13:08.480
<v Speaker 1>Old DEES process, and it intricate permutations key schedules that

264
00:13:08.720 --> 00:13:09.559
<v Speaker 1>f function.

265
00:13:09.440 --> 00:13:13.399
<v Speaker 2>It was initial permutation scrambles the block, then sixteen rounds.

266
00:13:13.639 --> 00:13:16.919
<v Speaker 2>Each round splits the block uses the round key derived

267
00:13:17.000 --> 00:13:19.120
<v Speaker 2>via the key schedule in the F function on one

268
00:13:19.159 --> 00:13:22.799
<v Speaker 2>half xrs the result with the other half than swaps halves. Finally,

269
00:13:22.840 --> 00:13:27.240
<v Speaker 2>an inverse initial permutation. The F function itself involved expansion,

270
00:13:27.480 --> 00:13:30.080
<v Speaker 2>s box substitutions, and permutation.

271
00:13:30.080 --> 00:13:32.600
<v Speaker 1>Complex and the meat and the middle attack worked against

272
00:13:32.639 --> 00:13:34.000
<v Speaker 1>double des yes.

273
00:13:34.000 --> 00:13:37.639
<v Speaker 2>And it reduces the security significantly. Instead of trying all

274
00:13:37.720 --> 00:13:40.679
<v Speaker 2>key pairs huge number, you encrypt the plain text with

275
00:13:40.759 --> 00:13:43.679
<v Speaker 2>all possible first keys and decrypt the ciphertext of all

276
00:13:43.679 --> 00:13:46.200
<v Speaker 2>possible second keys. You store the results and look for

277
00:13:46.200 --> 00:13:46.919
<v Speaker 2>a match in the middle.

278
00:13:46.960 --> 00:13:49.080
<v Speaker 1>Cuts down the work dramatically massively.

279
00:13:49.320 --> 00:13:52.279
<v Speaker 2>It makes double des not much stronger than single ds

280
00:13:52.320 --> 00:13:55.360
<v Speaker 2>against this attack. TDA is structured to resist this better,

281
00:13:55.399 --> 00:13:56.559
<v Speaker 2>but it's still not ideal.

282
00:13:56.600 --> 00:13:59.360
<v Speaker 1>Compared to AES, AES has its own steps.

283
00:13:59.759 --> 00:14:03.720
<v Speaker 2>Like SI subbites right, AES uses a state matrix sub

284
00:14:03.720 --> 00:14:07.720
<v Speaker 2>bytes replaces each byte using an s box lookup. Unlike

285
00:14:07.799 --> 00:14:11.639
<v Speaker 2>DESS boxes, the ads F box has a clear mathematical

286
00:14:11.679 --> 00:14:16.320
<v Speaker 2>structure based on finite field arithmetic. It provides nonlinearity, and

287
00:14:16.440 --> 00:14:20.360
<v Speaker 2>mixed columns uses polynomial math YEP. Mixed columns mixes the

288
00:14:20.360 --> 00:14:23.039
<v Speaker 2>bytes within each column of the state matrix. Treating columns

289
00:14:23.080 --> 00:14:27.159
<v Speaker 2>as polynomials over a finite field. This provides diffusion changes

290
00:14:27.200 --> 00:14:28.080
<v Speaker 2>spread quickly.

291
00:14:27.919 --> 00:14:29.679
<v Speaker 1>Across the block and ad round key.

292
00:14:29.879 --> 00:14:33.120
<v Speaker 2>That's the simpler step. Just xor the current state with

293
00:14:33.200 --> 00:14:35.399
<v Speaker 2>the round key derived from the main key via the

294
00:14:35.440 --> 00:14:38.879
<v Speaker 2>key schedule. This introduces the key material into the process

295
00:14:38.919 --> 00:14:39.480
<v Speaker 2>each round.

296
00:14:39.559 --> 00:14:42.320
<v Speaker 1>Okay, so that's encrypting one block. But for longer messages

297
00:14:42.320 --> 00:14:44.279
<v Speaker 1>we need modes of operation exactly.

298
00:14:44.559 --> 00:14:46.399
<v Speaker 2>A mode tells you how to use the block cipher

299
00:14:46.480 --> 00:14:49.679
<v Speaker 2>repeatedly for a longer message. Different modes have different security

300
00:14:49.720 --> 00:14:50.720
<v Speaker 2>properties and uses.

301
00:14:50.879 --> 00:14:54.360
<v Speaker 1>Like ECB Electronic Codebook, simple but flawed.

302
00:14:54.240 --> 00:14:57.279
<v Speaker 2>Very flawed for most uses, encrypts each block independently with

303
00:14:57.320 --> 00:15:00.440
<v Speaker 2>the same key. The big problem identical p plain text

304
00:15:00.480 --> 00:15:02.519
<v Speaker 2>blocks produce identical sofa text.

305
00:15:02.240 --> 00:15:03.679
<v Speaker 1>Block, which reveals patterns.

306
00:15:04.000 --> 00:15:07.200
<v Speaker 2>Totally encrypt an image with large areas of the same

307
00:15:07.240 --> 00:15:10.159
<v Speaker 2>color using ECB, and you can often still see the

308
00:15:10.159 --> 00:15:14.159
<v Speaker 2>outline of the original image in the ciphertext. Generally avoid

309
00:15:14.200 --> 00:15:18.919
<v Speaker 2>ECB unless you have very specific, short, non repeating data.

310
00:15:19.000 --> 00:15:20.720
<v Speaker 1>CBC cipher blockchaining is.

311
00:15:20.720 --> 00:15:24.759
<v Speaker 2>Better, much better. Before encrypting a plaintext block, you XORR

312
00:15:24.799 --> 00:15:27.679
<v Speaker 2>it with the previous ciphertext block for the first block,

313
00:15:27.720 --> 00:15:29.320
<v Speaker 2>you use a random IV, so.

314
00:15:29.240 --> 00:15:32.320
<v Speaker 1>Each ciphertext block depends on all previous plaintexts.

315
00:15:32.399 --> 00:15:36.399
<v Speaker 2>Right, it hides patterns, but the IV needs to be unpredictable.

316
00:15:36.600 --> 00:15:39.120
<v Speaker 2>If an attacker knows the IV, it can cause problems.

317
00:15:39.200 --> 00:15:42.159
<v Speaker 1>Then OFB and CTR modes they act like stream ciphers.

318
00:15:42.240 --> 00:15:44.639
<v Speaker 2>Yeah, they turn a block cipher into a stream cipher

319
00:15:44.799 --> 00:15:47.679
<v Speaker 2>OFB feeds the cipher's output back as input for the

320
00:15:47.679 --> 00:15:51.000
<v Speaker 2>next stage. CTR encrypts a counter value for each block

321
00:15:51.240 --> 00:15:55.480
<v Speaker 2>and xrrs that result. With the plaintext advantages, CTR especially

322
00:15:55.559 --> 00:15:58.799
<v Speaker 2>is efficient, can be parallelized, and doesn't need padding if

323
00:15:58.799 --> 00:16:01.120
<v Speaker 2>the message isn't a perfect multiple of the block size,

324
00:16:01.159 --> 00:16:02.200
<v Speaker 2>it's quite popular.

325
00:16:02.399 --> 00:16:04.759
<v Speaker 1>And the birthday paradox vulnerability, how does that apply?

326
00:16:05.120 --> 00:16:07.519
<v Speaker 2>The birthday paradox shows you don't need that many people

327
00:16:07.519 --> 00:16:09.120
<v Speaker 2>in a room to have a good chance of to

328
00:16:09.159 --> 00:16:12.840
<v Speaker 2>sharing a birthday. In crypto, with block size in after

329
00:16:12.879 --> 00:16:14.840
<v Speaker 2>about two en blocks, you have a decent chance of

330
00:16:14.879 --> 00:16:18.519
<v Speaker 2>seeing two identical ciphertext blocks a collision. What does that

331
00:16:18.559 --> 00:16:21.679
<v Speaker 2>collision mean depends on the mode. In ECB, it means

332
00:16:21.720 --> 00:16:24.799
<v Speaker 2>identical plaintext blocks. In other modes, it might leak some

333
00:16:24.879 --> 00:16:28.399
<v Speaker 2>information or enable certain attacks. It tells us the block

334
00:16:28.440 --> 00:16:30.600
<v Speaker 2>size needs to be large enough like EES is one

335
00:16:30.679 --> 00:16:33.360
<v Speaker 2>hundred and twenty eight bits to make two and two

336
00:16:33.519 --> 00:16:35.720
<v Speaker 2>a huge unachievable number of blocks.

337
00:16:35.799 --> 00:16:41.440
<v Speaker 1>Okay, moving beyond just confidentiality, authenticated encryption right.

338
00:16:41.519 --> 00:16:46.000
<v Speaker 2>This provides confidentiality and integrity authenticity together. Standard modes like

339
00:16:46.039 --> 00:16:49.879
<v Speaker 2>CBC don't inherently stop someone from tampering with the ciphertext.

340
00:16:50.080 --> 00:16:51.960
<v Speaker 1>How does authenticated encryption work?

341
00:16:52.200 --> 00:16:56.159
<v Speaker 2>Modes like GCM glows countermode combine an encryption mode like

342
00:16:56.200 --> 00:16:59.799
<v Speaker 2>CTR with a way to generate an authentication tag like GMAC.

343
00:17:00.320 --> 00:17:03.000
<v Speaker 2>This tag is calculated over the ciphertext and optionally some

344
00:17:03.080 --> 00:17:07.279
<v Speaker 2>associated data you want to protect but not encrypt like headers. Exactly.

345
00:17:07.640 --> 00:17:10.960
<v Speaker 2>The receiver decrypts and also recalculates the tag. If the

346
00:17:11.000 --> 00:17:13.880
<v Speaker 2>calculated tag doesn't match the received tag, they know the

347
00:17:13.960 --> 00:17:17.559
<v Speaker 2>data was tampered with or is an authentic GCM uses

348
00:17:17.599 --> 00:17:20.839
<v Speaker 2>a nonce number used ones for each encryption.

349
00:17:20.680 --> 00:17:22.960
<v Speaker 1>And GMC is just the authentication part.

350
00:17:23.160 --> 00:17:27.079
<v Speaker 2>Yes, if you only need integrity and authenticity and not confidentiality.

351
00:17:27.319 --> 00:17:33.319
<v Speaker 1>These modes using nonzs like GCM CCM ASGCM SIV. They

352
00:17:33.359 --> 00:17:34.880
<v Speaker 1>help against replay attacks too.

353
00:17:35.440 --> 00:17:37.960
<v Speaker 2>Yes, because the nonce should be unique for each message

354
00:17:38.000 --> 00:17:41.240
<v Speaker 2>under the same key. Replaying an old message with its

355
00:17:41.359 --> 00:17:44.880
<v Speaker 2>nons would likely be detected or processed differently, and using

356
00:17:44.920 --> 00:17:49.000
<v Speaker 2>nonzas means encrypting the same plaintext twice gives different ciphertexts,

357
00:17:49.119 --> 00:17:50.720
<v Speaker 2>hiding repetitions.

358
00:17:50.119 --> 00:17:52.240
<v Speaker 1>And they can resist chosen ciphertext attacks.

359
00:17:52.279 --> 00:17:55.359
<v Speaker 2>That's a major goal. In a chosen ciphertext attack, the

360
00:17:55.400 --> 00:17:59.200
<v Speaker 2>attacker gets to see plaintext for ciphertexts they choose authenticated

361
00:17:59.279 --> 00:18:01.880
<v Speaker 2>encryption modes boil this because if the attacker submits a

362
00:18:01.880 --> 00:18:05.640
<v Speaker 2>tampered ciphertext, the integrity check the tag verification fails, and

363
00:18:05.680 --> 00:18:09.279
<v Speaker 2>the decryption process refuses to output plaintext or signals and error.

364
00:18:09.599 --> 00:18:12.720
<v Speaker 2>It stops the attacker from learning through manipulated ciphertexts.

365
00:18:12.799 --> 00:18:15.000
<v Speaker 1>Okay, so we have all these tools, how do we

366
00:18:15.039 --> 00:18:16.759
<v Speaker 1>actually analyze if they're secure?

367
00:18:16.839 --> 00:18:21.279
<v Speaker 2>Good question. Modern crypto relies on computational security. We assume

368
00:18:21.319 --> 00:18:25.200
<v Speaker 2>the attacker has limited computing power. Security and analysis tries

369
00:18:25.240 --> 00:18:27.680
<v Speaker 2>to prove that breaking the system would take an infeasible

370
00:18:27.720 --> 00:18:29.240
<v Speaker 2>amount of computation.

371
00:18:29.039 --> 00:18:32.759
<v Speaker 1>Using theoretical models like adversaries with access.

372
00:18:32.480 --> 00:18:36.400
<v Speaker 2>To oracles exactly. An oracle is a hypothetical black box

373
00:18:36.480 --> 00:18:40.200
<v Speaker 2>the attacker can query like an encryption oracle, give it plaintext,

374
00:18:40.319 --> 00:18:43.960
<v Speaker 2>it returns ciphertext using the secret key. By seeing how

375
00:18:44.000 --> 00:18:46.960
<v Speaker 2>the oracle responds to chosen inputs, the attacker tries to

376
00:18:47.039 --> 00:18:50.160
<v Speaker 2>learn the key or break the system. Different oracles model

377
00:18:50.240 --> 00:18:51.880
<v Speaker 2>different attack capabilities, and we.

378
00:18:51.880 --> 00:18:54.480
<v Speaker 1>Talk about permutation families and function families.

379
00:18:54.599 --> 00:18:58.039
<v Speaker 2>Yeah, that's mathematical modeling. A block cipher with a fixed

380
00:18:58.160 --> 00:19:01.960
<v Speaker 2>key acts like a permutation, a scrambling of all possible blocks.

381
00:19:02.319 --> 00:19:05.279
<v Speaker 2>The family is the set of all possible permutations you

382
00:19:05.359 --> 00:19:08.759
<v Speaker 2>get by using all possible keys. We analyze how close

383
00:19:08.799 --> 00:19:11.759
<v Speaker 2>this family is to a family of truly random permutations

384
00:19:11.839 --> 00:19:15.720
<v Speaker 2>or functions. HMAC is an example where this analysis is used.

385
00:19:15.839 --> 00:19:18.480
<v Speaker 1>The goal is to limit the adversaries advantage. Right.

386
00:19:19.079 --> 00:19:21.599
<v Speaker 2>The advantage is how much better the adversary can do

387
00:19:21.680 --> 00:19:25.440
<v Speaker 2>at breaking the system, like distinguishing cipher output from random

388
00:19:25.759 --> 00:19:29.480
<v Speaker 2>or finding the key, compared to just guessing randomly. A

389
00:19:29.519 --> 00:19:33.920
<v Speaker 2>secure system keeps the maximum possible advantage negligibly small, even

390
00:19:33.960 --> 00:19:35.400
<v Speaker 2>for powerful adversaries.

391
00:19:35.480 --> 00:19:38.599
<v Speaker 1>The notes give an example of an insecure PRP Yeah.

392
00:19:38.400 --> 00:19:42.400
<v Speaker 2>A pseudorandom permutation. If the output is predictable from the input,

393
00:19:42.680 --> 00:19:46.279
<v Speaker 2>it's not behaving randomly, so it's insecure. A simple linear

394
00:19:46.359 --> 00:19:47.799
<v Speaker 2>relationship would be an example.

395
00:19:47.960 --> 00:19:50.640
<v Speaker 1>And double encryption isn't always much better if the underlying

396
00:19:50.680 --> 00:19:52.640
<v Speaker 1>cipher isn't a secure PRP.

397
00:19:52.680 --> 00:19:54.759
<v Speaker 2>Correct We saw that with meat in the middle on

398
00:19:54.839 --> 00:19:58.960
<v Speaker 2>double dies. If the cipher has exploitable structure just layering,

399
00:19:59.000 --> 00:20:01.319
<v Speaker 2>it might not help as much you'd hope. But if

400
00:20:01.319 --> 00:20:04.559
<v Speaker 2>it is a secure PIP, double encryption is generally.

401
00:20:04.160 --> 00:20:07.799
<v Speaker 1>Strong and predictable ivs in CBC mode a big.

402
00:20:07.519 --> 00:20:10.359
<v Speaker 2>Problem, huge problem. If the attacker can predict the iv

403
00:20:10.680 --> 00:20:13.839
<v Speaker 2>they can potentially control parts of the plaintext after decryption,

404
00:20:14.119 --> 00:20:17.960
<v Speaker 2>especially the first block. It breaks the confidentiality goals. Ivs

405
00:20:18.039 --> 00:20:20.000
<v Speaker 2>must be unpredictable, usually random.

406
00:20:20.160 --> 00:20:23.319
<v Speaker 1>There's even a formula shown for calculating adversary advantage in

407
00:20:23.440 --> 00:20:28.880
<v Speaker 1>aes GCMSIV based on nonce usage and message lengths. Looks

408
00:20:28.920 --> 00:20:30.000
<v Speaker 1>complicated it is.

409
00:20:30.359 --> 00:20:34.000
<v Speaker 2>Those formulas come from deep security proofs. They quantify the

410
00:20:34.039 --> 00:20:37.680
<v Speaker 2>security based on usage parameters, how many messages, how long

411
00:20:38.079 --> 00:20:42.599
<v Speaker 2>nonce collisions which should never happen. They give concrete security bounds.

412
00:20:42.640 --> 00:20:46.680
<v Speaker 1>Okay, let's switch to the attacker side. Cryptanalysis attacks on symmetric.

413
00:20:46.279 --> 00:20:48.359
<v Speaker 2>Ciphers, right, how do people try to break.

414
00:20:48.160 --> 00:20:50.559
<v Speaker 1>These things, route force is the obvious one.

415
00:20:50.680 --> 00:20:54.960
<v Speaker 2>Simplest idea, try every possible key feasible For small key

416
00:20:55.039 --> 00:20:58.799
<v Speaker 2>spaces like old dees fifty six bits, but for as

417
00:20:58.960 --> 00:21:02.359
<v Speaker 2>one twenty eight or higher, the number of keys is astronomical.

418
00:21:02.440 --> 00:21:05.559
<v Speaker 2>Twenty one to twenty eight is just impossibly large to search,

419
00:21:06.039 --> 00:21:08.599
<v Speaker 2>so brute force is usually not a practical threat for

420
00:21:08.680 --> 00:21:12.000
<v Speaker 2>modern ciphers. Dictionary attacks that target's weak passwords used to

421
00:21:12.039 --> 00:21:15.839
<v Speaker 2>derive keys. Attacker tries common words, names variations from a

422
00:21:15.839 --> 00:21:19.559
<v Speaker 2>dictionary list, hashes them, and compares against stolen password hashes.

423
00:21:19.960 --> 00:21:21.839
<v Speaker 2>Not an attack on the cipher itself, but on poor

424
00:21:21.920 --> 00:21:23.279
<v Speaker 2>key generation from passwords.

425
00:21:23.359 --> 00:21:25.599
<v Speaker 1>Meet and that'll be covered. What about time memory trade

426
00:21:25.640 --> 00:21:26.920
<v Speaker 1>offs like rainbow.

427
00:21:26.519 --> 00:21:30.720
<v Speaker 2>Tables clever idea. You pre compute a lot of data

428
00:21:30.759 --> 00:21:33.960
<v Speaker 2>to speed up the actual attack leader. Rainbow tables are

429
00:21:34.000 --> 00:21:37.680
<v Speaker 2>often used against password hashes. You precalculate chains of hashes

430
00:21:37.720 --> 00:21:40.759
<v Speaker 2>starting from possible passwords. You store only the start and

431
00:21:40.920 --> 00:21:42.119
<v Speaker 2>end points of these chains.

432
00:21:42.200 --> 00:21:44.200
<v Speaker 1>How does that help crack a specific hash?

433
00:21:44.480 --> 00:21:46.720
<v Speaker 2>You take the target hash, run it backwards through the

434
00:21:46.799 --> 00:21:49.519
<v Speaker 2>chain logic, and see if you hit an endpoint stored

435
00:21:49.519 --> 00:21:52.799
<v Speaker 2>in your table. If you do, you can regenerate the

436
00:21:52.880 --> 00:21:56.039
<v Speaker 2>chain from the corresponding start point to find the original password.

437
00:21:56.440 --> 00:21:59.200
<v Speaker 2>It trades storage space for the table for attack.

438
00:21:59.000 --> 00:22:01.319
<v Speaker 1>Time fifty than the really advanced stuff.

439
00:22:01.480 --> 00:22:01.799
<v Speaker 2>Yeah.

440
00:22:01.880 --> 00:22:05.000
<v Speaker 1>Linear and differential cryptanalysis.

441
00:22:04.200 --> 00:22:07.200
<v Speaker 2>Yeah, these are powerful techniques against the internal structure of

442
00:22:07.279 --> 00:22:12.720
<v Speaker 2>block ciphers. Linear cryptanalysis looks for statistical linear approximations relationships

443
00:22:12.759 --> 00:22:17.039
<v Speaker 2>involving XO R sums of plaintext bits, ciphertext bits, and

444
00:22:17.160 --> 00:22:19.839
<v Speaker 2>key bits that hold slightly more often than random chance.

445
00:22:20.000 --> 00:22:24.720
<v Speaker 2>And differential differential cryptanalysis studies how differences between pairs of

446
00:22:24.759 --> 00:22:29.119
<v Speaker 2>inputs propagate through the cipher rounds. You choose input pairs

447
00:22:29.160 --> 00:22:32.680
<v Speaker 2>with a specific difference and look at the probability distribution

448
00:22:32.839 --> 00:22:36.640
<v Speaker 2>of the output differences. Certain differences might occur more often

449
00:22:36.640 --> 00:22:40.680
<v Speaker 2>than expected, leaking information about the key. The difference distribution

450
00:22:40.880 --> 00:22:44.839
<v Speaker 2>table DDT analyzes this for the s boxes.

451
00:22:44.599 --> 00:22:46.519
<v Speaker 1>And even more advanced versions exist.

452
00:22:46.680 --> 00:22:50.599
<v Speaker 2>Yes, higher ordered differential looks at differences of differences. Algebraic

453
00:22:50.599 --> 00:22:53.640
<v Speaker 2>cryptanalysis tries to write the whole cipher as a system

454
00:22:53.759 --> 00:22:58.000
<v Speaker 2>of algebraic equations, often using boolean polynomials, and then solve

455
00:22:58.039 --> 00:23:02.000
<v Speaker 2>for the key. Superpoles are specific algebra of structures used

456
00:23:02.000 --> 00:23:02.960
<v Speaker 2>in some of these attacks.

457
00:23:03.000 --> 00:23:07.279
<v Speaker 1>Wow, okay, deep stuff. Let's witch paradigms completely. Now public

458
00:23:07.359 --> 00:23:09.359
<v Speaker 1>key cryptosystems, what's the big idea here?

459
00:23:09.599 --> 00:23:12.559
<v Speaker 2>The game changer is having two keys, a public key

460
00:23:12.599 --> 00:23:14.559
<v Speaker 2>you can share with anyone and a private key you

461
00:23:14.640 --> 00:23:17.880
<v Speaker 2>keep secret. No need to securely share a secret beforehand.

462
00:23:18.039 --> 00:23:19.960
<v Speaker 1>How does that work for sending a message?

463
00:23:20.160 --> 00:23:22.480
<v Speaker 2>Alice wants to send a secret message to Bob. She

464
00:23:22.640 --> 00:23:25.920
<v Speaker 2>encrypts it using Bob's public key. Only Bob with his

465
00:23:26.000 --> 00:23:29.160
<v Speaker 2>corresponding private key it can decrypt. It solves the key

466
00:23:29.160 --> 00:23:31.160
<v Speaker 2>distribution headache of symmetric.

467
00:23:30.720 --> 00:23:34.319
<v Speaker 1>Crypto and RSA is the classic example based on factoring

468
00:23:34.359 --> 00:23:35.359
<v Speaker 1>large numbers exactly.

469
00:23:35.440 --> 00:23:37.920
<v Speaker 2>Security relies on it being really hard to factor a

470
00:23:38.000 --> 00:23:41.200
<v Speaker 2>large number n into its two large prime factors P

471
00:23:41.279 --> 00:23:44.839
<v Speaker 2>and Q. Key generation involves picking P and q, calculating mpq,

472
00:23:45.240 --> 00:23:49.200
<v Speaker 2>and finding exponents E public and D private that have

473
00:23:49.240 --> 00:23:51.799
<v Speaker 2>a special mathematical relationship involving P and Q.

474
00:23:52.000 --> 00:23:55.720
<v Speaker 1>Encryption is message m to the power of E mod n.

475
00:23:55.920 --> 00:23:57.920
<v Speaker 2>Yep cels me mod n, and.

476
00:23:57.880 --> 00:24:00.799
<v Speaker 1>Decryption is ciphertech C to the power of D mod en.

477
00:24:00.920 --> 00:24:03.920
<v Speaker 2>Correct mlcd mod n. The math just works.

478
00:24:03.720 --> 00:24:07.559
<v Speaker 1>Out elegant and cot DRSA speeds up decryption.

479
00:24:07.759 --> 00:24:10.279
<v Speaker 2>Yes, using the Chinese remainder theorem, it breaks the CD

480
00:24:10.359 --> 00:24:13.480
<v Speaker 2>mod end calculation into smaller calculations modp and mod q

481
00:24:13.799 --> 00:24:15.759
<v Speaker 2>than combines the results much faster.

482
00:24:15.960 --> 00:24:18.640
<v Speaker 1>Is basic RSA secure enough on its own? The notes

483
00:24:18.680 --> 00:24:20.640
<v Speaker 1>mentioned semantic security issues.

484
00:24:20.640 --> 00:24:25.960
<v Speaker 2>Right, plaintextbook, RSA isn't semantically secure. Encrypting the same message

485
00:24:26.000 --> 00:24:30.960
<v Speaker 2>twice gives the same ciphertext. An attacker could guess possible messages,

486
00:24:31.319 --> 00:24:33.640
<v Speaker 2>encrypt them with the public key, and see if they

487
00:24:33.680 --> 00:24:35.359
<v Speaker 2>match the intercepted ciphertext.

488
00:24:35.440 --> 00:24:36.359
<v Speaker 1>So how do we fix that?

489
00:24:36.599 --> 00:24:40.759
<v Speaker 2>Padding schemes? You add randomness to the message before RSA encryption.

490
00:24:41.160 --> 00:24:45.319
<v Speaker 2>RSAPSS is a modern standard for this. It ensures encrypting

491
00:24:45.359 --> 00:24:49.240
<v Speaker 2>the same message twice gives different results, crucial for real

492
00:24:49.240 --> 00:24:50.119
<v Speaker 2>world security.

493
00:24:50.279 --> 00:24:52.279
<v Speaker 1>And RSA can do digital signatures too.

494
00:24:52.440 --> 00:24:55.200
<v Speaker 2>Yes, you just reverse the keys to sign You hash

495
00:24:55.279 --> 00:24:58.559
<v Speaker 2>the message, then encrypt the hash with your private key.

496
00:24:58.720 --> 00:25:01.960
<v Speaker 2>Anyone can verify by decrypting the signature with your public

497
00:25:02.039 --> 00:25:04.240
<v Speaker 2>key and checking if it matches the hash of the

498
00:25:04.240 --> 00:25:05.240
<v Speaker 2>message they received.

499
00:25:05.599 --> 00:25:08.599
<v Speaker 1>Other public key systems mentioned are elgamol and DSA.

500
00:25:08.799 --> 00:25:11.880
<v Speaker 2>Elgamol is another option often for encryption based on a

501
00:25:11.920 --> 00:25:15.599
<v Speaker 2>different hard problem, the discrete logarithm problem DLP in a

502
00:25:15.640 --> 00:25:20.079
<v Speaker 2>finite field DSA digital signature algorithm is specifically for signatures.

503
00:25:20.160 --> 00:25:23.960
<v Speaker 2>Also based on DLP, Schnor signatures are another DLP based

504
00:25:24.000 --> 00:25:26.039
<v Speaker 2>signature scheme known for efficiency.

505
00:25:26.279 --> 00:25:28.960
<v Speaker 1>Are there specific attacks against RSA itself.

506
00:25:29.200 --> 00:25:33.079
<v Speaker 2>Yes, things like choosing a small private exponent can sometimes

507
00:25:33.079 --> 00:25:36.160
<v Speaker 2>make it vulnerable, or the common modulus attack. If two

508
00:25:36.200 --> 00:25:38.200
<v Speaker 2>people use the same n but different ease, and you

509
00:25:38.319 --> 00:25:41.079
<v Speaker 2>encrypt the same message to both, it might be breakable.

510
00:25:41.799 --> 00:25:43.680
<v Speaker 2>Proper key generation avoids these.

511
00:25:43.839 --> 00:25:46.880
<v Speaker 1>Okay, diffy Hillman key exchange that's about agreeing on.

512
00:25:46.839 --> 00:25:50.480
<v Speaker 2>A key exactly allows two parties, Alice and Bob to

513
00:25:50.599 --> 00:25:53.839
<v Speaker 2>establish a shared secret key over a public channel without

514
00:25:53.880 --> 00:25:56.599
<v Speaker 2>setting the key itself. It's amazing, also based on the

515
00:25:56.599 --> 00:25:57.880
<v Speaker 2>discrete logarithm problem.

516
00:25:57.960 --> 00:25:58.920
<v Speaker 1>How does it work? Roughly?

517
00:25:59.119 --> 00:26:01.799
<v Speaker 2>They agree publicly on a prime P and a generator G.

518
00:26:02.039 --> 00:26:05.240
<v Speaker 2>Alice pick secret A, Bob picks secret B. Alice sends

519
00:26:05.279 --> 00:26:08.839
<v Speaker 2>gay mod P to Bob. Bob sends gb MODP to Alice.

520
00:26:09.160 --> 00:26:12.160
<v Speaker 2>Alice calculates do B MODP both get the same results

521
00:26:12.160 --> 00:26:14.000
<v Speaker 2>GB MODP. That's their shared secret.

522
00:26:14.319 --> 00:26:16.920
<v Speaker 1>Ingenius but vulnerable demand in the middle.

523
00:26:17.119 --> 00:26:20.640
<v Speaker 2>The basic protocol is yes. If Mallory sits between Alice

524
00:26:20.640 --> 00:26:24.160
<v Speaker 2>and Bob, she can intercept their public values j JB

525
00:26:24.640 --> 00:26:27.680
<v Speaker 2>and substitute her own GM. She does a separate dage

526
00:26:27.720 --> 00:26:31.160
<v Speaker 2>exchange with Alice getting secret GAM, and another with Bob

527
00:26:31.359 --> 00:26:34.440
<v Speaker 2>getting secret tobm Alice thinks she's talking to Bob, Bob

528
00:26:34.480 --> 00:26:36.559
<v Speaker 2>thinks he's talking to Alice, but both are actually talking

529
00:26:36.559 --> 00:26:39.000
<v Speaker 2>to Mallory, who relays messages reading everything.

530
00:26:39.279 --> 00:26:40.880
<v Speaker 1>So authentication is needed.

531
00:26:40.759 --> 00:26:44.039
<v Speaker 2>Absolutely critical. You need to verify who you're doing the

532
00:26:44.079 --> 00:26:47.799
<v Speaker 2>exchange with, usually using digital signatures or pre shared keys,

533
00:26:48.279 --> 00:26:50.960
<v Speaker 2>before you trust the resulting shared secret.

534
00:26:51.279 --> 00:26:55.759
<v Speaker 1>Okay, Now, Elliptic curve cryptography ECC, what's the big deal? There?

535
00:26:56.440 --> 00:26:59.279
<v Speaker 2>Main advantage much smaller keys for the same level of

536
00:26:59.279 --> 00:27:02.200
<v Speaker 2>security compared to RSA or traditional Diffie Hellman.

537
00:27:02.319 --> 00:27:02.559
<v Speaker 1>Why.

538
00:27:02.920 --> 00:27:05.839
<v Speaker 2>It's based on the math of elliptic curves over finite fields.

539
00:27:06.039 --> 00:27:10.200
<v Speaker 2>The hard problem is the elliptic curve discrete logarithm problem ECDLP,

540
00:27:10.519 --> 00:27:13.119
<v Speaker 2>which seems to be harder than factoring or the standard

541
00:27:13.160 --> 00:27:14.720
<v Speaker 2>DLP for the same key size.

542
00:27:14.759 --> 00:27:19.880
<v Speaker 1>So smaller keys mean faster operations, less bandwidth, good for mobile.

543
00:27:19.680 --> 00:27:23.079
<v Speaker 2>Devices exactly big benefits and resource constrained environments.

544
00:27:23.359 --> 00:27:25.680
<v Speaker 1>An elyptic curve isn't like a geometric ellipse.

545
00:27:25.799 --> 00:27:28.720
<v Speaker 2>No, it's defined by a specific cubic equation like y

546
00:27:28.799 --> 00:27:32.759
<v Speaker 2>two equals three plus x plus b. The points xy

547
00:27:32.880 --> 00:27:35.720
<v Speaker 2>satisfying this over a finite field plus a point at

548
00:27:35.799 --> 00:27:39.039
<v Speaker 2>infinity form a group. You can define point addition and

549
00:27:39.079 --> 00:27:43.480
<v Speaker 2>scaler multiplication repeated edition on these points, and.

550
00:27:43.400 --> 00:27:45.960
<v Speaker 1>That math forms the basis for ECC crypto.

551
00:27:46.119 --> 00:27:49.440
<v Speaker 2>Yes, you can do diffy Hellman on elliptic curves ECDH,

552
00:27:49.720 --> 00:27:55.200
<v Speaker 2>Digital Signatures e CDSA and integrated encryption schemes ecees same

553
00:27:55.240 --> 00:27:58.839
<v Speaker 2>concepts as before, but using elliptic curve point operations instead

554
00:27:58.880 --> 00:28:00.359
<v Speaker 2>of modular exponentiation.

555
00:28:00.720 --> 00:28:03.839
<v Speaker 1>The notes even show point doubling on a curve looks involved.

556
00:28:03.920 --> 00:28:06.759
<v Speaker 2>The formulas can look messy, but they're just the rules

557
00:28:06.759 --> 00:28:08.240
<v Speaker 2>for the group operation on the curve.

558
00:28:08.319 --> 00:28:08.680
<v Speaker 1>Points.

559
00:28:09.000 --> 00:28:11.960
<v Speaker 2>Point doubling, adding a point to itself, and point addition

560
00:28:12.039 --> 00:28:14.839
<v Speaker 2>are the core operations needed for scaler multiplication, which is

561
00:28:14.839 --> 00:28:15.960
<v Speaker 2>how you use the private key.

562
00:28:16.039 --> 00:28:18.359
<v Speaker 1>Okay, we've covered a ton of crypto concepts. Let's move

563
00:28:18.400 --> 00:28:22.920
<v Speaker 1>to part two. Practical implementation. Starting with key management seems crucial,

564
00:28:22.960 --> 00:28:25.319
<v Speaker 1>but maybe overlooked hugely crucial.

565
00:28:25.400 --> 00:28:27.519
<v Speaker 2>You can have the best algorithms in the world, but

566
00:28:27.559 --> 00:28:30.839
<v Speaker 2>if your keys are handled badly generated, weekly stored, and

567
00:28:30.839 --> 00:28:35.319
<v Speaker 2>securely lost stolen, the whole system fails. Key management is

568
00:28:35.319 --> 00:28:41.319
<v Speaker 2>the entire life cycle generation, storage, distribution, use, backup, revocation, destruction.

569
00:28:41.519 --> 00:28:42.920
<v Speaker 1>And there are many types of keys.

570
00:28:42.960 --> 00:28:46.640
<v Speaker 2>Oh yeah, symmetric encryption keys, key wrapping keys to encrypt

571
00:28:46.640 --> 00:28:51.039
<v Speaker 2>other keys, master keys, key derivation keys, and mac keys,

572
00:28:51.119 --> 00:28:54.680
<v Speaker 2>key agreement keys, signature keys, verification keys. Each has a

573
00:28:54.720 --> 00:28:56.960
<v Speaker 2>specific job and needs managing properly.

574
00:28:57.240 --> 00:28:59.960
<v Speaker 1>Key derivation functions kdfs help general.

575
00:29:00.599 --> 00:29:04.559
<v Speaker 2>Yes, KDS takes some initial secret material like a password

576
00:29:04.680 --> 00:29:07.640
<v Speaker 2>or a Divvyhulman shared secret, and derive one or more

577
00:29:07.680 --> 00:29:11.000
<v Speaker 2>strong cryptographic keys from it. They often add salt and

578
00:29:11.079 --> 00:29:14.240
<v Speaker 2>use iteration to make the derived keys resistant to attacks,

579
00:29:14.680 --> 00:29:17.559
<v Speaker 2>even if the initial secret isn't perfectly random. The note

580
00:29:17.599 --> 00:29:21.119
<v Speaker 2>showed different KDF modes like counter feedback double pipelined, so.

581
00:29:21.160 --> 00:29:23.799
<v Speaker 1>Kdfs are used for establishing symmetric keys too often.

582
00:29:23.880 --> 00:29:26.799
<v Speaker 2>Yes, you might establish a shared secret using DH, then

583
00:29:26.880 --> 00:29:29.119
<v Speaker 2>run that secret through a KDF to get the actual

584
00:29:29.200 --> 00:29:31.839
<v Speaker 2>encryption and MSS keys for your session.

585
00:29:31.920 --> 00:29:34.839
<v Speaker 1>And generating RSA or ECC key pairs.

586
00:29:35.160 --> 00:29:38.680
<v Speaker 2>RSA involves finding those large primes P and q, then

587
00:29:38.720 --> 00:29:42.880
<v Speaker 2>calculating N, E and D. ECC involves picking curve parameters

588
00:29:42.920 --> 00:29:45.839
<v Speaker 2>in a base point, then choosing a random private key

589
00:29:46.160 --> 00:29:49.559
<v Speaker 2>an integer, and computing the public KeyPoint via scalar multiplication.

590
00:29:50.160 --> 00:29:53.200
<v Speaker 2>Both need good randomness and careful parameter selection.

591
00:29:53.519 --> 00:29:58.880
<v Speaker 1>Key distribution Centers KDCs, like Curbaro's centralized key management.

592
00:29:58.519 --> 00:30:01.960
<v Speaker 2>In a network setting. Yes, Carbero's uses a trusted KDC.

593
00:30:02.480 --> 00:30:06.160
<v Speaker 2>A client authenticates to the kdc's authentication server AS using

594
00:30:06.160 --> 00:30:08.759
<v Speaker 2>a long term secret like derived from a password. The

595
00:30:08.799 --> 00:30:13.240
<v Speaker 2>AS gives back a ticket granting ticket TGT to access

596
00:30:13.240 --> 00:30:15.839
<v Speaker 2>a specific service. The client presents the TGT to the

597
00:30:15.920 --> 00:30:19.759
<v Speaker 2>kdc's ticket granting server TGS, asking for a service ticket.

598
00:30:20.279 --> 00:30:22.599
<v Speaker 2>The TGS issues a ticket encrypted for the service, plus

599
00:30:22.640 --> 00:30:24.920
<v Speaker 2>a session key for the client and service. The client

600
00:30:24.920 --> 00:30:27.079
<v Speaker 2>presents the ticket to the service. They both extract a

601
00:30:27.079 --> 00:30:29.319
<v Speaker 2>session key and can communicate securely.

602
00:30:29.440 --> 00:30:33.240
<v Speaker 1>Streamlines things reduces password sending, but still needs authentication. For

603
00:30:33.279 --> 00:30:34.559
<v Speaker 1>Diffie Helman if used.

604
00:30:34.559 --> 00:30:38.960
<v Speaker 2>Yes, even if you use static Diffie Hellman keys DH static,

605
00:30:39.359 --> 00:30:42.720
<v Speaker 2>you must authenticate the exchange somehow, maybe with certificates or

606
00:30:42.720 --> 00:30:46.160
<v Speaker 2>signatures to prevent those man in the middle attacks. Basic

607
00:30:46.240 --> 00:30:48.519
<v Speaker 2>DH isn't enough on its own, which.

608
00:30:48.319 --> 00:30:52.920
<v Speaker 1>Brings us to digital certificates and PKI public key infrastructure.

609
00:30:53.200 --> 00:30:54.599
<v Speaker 1>How do they establish trust?

610
00:30:55.079 --> 00:30:59.319
<v Speaker 2>Certificates Link a public key to an identity, person, server, etc.

611
00:31:00.000 --> 00:31:04.000
<v Speaker 2>A Certificate authority CAA verifies the identity and then digitally

612
00:31:04.119 --> 00:31:07.079
<v Speaker 2>signs the certificate containing the public key and identity info

613
00:31:07.240 --> 00:31:08.680
<v Speaker 2>using the CAA's private key.

614
00:31:08.799 --> 00:31:09.880
<v Speaker 1>So I trust the CAA.

615
00:31:09.920 --> 00:31:12.799
<v Speaker 2>You can verify the CAA's signature on the certificate using

616
00:31:12.839 --> 00:31:15.319
<v Speaker 2>the CAA's public key. If it's valid, you trust that

617
00:31:15.359 --> 00:31:17.839
<v Speaker 2>the public key in the certificate really belongs to the

618
00:31:17.960 --> 00:31:19.720
<v Speaker 2>entity named in it. It builds a web of.

619
00:31:19.680 --> 00:31:22.960
<v Speaker 1>Trust, and they're different CAA structures single, two tier, three

620
00:31:22.960 --> 00:31:23.519
<v Speaker 1>tier right.

621
00:31:23.559 --> 00:31:27.640
<v Speaker 2>Single tier is simple but risky. Root CAA compromises catastrophic.

622
00:31:28.119 --> 00:31:31.440
<v Speaker 2>Two tier has intermediate CAAs issuing certificates protected by the

623
00:31:31.519 --> 00:31:35.599
<v Speaker 2>root CAA. Three tier adds more layers, often for policy enforcement.

624
00:31:36.119 --> 00:31:39.240
<v Speaker 2>More tiers give more flexibility and limit the root CAA's exposure,

625
00:31:39.279 --> 00:31:40.240
<v Speaker 2>but add complexity.

626
00:31:40.559 --> 00:31:42.400
<v Speaker 1>How do we know if a certificate is still good

627
00:31:42.519 --> 00:31:45.720
<v Speaker 1>even before it expires? What if the key got stolen?

628
00:31:46.200 --> 00:31:51.599
<v Speaker 2>Good point. CAAs maintain certificate revocation lists CRLs, lists of

629
00:31:51.680 --> 00:31:55.279
<v Speaker 2>serial numbers of certificates that are no longer valid. Browsers

630
00:31:55.319 --> 00:31:57.559
<v Speaker 2>or applications are supposed to check these CRLs.

631
00:31:57.799 --> 00:32:00.000
<v Speaker 1>That sounds slow downloading big lists.

632
00:32:00.319 --> 00:32:05.279
<v Speaker 2>It can be The alternative is OCSP Online Certificate Status protocol.

633
00:32:05.559 --> 00:32:09.279
<v Speaker 2>The application directly queries an OCSP responder run by the

634
00:32:09.319 --> 00:32:13.079
<v Speaker 2>CAA about a specific certificate status. It's faster for checking

635
00:32:13.079 --> 00:32:13.680
<v Speaker 2>one cert.

636
00:32:13.640 --> 00:32:18.400
<v Speaker 1>And TLS for secure web connections. HTTPS uses all this heavily.

637
00:32:18.480 --> 00:32:21.200
<v Speaker 2>When your browser connects to an HTTPS site, the server

638
00:32:21.279 --> 00:32:24.680
<v Speaker 2>sends its certificate. Your browser verifies the signature, tracing it

639
00:32:24.720 --> 00:32:27.640
<v Speaker 2>back to a trusted root. CAA checks the expiration date,

640
00:32:27.759 --> 00:32:31.599
<v Speaker 2>checks for revocation CROCSP, and make sure the name matches.

641
00:32:32.039 --> 00:32:34.599
<v Speaker 2>If all checks out, the browser trusts the server's.

642
00:32:34.359 --> 00:32:37.000
<v Speaker 1>Public key and uses that public key for for the.

643
00:32:37.000 --> 00:32:40.519
<v Speaker 2>Key exchange part of the TLS handshake. They use the

644
00:32:40.559 --> 00:32:44.119
<v Speaker 2>server's public key or Diffie Hellman, authenticated by the certificate

645
00:32:44.359 --> 00:32:47.640
<v Speaker 2>to establish a symmetric session p for encrypting the actual

646
00:32:47.680 --> 00:32:51.240
<v Speaker 2>website data. The key share extension helps negotiate the specifics

647
00:32:51.240 --> 00:32:53.000
<v Speaker 2>of this exchange and cerberos.

648
00:32:53.480 --> 00:32:57.599
<v Speaker 1>Besides key distribution is also just a general authentication system.

649
00:32:57.720 --> 00:33:01.920
<v Speaker 2>Yes, its main goal is authentication in its network centralized secrets.

650
00:33:02.000 --> 00:33:06.319
<v Speaker 2>Ticket based access avoid sending passwords repeatedly. Strong system, but

651
00:33:06.359 --> 00:33:09.000
<v Speaker 2>depends heavily on the KDC being available and secure and

652
00:33:09.079 --> 00:33:10.359
<v Speaker 2>requires unique names.

653
00:33:10.680 --> 00:33:15.559
<v Speaker 1>Okay, last practical area. Generating pseudorandom and prime numbers. We

654
00:33:15.599 --> 00:33:17.799
<v Speaker 1>need randomness everywhere and primes for.

655
00:33:18.039 --> 00:33:23.039
<v Speaker 2>RSA absolutely good randomness. High entropy is the foundation. PRNGs

656
00:33:23.119 --> 00:33:26.240
<v Speaker 2>need to be seated with entropy. We need drbg's deterministic

657
00:33:26.319 --> 00:33:30.000
<v Speaker 2>random bit generators based on cryptoprimitives like hashes or block

658
00:33:30.039 --> 00:33:33.079
<v Speaker 2>ciphers to generate long sequences from a good seed, and.

659
00:33:33.039 --> 00:33:35.160
<v Speaker 1>The period of a PRNG needs to be long.

660
00:33:35.079 --> 00:33:38.319
<v Speaker 2>Very long, ideally astronomical. If the sequence repeats too soon,

661
00:33:38.519 --> 00:33:40.200
<v Speaker 2>it's predictable and insecure.

662
00:33:40.400 --> 00:33:42.079
<v Speaker 1>Entropy measures the unpredictability.

663
00:33:42.400 --> 00:33:46.359
<v Speaker 2>Yes, more entropy in your random source means more unpredictability.

664
00:33:46.920 --> 00:33:50.279
<v Speaker 2>Drbgs have a security strength related to the entropy of their.

665
00:33:50.200 --> 00:33:53.799
<v Speaker 1>Seed and prime number generation. Not just picking random numbers.

666
00:33:53.960 --> 00:33:57.559
<v Speaker 2>No, you generate a large random odd number, then test

667
00:33:57.599 --> 00:34:00.720
<v Speaker 2>if its prime trial division is too slow. We use

668
00:34:00.759 --> 00:34:02.160
<v Speaker 2>probabilistic tests like.

669
00:34:02.200 --> 00:34:04.960
<v Speaker 1>Mil Rabin probabilistic, not guaranteed.

670
00:34:05.000 --> 00:34:08.239
<v Speaker 2>Miler raven gives very high probability run at enough times,

671
00:34:08.280 --> 00:34:10.559
<v Speaker 2>and the chance of a composite number slipping through is

672
00:34:10.599 --> 00:34:15.000
<v Speaker 2>prime becomes vanishingly small, small enough for cryptographic purposes. There

673
00:34:15.000 --> 00:34:19.960
<v Speaker 2>are deterministic tests like aks, but often slower. Sometimes specific

674
00:34:20.079 --> 00:34:22.519
<v Speaker 2>strong primes are generated for extra resilience.

675
00:34:22.639 --> 00:34:25.800
<v Speaker 1>Okay. The source material also has review questions and an

676
00:34:25.800 --> 00:34:27.320
<v Speaker 1>index helpful for learning.

677
00:34:27.360 --> 00:34:31.800
<v Speaker 2>Definitely, exercises help solidify understanding questions about key usage, hash

678
00:34:31.840 --> 00:34:34.559
<v Speaker 2>collisions diffy Hellman. They test if you grasp with the concepts,

679
00:34:34.960 --> 00:34:37.840
<v Speaker 2>and a good index is invaluable for quickly finding details

680
00:34:37.840 --> 00:34:41.079
<v Speaker 2>on specific topics like AES or boot force attacks.

681
00:34:41.159 --> 00:34:43.360
<v Speaker 1>Well, this has been quite the journey through cryptography and

682
00:34:43.400 --> 00:34:46.239
<v Speaker 1>security from the core math to real world systems.

683
00:34:46.519 --> 00:34:50.840
<v Speaker 2>It really has, and it's amazing how these concepts, often invisible,

684
00:34:51.039 --> 00:34:53.320
<v Speaker 2>underpins so much of our digital safety.

685
00:34:53.639 --> 00:34:57.320
<v Speaker 1>It's complex, no doubt, but hopefully listeners now have a

686
00:34:57.320 --> 00:34:59.559
<v Speaker 1>better feel for what's going on behind the scenes, what

687
00:34:59.639 --> 00:35:02.719
<v Speaker 1>makes these technologies secure or potentially insecure?

688
00:35:02.880 --> 00:35:05.480
<v Speaker 2>Right, Which leads to maybe a final thought for you,

689
00:35:05.639 --> 00:35:10.159
<v Speaker 2>the listener. Given how fast threats and defenses evolve in

690
00:35:10.199 --> 00:35:14.599
<v Speaker 2>this space, what's our responsibility as individuals as organizations to

691
00:35:14.679 --> 00:35:17.400
<v Speaker 2>keep learning and adapting our own security practices.

692
00:35:17.559 --> 00:35:20.000
<v Speaker 1>That's a really important question something to think about. We

693
00:35:20.079 --> 00:35:22.679
<v Speaker 1>definitely encourage you to dig deeper into the source materials

694
00:35:22.760 --> 00:35:24.599
<v Speaker 1>if specific topics caught your interest.

695
00:35:24.920 --> 00:35:27.480
<v Speaker 2>Yeah, this deep dive is really just scratching the surface

696
00:35:27.480 --> 00:35:30.800
<v Speaker 2>of a fascinating and vital field. There's always more to learn.
