سیستم رمزی کلید عمومی NTRU
Download
Report
Transcript سیستم رمزی کلید عمومی NTRU
سیستم رمزی NTRU
و
حمالت مشبکه روی آن
گردآورنده :زهرا فرجی معز
با راهنمایی :دکتر حسین حاجی ابوالحسن
سیستم رمزی کلید عمومی NTRU
سیستم رمزنگاری کلید عمومی NTRUبرای اولین بار به
طور غیر رسمی در خالل نشست های جانبی کنفرانس
Crypto96توسط سه ریاضیدان به نام های جفری
هافشتین،ژیل پایفر و جزف سیلورمن معرفی ودو سال بعد به
بنا به این دالیل؛ در اردیبهشت ماه IEEE ،1388
طور رسمی منتشر شد.
نیز این سیستم را با شناسه P1363.1
نفوذناپذیر تلقی می شود.
NTRU
• در حال حاضر سیستم
منتشر کرد.
استانداردسازی و
درمثل
هایی
اجرا و اشغال حافظه کم در
شرکتباال
اخیراًسرعت
• این سیستم به دلیل
Sony,Nxp,Motorola,Cisco,Intelو
...IBMدرمورد
همراه و
کارت های هوشمند ،دستگاه های تلفن
منظور .استفاده از این سیستم می
بررسی به
گرفته است
حال قرار
استفاده
باشند...
نمادها و مقدمات
•
•
•
•
:n,mعدد صحیح مثبت
) R=Z[x]/(xⁿ-1حلقه چندجمله ای از درجه n-1با
ضرایب صحیح.
) Rm=Zm[x]/(xⁿ-1حلقه چندجمله ای از درجه n-1با
ضرایب صحیح به سنج .m
(d1,d2)Ґچندجمله ای هایی در Rکه تعداد ضرایب 1
برابر d1و تعداد ضرایب -1برابر d2و بقیه ضرایب صفر
اند.
عملکرد سیستم رمزی NTRU
پارامتر های عمومی:
n عدد اول
p و ، qهمچنین nو qدو عدد که نسبت به هم اولند و q
بزرگتر از pمی باشد.مقادیر نامی عبارتند از . p=3
ضرب چندجمله ای ها را با * نمایش می دهیم؛ به طوریکه
df,dg,dr اعداد صحیح مثبت.
Fq (x ) f
1
(x ) Rq
و
h Fq (x )* g (mod q)
Fp
:کلید خصوصی
fєҐ(df, df-1) •
gєҐ(dg, dg) •
(x ) f (x ) R
•
1
p
:کلید عمومی
c=p.r*h+mدر آن mپیام فرستنده
• رمزنگاری :
است که به روشی قراردادی و کارآمد به یک چندجمله ای
تبدیل می شود و ) rєҐ(dr, drچندجمله ای تصادفی ست.
• رمزگشایی :
a c *f
) ( p .r * h m )* f (mod q
)(mod q
می دانیم چندجمله ای های r,g,f,mدارای ضرایب
کوچک و مقدار pنیز کوچک است .پس ضرایب در
بازه ] (–q/2,q/2قرار می گیرند و خواهیم داشت:
a p .r * g m * f
در نتیجه داریم:
a * f p1 ( p.r * g m * f )* f p1
mod p
m * f * f p1
m
با توجه به اهمیت سیستم NTRUدر صنعت ،الزم می دانیم
که توجه عمیق تری به این سیستم داشته باشیم .لذا این سیستم
را به عنوان سیستم رمزنگاری مبتنی بر مشبکه در نظر
گرفته و حمالت لتیس به آن را مورد ارزیابی قرار می دهیم.
NTRUبه عنوان سیستم رمزی مبتنی
بر مشبکه
n 1
h
(
x
)
h
h
x
...
h
x
کلید عمومی سیستم NTRU
اگر
0
1
n 1
در نظر گرفته شود ،مشبکه مرتبط با hبرای این سیستم را ،
LNTRUنامیده که توسط ماتریس زیر تولید می شود:
h
q
از آنجا که می دانیم ) . h (x )Fq (x )* g (xداریم :
)f (x )* h (x ) g (x ) (mod q
پس می توان نوشت
به طوریکه
) f (x )* h (x ) g (x ) qu (x
با توجه به تعریف ماتریس ، M hNTRUخواهیم داشت
در نهایت می توان نتیجه گرفت
u (x ) R
) (f , u )M hNTRU (f , g
(f , g ) LNTRU
h
می دانیم تعداد چندجمله ای های متعلق به ) ، Ґ(d1, d2برابر است با
و این مقدار زمانی ماکزیمم می شود که d = d = n/3
n
d2
1
n
d1
. 2
بدین دلیل فرض می کنیم . df= dg= n/3
داشتطور تقریبی کلید خصوصی )(f,g
پس به
آنگاه خواهیم
بردار کوتاهی در لتیس است
n|| (f , g ) || 2d 2d 4
(ماتریس باال مثلثی ست(
3NTRU
n
det(L
بردار)
qکوتاه تر از مقدار شهود
اندازه فاکتوری از
)h (f,gبه
1
(O
)
گوسی است.
n
g
f
بیشترین زمانی که در سیستم NTRUصرف می شود ،ناشی از ضرب
چندجمله ای هاست .از طرفی ضرایب در آنها 1و -1میباشد.
پس زمان اجرای این سیستم تنها صرف عملیات جمع و تفریق می شود.
می توان نتیجه گرفت که سیستم NTRUدارای پیچیدگی) O(n²است .که
در مقایسه با سیستم های RSAو ECCکمتر است .لذا NTRUاز
دیدگاه محاسباتی بسیار ارزان و کارآمد است.
NTRU پارامترهای امنیت
N
q
p
Moderate Security
167
128
3
Standard Security
251
128
3
High Security
347
128
3
Highest Security
503
256
3
NTRU پارامترهای معرفی شده
N
p
q
df
dg
dr
NTRU167:3
167
3
128
61
20
18
NTRU251:3
251
3
128
50
24
16
NTRU503:3
503
3
256
216
72
55
NTRU167:2
167
2
127
45
35
18
NTRU251:2
251
2
127
35
35
22
NTRU503:2
503
2
253
155
100
65
حمله متقارن همزمان روی NTRUبا
کاهش ناقطعی مشبکه
در اینجا شرحی از الگوریتم الس وگاس برای شکستن
سیستم NTRUارائه شده است.
(الگوریتم الس وگاس ،الگوریتمی ست که اگر خروجی داشته باشد؛حتما ً درست خواهد بود(.
• ورودی الگوریتم :
.Iپایه لتیس NTRU
t= || (f,g) || .II
می دانیم
t 2(d f d g ) 1
.زیرا
) f (d f , d f 1) , g (dg , dg
در این روش به دنبال برداری در مشبکه NTRUمی گردیم که
نرمش با نرم ) (f,gبرابری کند...
برای این منظور سعی می کنیم ؛ پایه لتیس را به پایه ای کاهش
دهیم که شامل بردار مطلوب باشد.
• قبل از ارائه الگوریتم ،الزم است تعاریفی را بیان کنیم:
تقارن لتیس NTRU
• اگر در نظر بگیریم
; U =(v1,v2,…,vn) ,
)W =(vn+1,vn+2,…,v2n
)V=(v1,v2,…,v2n) =(U,W
• ) : rotatek(xدرایه های بردار xرا kمرحله به سمت راست شیفت
می دهیم.
• تعریف می کنیم
) )Birotatek (V)=(rotatek(U), rotatek(W
• می توان نشان داد که در مشبکه NTRUعبارت زیر
برقرار می باشد:
Birotatek (V) ЄL
VЄ L
• همچنین اگر Lلتیسی صحیح باشد و } V={v1,…,vnپایه L
)΄det(L)=det(L
می توان ثابت کرد که ΄↔ L=L
باشد و wєL
آنگاه
A={v1,…,vi-1,w,vi+1,…,vn},
(برای هر (i=1,…,n
زیر مشبکه ΄ Lاز Lرا می پوشاند.
الگوریتم Birote
در این جا الگوریتمی ارائه می شود که یک ماتریس (Bپایه یک مشبکه(،
m,nای که || || bn ||>|| bmرا به عنوان ورودی گرفته و خروجی آن
ماتریسی است که حاصلضرب نرم سطورش کمتر از حاصلضرب نرم سطورB
• اگر Lمشبکه صحیح باشد و}) A={BT|TєSL(n,Zمجموعه تمام پایه
|| || b
( B)
های Lباشد .تابع : A Rرا با ضابطه ;B A
|| ) || ( f , g
تعریف کرده که bکوچکترین بردار نابدیهی در . B
• الگوریتمی که برای حمله به NTRUارائه خواهیم داد؛ تالش می کند
پایه ای برای Lبیابد که تصویر آن تحت تابع فوق برابر با 1باشد...
• مسئله بعدی در این حمله چگونگی مرتب سازی اعضای پایه است ،که
این فرایند نیز با استفاده از جایگشتی تصادفی که نسبت به جایگشت
همانی در kمکان (kثابت است( تفاوت دارد ،انجام میشود.
Hill-Descending Algorithm
با تشکر از توجه شما