From 1a8a602bc5de0929c4a43252ce75f5ea161df610 Mon Sep 17 00:00:00 2001 From: Brian Lawrence Date: Mon, 8 Jul 2024 10:16:41 -0700 Subject: [PATCH 1/2] FHE edits --- easy/src/fhe0.typ | 3 ++- easy/src/fhe2.typ | 2 +- easy/src/lwe.typ | 12 ++++++------ 3 files changed, 9 insertions(+), 8 deletions(-) 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 From 00f9e59bcb88be66ea22b2e6c6d3096fae22c7cc Mon Sep 17 00:00:00 2001 From: Brian Lawrence Date: Mon, 8 Jul 2024 10:22:01 -0700 Subject: [PATCH 2/2] FHE minor edits, again --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index a136337..e69de29 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +0,0 @@ -*.pdf