diff --git a/.gitignore b/.gitignore index a136337..e69de29 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +0,0 @@ -*.pdf diff --git a/easy/src/fhe0.typ b/easy/src/fhe0.typ index 2cd38ec..bbadf9c 100644 --- a/easy/src/fhe0.typ +++ b/easy/src/fhe0.typ @@ -16,6 +16,7 @@ lets you perform operations on encrypted data. But unlike FHE, there will be a limit on the number of operations you can perform before the data must be decrypted. +Why is there a limit? Loosely speaking, the encryption procedure will involve some sort of "noise" or "error." As long as the error is not too big, the message can be decoded without trouble. But each operation on the encrypted data @@ -48,7 +49,7 @@ within the FHE encryption. Our protocol uses a cryptosystem built from a problem called "learning with errors." "Learning with errors" is kind of a strange name; -we'd call it "approximate linear algebra modulo $q$." +it would make more sense to call it "approximate linear algebra modulo $q$." Anyway, we'll start with the learning-with-errors problem (@lwe) and how to build cryptography on top of it (@lwe-crypto) before we get back to levelled FHE. diff --git a/easy/src/fhe2.typ b/easy/src/fhe2.typ index b01a3d5..46af129 100644 --- a/easy/src/fhe2.typ +++ b/easy/src/fhe2.typ @@ -118,7 +118,7 @@ Now you add them up to get the following. )], kind: table ) -(for reference, the actual value is $4$, so our accumulated error is $2$) +(For reference, the actual value is $4$, so our accumulated error is $2$.) Finally, let’s say your message is $m = 5$. So you set $y = y_0 - m = 6 - 5 = 1$, and send the ciphertext: diff --git a/easy/src/lwe.typ b/easy/src/lwe.typ index 647948d..f219a24 100644 --- a/easy/src/lwe.typ +++ b/easy/src/lwe.typ @@ -16,7 +16,7 @@ they permit a small "error" -- and instead of solving for rational or real numbers, you're solving for integers modulo $q$. -Here’s a concrete example of a LWE problem and how one might attack it +Here’s a concrete example of an LWE problem and how one might attack it "by hand." This exercise will make the inherent difficulty of the problem quite intuitive. @@ -51,12 +51,12 @@ $(a_1 , dots.h , a_4)$. [(0, 4, 9, 7) : 5], [(10, 6, 1, 6) : 9], [(10, 7, 4, 10) : 10], [(3, 1, 10, 9) : 7], [(5, 5, 10, 6) : 9], [(2, 4, 10, 3) : 7], - [(10, 7, 3, 1) : 9], [(10, 4, 6, 4) : 2], - [(0, 2, 5, 5) : 6], [(8, 5, 7, 2) : 2], + [(10, 7, 3, 1) : 9], [(10, 4, 6, 4) : 7], + [(0, 2, 5, 5) : 6], [(8, 5, 7, 2) : 5], [(9, 10, 2, 1) : 3], [(4, 7, 0, 0) : 8], [(3, 7, 2, 1) : 6], [(0, 3, 0, 0) : 0], - [(2, 3, 4, 5) : 3], [(8, 3, 2, 7) : 8], - [(2, 1, 6, 9) : 3], [(4, 6, 6, 3) : 2], + [(2, 3, 4, 5) : 3], [(8, 3, 2, 7) : 5], + [(2, 1, 6, 9) : 3], [(4, 6, 6, 3) : 1], )] , kind: table ) @@ -68,7 +68,7 @@ vector_ $ (x_1 , x_2 , x_3 , x_4 lr(|y|) S), $ -where $S subset F_11$, to +where $S subset FF_11$, to mean the statement $ sum a_i x_i = y + s, #text(" where ") s in S. $ In particular, a purported approximation