Ntru
消息到多項式的最常見編碼是什麼?
基於多項式的加密方案(例如 NTRU)如何將消息編碼為多項式?有通用轉換嗎?
在 NTRUEncrypt 中,長度為l個八位字節的八位字節串的原始消息m通過以下步驟進行編碼:
- 用b字節的隨機鹽和一些額外資訊對其進行填充,以形成要加密的實際八位字節字元串M。
- 然後使用 octect-string-to-binary-string-primitive (OS2BSP) 將此M字節字元串轉換為二進製字元串Mbin 。
- 在 NTRUEncrypt 中,消息實際上是一個三元多項式,因此對於Mbin中的每 3 位,使用如下的二元到三元映射將其轉換為三元字元串Mtrin。
- {0, 0, 0} -> {0, 0}
- {0, 0, 1} -> {0, 1}
- {0, 1, 0} -> {0, -1}
- {0, 1, 1} -> {1, 0}
- {1, 0, 0} -> {1, 1}
- {1, 0, 1} -> {1, -1}
- {1, 1, 0} -> {-1, 0}
- {1, 1, 1} -> {-1, 1}
- 最後消息多項式m(x)就是把Mtrin中的每個元素作為對應的係數。
有關轉換的更多詳細資訊,請參見第 8 節,有關加密過程的資訊請參見第 10.2.2 節。 https://github.com/NTRUOpenSourceProject/ntru-crypto/blob/master/doc/EESS1-v3.1.pdf