tft每日頭條

 > 生活

 > 編程中where的用法

編程中where的用法

生活 更新时间:2024-12-05 08:19:35

LWE 簡單來說就是一組線性多項式中加入了噪聲(errors)來讓計算變得複雜甚至說不可解, 如下 圖:

編程中where的用法(快速理解LearningWithErrors)1

編程中where的用法(快速理解LearningWithErrors)2

編程中where的用法(快速理解LearningWithErrors)3

隻要有足夠的式子,那麼使用常見的高斯消元法,在多項式時間内就能輕易求出(s1,s2,s3, s4). 誤差的引入,導緻如果你用高斯消元,那麼所有的式子加到一起之後誤差也加了起來,噪音過大,導緻你無法從噪音中讀取任何信息。這就是此問題的精華

仔細思考LWE 的過程, 我們可以把LWE 認為是一個trapdoor函數(隻能正着計算, 不能逆運算) 基于此問題看天才的密碼學家如何設計一套加密體系的. 在了解設計之前先來看幾個簡單的公式

下面幾個公式q 為素數, a, s為自然數, e 就是errors 也是整數

1.

a===a%q (mod q) a%q === a%q%q這是顯而易見的

2.

s*a === s * (a%q) (mod q) (s*a) % q == (s*a%q) % q

3.

u = a % q v = (a*s) %q %q (v -s * u) % q = (a*s % q %q - s * a % q) % q = 0

4.

u = a % q v = (a*s e) % q % q (v -s * u) % q = ((a*s e) % q % q - s * a % q) % q = e%q

5. 有了上面的結論看天才如何設計加密體系的

a, q 是公鑰, s 是私鑰, M 需要加密的數字0,1(這裡隻是一bit加密)e是errors

加密過程 u = a % q v = (a*s e) % q %q q // 2 *M 密文(u,v) 解密過程 dec = (v-s*u) %q = (e q//2*M) % q 當dec 小于q//2 , M == 0 else M==1

如果仔細思考這個過程, 加密過程即使公私鑰一樣 但由于error的随機性對統一M(message)加密的結果也是不一樣的. 解密過程也不同以往, 像RSA, DH的密文都是直接計算得到, 而LWE 卻是判斷大小. 而且這個噪聲也不是随機選擇的(如果e> q//2其實結果是錯誤的). 所以基于LWE的加解密參數q的選取, 噪聲e的選擇都是很重要的, 上述隻是針對一個bit的加密過程, 後續會寫基于LWE 實現的NTRU加密

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved