سیستم رمزی کلید عمومی 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 p1  ( p.r * g  m * f )* f p1‬‬
‫‪mod p‬‬
‫‪ m * f * f p1‬‬
‫‪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‬‬
‫(ماتریس باال مثلثی ست(‬
‫ ‪3‬‬‫‪NTRU‬‬
‫‪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
‫با تشکر از توجه شما‬