कंप्यूटिंग बहुपद प्रतिलोम के लिए NTRU छद्म कोड

वोट
2

अगर कोई मुझे बताओ कि निम्नलिखित छद्म कोड की पंक्ति 45 को लागू करने के सकता है मैं सोच रहा था।

Require: the polynomial to invert a(x), N, and q.
1: k = 0
2: b = 1
3: c = 0
4: f = a
5: g = 0 {Steps 5-7 set g(x) = x^N - 1.}
6: g[0] = -1
7: g[N] = 1
8: loop
9:  while f[0] = 0 do
10:         for i = 1 to N do
11:             f[i - 1] = f[i] {f(x) = f(x)/x}
12:             c[N + 1 - i] = c[N - i] {c(x) = c(x) * x}
13:         end for
14:         f[N] = 0
15:         c[0] = 0
16:         k = k + 1
17:     end while
18:     if deg(f) = 0 then
19:         goto Step 32
20:     end if
21:     if deg(f) < deg(g) then
22:         temp = f {Exchange f and g}
23:         f = g
24:         g = temp
25:         temp = b {Exchange b and c}
26:         b = c
27:         c = temp
28:     end if
29:     f = f XOR g
30:     b = b XOR c
31: end loop
32: j = 0
33: k = k mod N
34: for i = N - 1 downto 0 do
35:     j = i - k
36:     if j < 0 then
37:         j = j + N
38:     end if
39:     Fq[j] = b[i]
40: end for
41: v = 2
42: while v < q do
43:     v = v * 2
44:     StarMultiply(a; Fq; temp;N; v)
45:     temp = 2 - temp mod v
46:     StarMultiply(Fq; temp; Fq;N; v)
47: end while
48: for i = N - 1 downto 0 do
49:     if Fq[i] < 0 then
50:         Fq[i] = Fq[i] + q
51:     end if
52: end for
53: {Inverse Poly Fq returns the inverse polynomial, Fq, through the argument list.}

समारोह StarMultiplyएक बहुपद (सरणी) चर में संग्रहीत रिटर्न temp। मूल रूप से अस्थायी है एक बहुपद (मैं इसे एक सरणी के रूप में प्रतिनिधित्व कर रहा हूँ) और वी एक पूर्णांक है (जैसे कि 4 या 8), तो वास्तव में क्या करता है temp = 2-temp mod vके लिए सामान्य भाषा में समानता? मैं कैसे मेरे कोड में है कि रेखा को लागू करना चाहिए। किसी ने मुझे एक उदाहरण दे सकते हैं।

उपरोक्त एल्गोरिथ्म NTRUEncrypt कुंजी पीढ़ी के लिए उलटा बहुआयामी पद की गणना के लिए है। छद्म कोड के पेज 28 पर पाया जा सकता इस दस्तावेज़ । अग्रिम में धन्यवाद।

17/03/2010 को 10:23
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

अस्थायी में प्रत्येक प्रविष्टि, अस्थायी [i], सेट अस्थायी [i] = 2-अस्थायी [i] आधुनिक वी के लिए।

यह करने के लिए मेरी प्रतिक्रिया की धारा "Z_p ^ n में उलटा" के अनुरूप होना चाहिए एक बहुपद का प्रतिलोम की गणना के लिए एल्गोरिथ्म

जैसा कि मैंने अब इसे देख, मुझे लगता है कि मेरा उत्तर यह क्या कहते हैं नहीं कर सकते हैं - यह कहते हैं, "Z_p ^ n में उलटा" लेकिन इसे और अधिक Z_2 ^ n में एक व्युत्क्रम तरह दिखता है। तो यह है, लेकिन कुछ और के लिए शायद नहीं पी = 2 के लिए काम करना चाहिए।

17/03/2010 को 22:05
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more