NTRU'nun sahibi olan Security Innovation için çalışıyorum, bu ilgiyi görmekten memnuniyet duyuyorum.
IEEE standardı 1363.1-2008, NTRUEncrypt öğesinin en güncel parametre kümeleriyle nasıl uygulanacağını belirtir. Bu polinomları ters çevirmek için, aşağıdaki özellikleri yer almaktadır:
Bölümü:
giriş b derecesi N-1 olan a ve b, iki polinomlar, ve b_N b lider katsayısıdır. Çıkışlar q ve r'dir, öyle ki = q * b + r ve deg (r) < derece (b). r_d, r'nin d katsayısını, yani r'nin lider katsayısını gösterir.
a) Set r := a and q := 0
b) Set u := (b_N)^–1 mod p
c) While deg r >= N do
1) Set d := deg r(X)
2) Set v := u × r_d × X^(d–N)
3) Set r := r – v × b
4) Set q := q + v
d) Return q, r
Burada r_d, r'nin d katsayısıdır.
Genişletilmiş Öklid Algoritma:
a) If b = 0 then return (1, 0, a)
b) Set u := 1
c) Set d := a
d) Set v1 := 0
e) Set v3 := b
f) While v3 ≠ 0 do
1) Use the division algorithm (6.3.3.1) to write d = v3 × q + t3 with deg t3 < deg v3
2) Set t1 := u – q × v1
3) Set u := v1
4) Set d := v3
5) Set v1 := t1
6) Set v3 := t3
g) Set v := (d – a × u)/b [This division is exact, i.e., the remainder is 0]
h) Return (u, v, d)
Z_p ınvers, ana pa: Z_p^e/(M (X
a) Run the Extended Euclidean Algorithm with input a and (X^N – 1). Let (u, v, d) be the output, such that a × u + (X^N – 1) × v = d = GCD(a, (X^N – 1)).
b) If deg d = 0, return b = d^–1 (mod p) × u
c) Else return FALSE
Ters), pa asal, M (X), uygun bir polinom gibi X^N-1
a) Use the Inversion Algorithmto compute a polynomial b(X) ε R[X] that gives an inverse of a(X) in (R/pR)[X]/(M(X)). Return FALSE if the inverse does not exist. [The Inversion Algorithm may be applied here because R/pR is a field, and so (R/pR)[X] is a Euclidean ring.]
b) Set n = p
c) While n <= e do
1) b(X) = p × b(X) – a(X) × b(X)^2 (mod M(X)), with coefficients computed modulo p^n
2) Set n = p × n
d) Return b(X) mod M(X) with coefficients computed modulo p^e.
Eğer b için kurum alabilirsiniz eğer görmelisiniz devresine farksal güç analizi tam bir uygulaması yapıyorsanız 1363.1, ham NTRU şifreleme aktif bir saldırgan karşı güvenli değildir ve 1363.1 bunu düzeltmek için mesaj işleme tekniklerini açıklar.
(Güncelleştir 2013-04-18: Önceki sürümdeki bazı hataları tespit etmek için Sonel Sharam'a teşekkürler)
Hangi tersi? Ters fonksiyon, polinomları çözmek (ya da çarpanlara ayırmak) ister misiniz, ya da onların çoğaltıcı terslerini, bazı taban alanı üzerindeki polinomların bölümü olarak oluşturulan alanda ve indirgenemez bir polinomla mı bulmak istiyorsunuz? NTRU, "Sayı Teorisyenleri R Us", IIRC'nin kısaltmasıdır, bu yüzden matematiğin gerek duyduğu şeyleri belirlemek zordur. http://en.wikipedia.org/wiki/NTRUEncrypt "hem şifreleme hem de şifre çözme sadece basit polinom çarpmalarını kullanır" diyor, böylece makale ne demek istediğini bana söylemedi. Her ne gerekiyorsa, bu bir MathOverflow sorusu olabilir. –
http://www.ntru.com/cryptolab/tutorial_algebra.htm#three –
Gotcha. Daha önce söylediğim ikinci şey gibi, aslında tarif ettiğim alan değil ama biraz farklı bir halka (tüm ters çevrimler mevcut değil). NTRU teknik notunu 14 okursanız, sonunda "neden çalışır" ın sözde kodundan sonra bir açıklama vardır. Bir matrisin satır küçültmesiyle tersine çevrilmesi gibi, 1'e ulaşıncaya kadar bir dizi dönüşüm uygulayacağınız anlamında, tersi, bu dönüşümlerin tüm tersleri ile çarpılır. Sözde kodun yaptığı şey bu. Ama tamamen sindirilmiş 14 nota sahip olduğumu iddia etmiyorum, sadece kaydım. –