Skip to content

Commit 4db5d46

Browse files
committed
Compiling all the lectures.
1 parent e20c352 commit 4db5d46

6 files changed

+2066
-0
lines changed

6.857/4-1.tex

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
\answer{4-1. Discreteness is the Better Part of Valor}
2+
3+
\begin{enumerate}[(a)]
4+
5+
\item We will use an algorithm that uses a hash table in order to take the space and time requirements of the discrete log problem down to $\theta(\sqrt{k})$. This will rely on the assumption that hash tables have expected $\theta(1)$ read and write time (which is a legitimate assumption for reasonable hash functions).
6+
7+
Consider the following algorithm. First, we store $g^i$ for values of $i$ in the range $[0, m = 2^(k/2)]$. Then, for each $j$ in the same range, we check to see if $y (g^{-m})^j$ exists in the table. Formally, we have the following algorithm:
8+
9+
\begin{verbatim}
10+
11+
def discrete_log(p, g, y):
12+
m = 2^(k/2)
13+
g_results = {}
14+
for i in range(0, m):
15+
g_results[g^i % p] = i
16+
17+
k = y
18+
for j in range(0, m):
19+
if k % p in g_results:
20+
i = g_results[k % p]
21+
return (i,j)
22+
else:
23+
k = k*inverse(g^m)
24+
\end{verbatim}
25+
26+
Here we see that if any pair $(i,j)$ is such that $g^i (g^{2^(k/2)})^j \equiv g^{i + j (2^{k/2})} \equiv y \pmod{p}$, then we will find it with this algorithm. This is because all possible combinations of $i$ and $j$ are iterated over in this algorithm, with the first loop iterating over all possible values of $i$ and the second loop iterating over all possible values of $j$.
27+
28+
If any particular pair $(i,j)$ could be the correct pair for the discrete log problem with equal probability, then the expected number of pairs we must go through is $2^k$. However, we only need a runtime of $2^{k/2} (1 + 1/2)$ because we expect to finish halfway through the second loop. This is because we must complete the first loop in any given call to the \emph{discrete\_log} function, but each $j$ will have probability $1/m$ of hitting a correct result.
29+
30+
The total space is given by the number of items in the hash table, which is $2^{k/2}$.
31+
32+
\item To solve, this problem, we noticed that we could solve two smaller but related problems. We noticed that computing $z^s$ or $z^r$ was equivalent to computing $g^{sa}$ and $h^{rb}$ respectively. This is because we have $g^a h^b \equiv z \pmod{p}$ and that $g^a h^b = (g_1^{s})^a (g_1^r)^b = g_1^{sa + rb}$. Now, this implies for $z^s$ (and equivalently for $z^r$ by symmetry):
33+
34+
\begin{eqnarray}
35+
z^s &\equiv& (g_1^{sa+rb})^s \pmod{p} \\
36+
&\equiv& g_0^{2(sa + rb)s} \pmod{p} \\
37+
&\equiv& g_0^{2sa} (g_0^{2rs})^b \pmod{p} \\
38+
&\equiv& (g_0^{2})^{sa} 1^b \pmod{p} \\
39+
&\equiv& (g_1^{s})^a \pmod{p} \\
40+
&\equiv& g^{sa} \pmod{p}
41+
\end{eqnarray}
42+
43+
Thus, we can take discrete logarithms for $x$ in the congruence $g^{x} \equiv z^s \pmod{p}$, since we know $x$ only takes on a total of $r$ values. Because of this, we only need to use an algorithm which iterates over the group with $r$ elements, which is relatively fast. Then, once we have found $x$, we can obtain $a$ by taking $a \equiv x s^{-1} \equiv s a s^{-1} \pmod{r}$. A symmetric argument can be applied to $b$.
44+
45+
To solve the congruence $g^x \equiv z^s \pmod{p}$, we use a fast discrete log algorithm called baby-step giant-step. The algorithm iterates through all values of $g^{i}$ for $i \in [0, \sqrt{r}]$, and stores them in a hash table. Then, the algorithm checks if any values of $z^s g^{-j \sqrt{r}}$ are in the hash table for $j \in [0, \sqrt{r}]$. This works because you can decompose $x = jr + i$. This algorithm requires $O(\sqrt{r})$ time and space complexity when computing $g^x \equiv z^s \pmod{p}$ and $O(\sqrt{s})$ time and space complexity when $g^y \equiv z^r \pmod{p}$. Since $r,s \approx \sqrt{p}$, we can see that the total time for our algorithm is $O(\sqrt{s} + \sqrt{r}) = O(\sqrt{\sqrt{p}}) = O(p^{1/4})$. Note we could have used any discrete logarithm algorithm which computes relatively quickly (such as Pollard's Rho or Brent's algorithm), but we decided on the baby-step giant-step because of its ease of implementation.
46+
47+
Our group's number is $z = 872037443554961401$ and our results are given below:
48+
\begin{table}[h!]
49+
\begin{tabular}{c | c c}
50+
$i$ & $a$ & $b$ \\
51+
\hline \hline
52+
40 & 44833 & 308847 \\
53+
48 & 3972467 & 2996205 \\
54+
56 & 97799205 & 6351201 \\
55+
64 & 1789544324 & 1110942352 \\
56+
72 & 14241181606 & 27418647169
57+
\end{tabular}
58+
\end{table}
59+
60+
\end{enumerate}

6.857/compile_lectures.rb

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
MIN_LECTURE = 1
2+
MAX_LECTURE = 17
3+
OUTPUT_LECTURE_NAME = 'lectures1-17.tex'
4+
5+
def compile_lectures(output_lecture_name)
6+
all_contents = []
7+
MIN_LECTURE.upto(MAX_LECTURE) do |lecture_number|
8+
lecture_name = "lecture#{lecture_number}.tex"
9+
contents = read_lecture(lecture_name)
10+
11+
all_contents << pagebreak(lecture_number)
12+
all_contents << contents
13+
end
14+
15+
output = all_contents.join("\n")
16+
17+
File.open(output_lecture_name, 'w') do |file|
18+
file.write(output)
19+
end
20+
end
21+
22+
def pagebreak(lecture_number)
23+
"\\newpage\n\\Large{Lecture #{lecture_number}}"
24+
end
25+
26+
def read_lecture(lecture_name)
27+
File.open(lecture_name) do |file|
28+
scan_and_parse_contents(file.read)
29+
end
30+
end
31+
32+
def scan_and_parse_contents(contents)
33+
actual_content = contents.scan(/\\begin{document}(.*)\\end{document}/m)
34+
actual_content[0]
35+
end
36+
37+
compile_lectures(OUTPUT_LECTURE_NAME)

6.857/lectures1-17.aux

+152
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
\relax
2+
\@writefile{toc}{\contentsline {section}{\tocsection {}{1}{Introduction to Cryptography}}{1}}
3+
\@writefile{toc}{\contentsline {section}{\tocsection {}{2}{Security Policies}}{1}}
4+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.1}{Examples}}{1}}
5+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.2}{Types of Policies}}{1}}
6+
\@writefile{toc}{\contentsline {section}{\tocsection {}{3}{Security Mechanisms}}{1}}
7+
\@writefile{toc}{\contentsline {section}{\tocsection {}{4}{Adversaries}}{2}}
8+
\@writefile{toc}{\contentsline {section}{\tocsection {}{5}{Vulnerability}}{2}}
9+
\@writefile{toc}{\contentsline {section}{\tocsection {}{6}{Introduction to Cryptography}}{3}}
10+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.1}{Security Mechanisms}}{3}}
11+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.2}{Principles}}{3}}
12+
\@writefile{toc}{\contentsline {section}{\tocsection {}{7}{Growth of Cryptography}}{3}}
13+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.1}{Early Cryptography}}{3}}
14+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.2}{World War I}}{3}}
15+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.3}{Alan Turing}}{4}}
16+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.4}{Claude Shannon}}{4}}
17+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.5}{DES - U.S. Data Encryption Standard}}{4}}
18+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.6}{Computational Complexity}}{4}}
19+
\@writefile{toc}{\contentsline {section}{\tocsection {}{8}{Public Key Cryptography}}{4}}
20+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{8.1}{RSA (Rivest, Shamir, Adleman 1977)}}{4}}
21+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{8.2}{Digital Certificates}}{4}}
22+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{8.3}{RC4 Stream Cipher}}{4}}
23+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{8.4}{MD5 Hash}}{4}}
24+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{8.5}{World Wide Web}}{4}}
25+
\@writefile{toc}{\contentsline {section}{\tocsection {}{9}{Growth of Cryptography - Continued}}{5}}
26+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{9.1}{Zero Knowledge Proofs}}{5}}
27+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{9.2}{Micro Payments}}{5}}
28+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{9.3}{Voting Systems}}{5}}
29+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{9.4}{Fully Homomorphic Encryption}}{5}}
30+
\@writefile{toc}{\contentsline {section}{\tocsection {}{10}{Encryption and One Time Pads}}{5}}
31+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{10.1}{Notion of Encryption}}{5}}
32+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{10.2}{One Time Pad (Vernam 1917)}}{6}}
33+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{10.3}{Proof of Security}}{6}}
34+
\@writefile{toc}{\contentsline {section}{\tocsection {}{11}{One Time Pad}}{7}}
35+
\@writefile{toc}{\contentsline {section}{\tocsection {}{12}{Generating Randomness}}{7}}
36+
\@writefile{toc}{\contentsline {section}{\tocsection {}{13}{Cryptographic Hash Functions}}{7}}
37+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{13.1}{Examples}}{7}}
38+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{13.2}{Random Oracle Model (ROM)}}{7}}
39+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{13.3}{Properties}}{8}}
40+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{13.4}{Applications}}{8}}
41+
\@writefile{toc}{\contentsline {section}{\tocsection {}{14}{Hash Function Applications}}{9}}
42+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{14.1}{Password Storage}}{9}}
43+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{14.2}{File Modification Detector}}{9}}
44+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{14.3}{Digital Signatures (hash and sign)}}{9}}
45+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{14.4}{Commitments}}{9}}
46+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{14.5}{Merkle Tree}}{9}}
47+
\@writefile{toc}{\contentsline {section}{\tocsection {}{15}{Merkle-Damgard Construction}}{9}}
48+
\@writefile{toc}{\contentsline {section}{\tocsection {}{16}{Keccak}}{10}}
49+
\@writefile{toc}{\contentsline {section}{\tocsection {}{17}{The Web}}{11}}
50+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{17.1}{HTTP Request}}{11}}
51+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{17.2}{HTTP Response}}{11}}
52+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{17.3}{Data Content}}{11}}
53+
\@writefile{toc}{\contentsline {section}{\tocsection {}{18}{Web security}}{11}}
54+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{18.1}{Authentication}}{11}}
55+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{18.2}{Passwords}}{11}}
56+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{18.3}{Dictionary Attacks}}{11}}
57+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{18.4}{Generating Multiple Client Passwords}}{12}}
58+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{18.5}{Cookies}}{12}}
59+
\@writefile{toc}{\contentsline {section}{\tocsection {}{19}{Attacks on Web Applications}}{12}}
60+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{19.1}{SQL Injection}}{12}}
61+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{19.2}{CSRF: Cross Site Request Forgery}}{12}}
62+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{19.3}{XSS: Cross Site Scripting}}{13}}
63+
\@writefile{toc}{\contentsline {section}{\tocsection {}{20}{Buffer Overflow Overview}}{14}}
64+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{20.1}{Contents of Memory}}{14}}
65+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{20.2}{Stack Frames}}{14}}
66+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{20.3}{Consequences of Buffer Overflows}}{14}}
67+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{20.4}{Shell Code}}{14}}
68+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{20.5}{Return to libc Attack}}{15}}
69+
\@writefile{toc}{\contentsline {section}{\tocsection {}{21}{Buffer Overflow Prevention}}{15}}
70+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{21.1}{Canary Values}}{15}}
71+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{21.2}{Safe Functions}}{15}}
72+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{21.3}{Non-executable Stack}}{15}}
73+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{21.4}{Address Space Layout Randomizaion (ASLR)}}{15}}
74+
\@writefile{toc}{\contentsline {section}{\tocsection {}{22}{Overview of Block Ciphers}}{16}}
75+
\@writefile{toc}{\contentsline {section}{\tocsection {}{23}{Data Encryption Standard (DES)}}{16}}
76+
\@writefile{toc}{\contentsline {section}{\tocsection {}{24}{Types of Attacks}}{16}}
77+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{24.1}{Differential Analysis}}{16}}
78+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{24.2}{Linear Attacks (Matsui)}}{16}}
79+
\@writefile{toc}{\contentsline {section}{\tocsection {}{25}{Advanced Encryption Standard}}{16}}
80+
\@writefile{toc}{\contentsline {section}{\tocsection {}{26}{Ideal Block Cipher}}{17}}
81+
\@writefile{toc}{\contentsline {section}{\tocsection {}{27}{Confidentiality}}{17}}
82+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{27.1}{Electronic Code Book (ECB)}}{17}}
83+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{27.2}{CTR Mode}}{17}}
84+
\@writefile{toc}{\contentsline {section}{\tocsection {}{28}{Cipher Block Schemes}}{18}}
85+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{28.1}{Cipher Block Chaining (CBC)}}{18}}
86+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{28.2}{Cipher Feedback Mode (CFB)}}{18}}
87+
\@writefile{toc}{\contentsline {section}{\tocsection {}{29}{Ciphertext Indistinguishability}}{18}}
88+
\@writefile{toc}{\contentsline {section}{\tocsection {}{30}{Unbalanced Fiestel Encryption Mode (UFE)}}{19}}
89+
\@writefile{toc}{\contentsline {section}{\tocsection {}{31}{Message Authentication Codes (MAC)}}{19}}
90+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{31.1}{MAC Game}}{19}}
91+
\@writefile{toc}{\contentsline {section}{\tocsection {}{32}{Authentication}}{20}}
92+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{32.1}{CBC-MAC}}{20}}
93+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{32.2}{PRF-MAC Hash Function}}{20}}
94+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{32.3}{Combining MAC and Encryption}}{20}}
95+
\@writefile{toc}{\contentsline {section}{\tocsection {}{33}{EAX Mode: Authenticated Encryption}}{20}}
96+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{33.1}{Workings of EAX}}{20}}
97+
\@writefile{toc}{\contentsline {section}{\tocsection {}{34}{Finite Fields}}{21}}
98+
\@writefile{toc}{\contentsline {section}{\tocsection {}{35}{Finite Fields}}{22}}
99+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{35.1}{Computing Powers}}{22}}
100+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{35.2}{Generate and Test Primes}}{22}}
101+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{35.3}{Testing for Primality}}{22}}
102+
\@writefile{toc}{\contentsline {section}{\tocsection {}{36}{One-time MAC}}{22}}
103+
\@writefile{toc}{\contentsline {section}{\tocsection {}{37}{Number Theory}}{23}}
104+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{37.1}{Euclid's Algorithm for GCDs}}{23}}
105+
\@writefile{toc}{\contentsline {section}{\tocsection {}{38}{Group Theory}}{24}}
106+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{38.1}{Orders of Elts}}{24}}
107+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{38.2}{Generators}}{24}}
108+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{38.3}{Generate and Test}}{24}}
109+
\@writefile{toc}{\contentsline {section}{\tocsection {}{39}{Public Keys}}{24}}
110+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{39.1}{Common Public Key Setup}}{25}}
111+
\@writefile{toc}{\contentsline {section}{\tocsection {}{40}{Group Theory Review}}{26}}
112+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{40.1}{Programming with Groups}}{26}}
113+
\@writefile{toc}{\contentsline {section}{\tocsection {}{41}{Diffie-Hellman Key Exchange}}{26}}
114+
\@writefile{toc}{\contentsline {section}{\tocsection {}{42}{Different Types of Groups}}{26}}
115+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{42.1}{Elliptic Curves}}{27}}
116+
\@writefile{toc}{\contentsline {section}{\tocsection {}{43}{Pedersen Commitments}}{28}}
117+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{43.1}{Commitment Scheme Overview}}{28}}
118+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{43.2}{Pedersen Commitment Scheme}}{28}}
119+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{43.3}{Security of Pedersen Commitment Scheme}}{28}}
120+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{43.4}{Malleability}}{28}}
121+
\@writefile{toc}{\contentsline {section}{\tocsection {}{44}{Public Key Encryption}}{28}}
122+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{44.1}{ElGamal Public Key Encryption}}{29}}
123+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{44.2}{Security of ElGamal}}{29}}
124+
\@writefile{toc}{\contentsline {section}{\tocsection {}{45}{ElGamal: Malleability and Homomorphisms}}{30}}
125+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{45.1}{El Gamal is Homomorphic}}{30}}
126+
\@writefile{toc}{\contentsline {section}{\tocsection {}{46}{IND-CCA2 Security}}{30}}
127+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{46.1}{El Gamal and IND-CCA2 Security}}{30}}
128+
\@writefile{toc}{\contentsline {section}{\tocsection {}{47}{Cramer Shoup}}{30}}
129+
\@writefile{toc}{\contentsline {section}{\tocsection {}{48}{RSA}}{31}}
130+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{48.1}{Public Key Scheme}}{31}}
131+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{48.2}{Keygen for RSA}}{31}}
132+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{48.3}{Encryption and Decryption}}{31}}
133+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{48.4}{Proof of Correctness}}{31}}
134+
\@writefile{toc}{\contentsline {section}{\tocsection {}{49}{RSA and IND-CCA2 Security}}{32}}
135+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{49.1}{The Scheme}}{32}}
136+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{49.2}{Decryption}}{32}}
137+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{49.3}{IND-CCA2 Security}}{32}}
138+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{49.4}{Real World Attacks}}{32}}
139+
\@writefile{toc}{\contentsline {section}{\tocsection {}{50}{Digital Signatures}}{32}}
140+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{50.1}{}}{33}}
141+
\@writefile{toc}{\contentsline {section}{\tocsection {}{51}{Hash and Sign}}{34}}
142+
\@writefile{toc}{\contentsline {section}{\tocsection {}{52}{RSA Based Signing}}{34}}
143+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{52.1}{PKCS}}{34}}
144+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{52.2}{PSS (Probabilistic Signature Scheme)}}{34}}
145+
\@writefile{toc}{\contentsline {section}{\tocsection {}{53}{ElGamal Based Signing}}{34}}
146+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{53.1}{ElGamal Digital Signatures}}{34}}
147+
\newlabel{tocindent-1}{0pt}
148+
\newlabel{tocindent0}{0pt}
149+
\newlabel{tocindent1}{26.76361pt}
150+
\newlabel{tocindent2}{41.25pt}
151+
\newlabel{tocindent3}{0pt}
152+
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{53.2}{DSS}}{35}}

0 commit comments

Comments
 (0)