SlideShare a Scribd company logo
An introduction to
lattice-based cryptography
Thijs Laarhoven
mail@thijs.com
http://www.thijs.com/
(Slides from July 2019)
Outline
Lattices
Lattice-based signatures
Lattice algorithms
Summary
References
Outline
Lattices
Lattice-based signatures
Lattice algorithms
Summary
References
Lattices
What is a lattice?
O
Lattices
What is a lattice?
b1
b2
O
Lattices
What is a lattice?
b1
b2
O
Lattices
What is a lattice?
r1
r2
O
Lattices
Basis for the same lattice
v1
v2
O
Lattices
Basis for a sublattice
v1
v2
O
Lattices
Basis for a sublattice
v1
v2
O
Lattices
Basis for a sublattice
b1
b2
s
O
Lattices
Shortest Vector Problem (SVP)
b1
b2
s
-s O
Lattices
Shortest Vector Problem (SVP)
b1
b2
t
O
Lattices
Closest Vector Problem (CVP)
t
b1
b2
O
Lattices
Closest Vector Problem (CVP)
t
b1
b2
O
Lattices
Closest Vector Problem (CVP)
r1
r2
b1
b2
O
Lattices
Lattice basis reduction
r1
r2
O
Lattices
Finding closest vectors (good basis)
r1
r2
O
Lattices
Finding closest vectors (good basis)
r1
r2
O
t
Lattices
Finding closest vectors (good basis)
r1
r2
O
t
Lattices
Finding closest vectors (good basis)
r1
r2
O
t
v
Lattices
Finding closest vectors (good basis)
b1
b2
O
Lattices
Finding closest vectors (bad basis)
b1
b2
O
Lattices
Finding closest vectors (bad basis)
b1
b2
O
t
Lattices
Finding closest vectors (bad basis)
b1
b2
O
t
Lattices
Finding closest vectors (bad basis)
b1
b2
O
t
v
Lattices
Finding closest vectors (bad basis)
Lattices
Lattice problems
Easy lattice problems:
• Given a good basis, finding a bad basis
• Given a good basis, finding short lattice vectors
• Given a good basis, finding close lattice vectors
• Given any basis, verifying membership of the lattice
Lattices
Lattice problems
Easy lattice problems:
• Given a good basis, finding a bad basis
• Given a good basis, finding short lattice vectors
• Given a good basis, finding close lattice vectors
• Given any basis, verifying membership of the lattice
Hard lattice problems:
• Given a bad basis, finding a good basis
• Given a bad basis, finding short lattice vectors
• Given a bad basis, finding close lattice vectors
Outline
Lattices
Lattice-based signatures
Lattice algorithms
Summary
References
Lattice-based signatures
Overview [GGH97]
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
O
Lattice-based signatures
Private key
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
r1
r2
O
Lattice-based signatures
Private key
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
r1
r2
O
Lattice-based signatures
Private key
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
r1
r2
O
Lattice-based signatures
Public key
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
r1
r2
b1
b2
O
Lattice-based signatures
Public key
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
b1
b2
r1
r2
O
Lattice-based signatures
Signing a message
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
b1
b2
r1
r2
O
c
Lattice-based signatures
Signing a message
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
b1
b2
r1
r2
O
c
Lattice-based signatures
Signing a message
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
b1
b2
r1
r2
O
c
Lattice-based signatures
Signing a message
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
b1
b2
r1
r2
O
s
c
Lattice-based signatures
Signing a message
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
r1
r2
b1
b2
O
s
c
Lattice-based signatures
Verifying a signature
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
r1
r2
b1
b2
O
s
c
Lattice-based signatures
Verifying a signature
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
r1
r2
b1
b2
O
s
c
Lattice-based signatures
Overview
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
r1
r2
b1
b2
O
s
c
Lattice-based signatures
Attacking the scheme [NR06]
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
O
s
c
Lattice-based signatures
Obtain a signature
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
e
O
s
c
Lattice-based signatures
Compute the error vector
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
O
Lattice-based signatures
Store the error vector
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
O
s
c
Lattice-based signatures
Obtain a signature
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
e
O
s
c
Lattice-based signatures
Compute the error vector
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
O
Lattice-based signatures
Store the error vector
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
O
s
c
Lattice-based signatures
Obtain a signature
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
e
O
s
c
Lattice-based signatures
Compute the error vector
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
O
Lattice-based signatures
Store the error vector
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
O
Lattice-based signatures
Obtain many error vectors
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
O
Lattice-based signatures
Obtain many error vectors
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
O
Lattice-based signatures
Obtain many error vectors
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
O
Lattice-based signatures
Obtain many error vectors
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
r1
r2
O
Lattice-based signatures
Recover the private key
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
r1
r2
O
Lattice-based signatures
Recover the private key
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
r1
r2
b1
b2
O
s
c
Lattice-based signatures
Overview
Private key:
R = {r1,...,rn}
Public key:
B = {b1,...,bn}
Signing m:
c = H(m)
s = R R−1
c
Verifying s:
s ∈ L
s − H(m) small
Obtain error vectors:
s = Sign(m)
c = H(m)
e = c − s
Leaks R = {r1,...,rd}:
e ∈ D(R)
Can recover R via
gradient descent
Outline
Lattices
Lattice-based signatures
Lattice algorithms
Summary
References
b1
b2
O
Lattice algorithms
Lattice enumeration [FP85]
b1
b2
O
Lattice algorithms
Determine possible coefficients of b2
b1
b2
O
Lattice algorithms
Determine possible coefficients of b2
b1
b2
O
Lattice algorithms
Determine possible coefficients of b2
b1
b2
O
Lattice algorithms
Determine possible coefficients of b2
b1
*
b2
*
O
Lattice algorithms
Determine possible coefficients of b2
b1
*
b2
*
O
Lattice algorithms
Determine possible coefficients of b2
b1
*
b2
*
O
Lattice algorithms
Find short vectors for each coefficient of b2
O
Lattice algorithms
Find short vectors for each coefficient of b2
O
Lattice algorithms
Find short vectors for each coefficient of b2
v1
-v1
O
Lattice algorithms
Find short vectors for each coefficient of b2
v1
-v1
O
Lattice algorithms
Find short vectors for each coefficient of b2
v1
-v1
v2
v3
O
Lattice algorithms
Find short vectors for each coefficient of b2
v1
-v1
v2
v3
O
Lattice algorithms
Find short vectors for each coefficient of b2
v1
-v1
v2
v3
v4
v5
O
Lattice algorithms
Find short vectors for each coefficient of b2
v1
-v1
v2
v3
v4
v5
O
Lattice algorithms
Find short vectors for each coefficient of b2
v1
-v1
v2
v3
v4
v5
v6O
Lattice algorithms
Find short vectors for each coefficient of b2
v1
-v1
v2
v3
v4
v5
v6O
Lattice algorithms
Find short vectors for each coefficient of b2
v1
-v1
v2
v3
v4
v5
v6-v2
-v3
-v4
-v5-v6
O
Lattice algorithms
Find short vectors for each coefficient of b2
v1
-v1
v2
v3
v4
v5
v6-v2
-v3
-v4
-v5-v6
O
Lattice algorithms
Find a shortest vector among all found vectors
v1
-v1
s
v3
v4
v5
v6-s
-v3
-v4
-v5-v6
O
Lattice algorithms
Find a shortest vector among all found vectors
Lattice algorithms
Lattice enumeration vs. lattice sieving
Lattice enumeration
• Brute-force all combinations of the basis vectors [FP85]
• Each coordinate 2O(n)
options =⇒ 2O(n2
)
time complexity
• Balance preprocessing time with search time: 2O(nlogn)
time [Kan83]
• Requires almost no memory
Lattice algorithms
Lattice enumeration vs. lattice sieving
Lattice enumeration
• Brute-force all combinations of the basis vectors [FP85]
• Each coordinate 2O(n)
options =⇒ 2O(n2
)
time complexity
• Balance preprocessing time with search time: 2O(nlogn)
time [Kan83]
• Requires almost no memory
Lattice sieving
• Combine vectors in a huge list to find shorter vectors [AKS01]
• Generally requires 2O(n)
time and 2O(n)
space
• Current best asymptotics: 20.292n+o(n)
time and space [BDGL16]
Lattice algorithms
Practice [SVP]
■ ■
■
■
■
■ ■
■
■
■
■
■
■
■■
■
■
■
■
■
■
■
■
■
■
■
■ ■
▼
▼
▼
▼
▼
▼ ▼
▼
▼
▼
▼
▼
▼
▼▼▼
▼
▼▼
★
★★
★
★
★
★
★
★
★
★
★
★
★
★
★
★
★
★
♢
♢
♢
♢
♢♢
♢♢♢
♢
♢♢
♢
♢
♢
♢♢
♢
♢
■ Enumeration (continuous pruning)
▼ Enumeration (discrete pruning)
★ Sieving (old)
♢ Sieving (new)
80 100 120 140 160
100
104
106
108
1010
→ Lattice dimension
→Singlecoretimings(seconds)
1 hour
1 day
1 year
1 century
Lattice algorithms
Concrete estimates
Most common hardness estimates:
• Cost of finding nice basis (n) ≥ Cost of sieving/enumeration (β)
• Ignore space complexity, ignore o(β) in time complexity
• Classical sieving: 20.292β
time [BDGL16]
• Quantum sieving: 20.265β
time [Laa16]
Outline
Lattices
Lattice-based signatures
Lattice algorithms
Summary
References
Summary
Lattice-based cryptography
• Main principle: hard to find good bases from bad bases
Private key: Good lattice basis
Public key: Bad lattice basis
• Signatures: Decode with good basis to nearby lattice point
Lattice-based cryptanalysis
• Two flavors, trading time for memory
Enumeration: Low memory, slower in high dimensions
Sieving: High memory, faster in practice
• Security estimates: solving SVP/CVP takes ≥ 20.292n
time
References (clickable)
Lattice-based cryptography
• General: [MG02], [MR09], [Mic16], [Pei16], [NIST]
• Signatures: [GGH97], [NR06], [DN12]
• NTRU: [HPS98], [HHPW10], [SS11], [BCLV17]
• LWE: [Reg05], [Reg10], [BCD+16]
• Ring-LWE: [SSTX09], [LPR10], [LPR13]
• (Ring-)LWR: [BPR13], [AKPW13], [AKRV17], [BBF+17]
Lattice-based cryptanalysis
• General: [MG02], [MR09], [HPS11], [Mic16], [ACD+18], [SVP]
• Enumeration: [FP85], [Kan83], [GNR10], [AN17], [ANS18]
• Sieving: [AKS01], [LMP15], [BDGL16], [Laa16], [Duc18], [ADH+19]
• Basis reduction: [LLL82], [SE94], [CN11]

More Related Content

PDF
Introduction - Lattice-based Cryptography
PDF
Lattice Based Cryptography - GGH Cryptosystem
PPT
Quantum cryptography a modern cryptographic security
PDF
Lattice Cryptography
PPTX
Quantum Cryptography
PDF
Post Quantum Cryptography: Technical Overview
PPTX
Encryption algorithms
PPTX
Overview of cryptography
Introduction - Lattice-based Cryptography
Lattice Based Cryptography - GGH Cryptosystem
Quantum cryptography a modern cryptographic security
Lattice Cryptography
Quantum Cryptography
Post Quantum Cryptography: Technical Overview
Encryption algorithms
Overview of cryptography

What's hot (20)

PDF
Quantum Key Distribution
PDF
Lattice-Based Cryptography: CRYPTANALYSIS OF COMPACT-LWE
DOC
Quantum cryptography
PPTX
Cryptanalysis 101
PPTX
Different types of Symmetric key Cryptography
PPTX
Cryptographic algorithms
PPTX
Cryptography and Network Security
PPTX
Reed Soloman and convolution codes
PDF
Post quantum cryptography
PPTX
quantumcrypto
PPT
Ch02 classic nemo
PPT
12 symmetric key cryptography
PPTX
Dpcm ( Differential Pulse Code Modulation )
PPTX
Basic cryptography
PPT
Cryptography ppt
PPTX
ElGamal Encryption in Go
PPT
Cryptography
PPT
Cipher techniques
PPTX
Quantum Key Distribution
Lattice-Based Cryptography: CRYPTANALYSIS OF COMPACT-LWE
Quantum cryptography
Cryptanalysis 101
Different types of Symmetric key Cryptography
Cryptographic algorithms
Cryptography and Network Security
Reed Soloman and convolution codes
Post quantum cryptography
quantumcrypto
Ch02 classic nemo
12 symmetric key cryptography
Dpcm ( Differential Pulse Code Modulation )
Basic cryptography
Cryptography ppt
ElGamal Encryption in Go
Cryptography
Cipher techniques
Ad

Similar to An introduction to lattice-based cryptography (20)

PPT
Signyourd digital signature certificate provider
PPTX
Reed solomon Encoder and Decoder
PPTX
Linear block coding
PDF
Channel-coding-BAN-Khalid. Communication
PPTX
Class 11: Deeper List Procedures
PDF
Lex analysis
PPTX
R Language Introduction
PDF
Cs501 rel algebra
PDF
Efficient Random-Walk Methods forApproximating Polytope Volume
PDF
Certified bit coded regular expression parsing
PDF
Volume and edge skeleton computation in high dimensions
PPT
Computer Software: Compiler Construction Lecture 05.ppt
PPT
3. Relational Models in DBMS
PPT
PPT
Module 2 - part i
PDF
User Account Access Graphs
PPT
Data integration and provenance-Chapter-14
PDF
Formal Verification of Programming Languages
PPTX
Data analysis with R
PPT
relational algebra
Signyourd digital signature certificate provider
Reed solomon Encoder and Decoder
Linear block coding
Channel-coding-BAN-Khalid. Communication
Class 11: Deeper List Procedures
Lex analysis
R Language Introduction
Cs501 rel algebra
Efficient Random-Walk Methods forApproximating Polytope Volume
Certified bit coded regular expression parsing
Volume and edge skeleton computation in high dimensions
Computer Software: Compiler Construction Lecture 05.ppt
3. Relational Models in DBMS
Module 2 - part i
User Account Access Graphs
Data integration and provenance-Chapter-14
Formal Verification of Programming Languages
Data analysis with R
relational algebra
Ad

Recently uploaded (20)

PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
master seminar digital applications in india
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PPTX
GDM (1) (1).pptx small presentation for students
PPTX
Presentation on HIE in infants and its manifestations
PDF
A systematic review of self-coping strategies used by university students to ...
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PDF
Computing-Curriculum for Schools in Ghana
PDF
Microbial disease of the cardiovascular and lymphatic systems
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Supply Chain Operations Speaking Notes -ICLT Program
2.FourierTransform-ShortQuestionswithAnswers.pdf
master seminar digital applications in india
Abdominal Access Techniques with Prof. Dr. R K Mishra
GDM (1) (1).pptx small presentation for students
Presentation on HIE in infants and its manifestations
A systematic review of self-coping strategies used by university students to ...
Final Presentation General Medicine 03-08-2024.pptx
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
STATICS OF THE RIGID BODIES Hibbelers.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
O7-L3 Supply Chain Operations - ICLT Program
Chinmaya Tiranga quiz Grand Finale.pdf
Computing-Curriculum for Schools in Ghana
Microbial disease of the cardiovascular and lymphatic systems

An introduction to lattice-based cryptography