رمزنگاری ان تی آریو. NTRU Encrypt یک سیستم رمزگذاری کلمات عمومی، که بیشتر به عنوان الگوریتم رمزنگاری NTRU شناخته می شود، بر پایه شبکه های رمزنگاری نامتقارن که مرتبط با RSA و ECC است که برای حل مشکل بردارهای کوچک در سیستم های شبکه ای ارائه شده است. (مشکل مورد نظر این است که رمزهایی ساخته شود تا به وسیلهٔ رایانه های کوانتومی شکسته نشود)عملیات این الگوریتم بر اساس عوامل ضرب چندجمله ای های R = Z / ( X N − 1 ) {\displaystyle \ R=Z/(X^{N}-1)} همراه با ضرب پیچیده به گونه ای که همه چندجمله ای های موجود در حلقه با ضرایب صحیح و توان حداکثر N-1 باشند.
NTRU: سیستم رمزنگاری کلید عمومی بر اساس حلقه. در نظریه اعداد الگوریتمی
بهینه سازی NTRU کلید عمومی رمزنویسی و تئوری اعداد محاسبه پذیر
پیاده سازی بهینه ی NTRU برای امنیت فراگیر.
NTRU در واقع از خانواده Parameterised سیستم های رمزنگاری می باشد به گونه ای که هر سیستم توسط سه پارامتر صحیح (N,p،q) مشخص شده، که به ترتیب نشان دهنده بیشترین درجه N − 1 {\displaystyle \ N-1} برای همه چندجمله ای ها در حلقه R و کمترین و بیشترین پیمانه است، با این شرایط که همواره N عدد اول، q بزرگتر از p و q و p نسبت به هم اول هستند. همچنین برای قرار دادن چندجمله ای های L f , L g , L m {\displaystyle \ {\mathcal {L}}_{f},{\mathcal {L}}_{g},{\mathcal {L}}_{m}} و L r {\displaystyle \ {\mathcal {L}}_{r}} (چندجمله ای که قسمتی از کلید خصوصی است، چندجمله ای برای ساختن یک کلید عمومی، پیام و مقدار مخفی شده، چندجمله ای متناظر) درجه همه آن ها باید حداکثر N − 1 {\displaystyle \ N-1} باشد.این عمل، بستگی به انتخاب درجه سختی فاکتورگیری از چندجمله ای های خاص موجود در حلقه و تبدیل آن به دو چندجمله ای با ضرایب بسیار کوچک دارد. شکستن رمز به مقدار زیادی با مشکلات موجود در کاهش شبکه (به منظور حل مشکلات برداری کوچک) ارتباط مستقیم دارد. دقت در انتخاب پارامترهای مناسب برای خنثی کردن حملات بسیار مهم و ضروری می باشد.از آنجایی که هم قسمت رمزگذاری و هم قسمت رمزگشایی از ساده ترین ضرب چندجمله ای ها استفاده می کند، بنابراین این عملیات در مقایسه با دیگر سیستم های رمزگذاری نامتقارن، مانند RSA، ElGamal و Elliptic curve cryptography بسیار سریع تر عمل می کند. با این وجود هنوز این سیستم رمزگذاری توسط معیارهای دقیق رمزنگاری رتبه دهی نشده است.
سیستم رمزنگاری کلیدهای عمومی مربوط به سیستم رمزنگاری جدید می باشد. اولین ورژن از این سیستم، که به طور اختصار NTRU صدا زده می شد، در حدود سال ۱۹۹۶ توسط سه دانشمند ریاضی (ج. هافستین، ج. پیفر، ج. سیلورمن) ساخته شد. در سال ۱۹۹۶ این ریاضیدانان در کنار هم و با کمک د. لیمن توانستند الگوریتم رمزگذاری NTRU را بدست آورند و حق امتیاز ثبت اختراع را در سیستم رمزنگاری بدست آورند.در ابتدا سیستم رمزنگاری، در مواقعی پیام کد شده را، حتی با وجود این که پیام به طور صحیح و کامل رمزگذاری شده بود، به طور ناقص به پیام اصلی تبدیل می کرد و در مواردی به طور کل ناتوان بود و به هیچ وجه پیام اصلی به وجود نمی آمد؛ بنابراین سازندگان این روش تصمیم گرفتند که از این الگوریتم برای رمزنگاری کلیدهای عمومی استفاده کنند و قسمت امنیت این سیستم را بر اساس این فرضیه که این الگوریتم برای رمزنگاری کلیدهای عمومی ساخته شده، بنا کردند.در ده سال گذشته افراد زیادی برای ارتقای سیستم رمزنگاری تلاش کردند تا زمانی که در اولین کنفرانس رسمی در مورد رمزنگاری تغییراتی برای افزایش کیفیت عملکرد خود سیستم و قسمت امنیت آن ایجاد شد. بیشتر تغییرات ایجاد شده در قسمت عملکرد، بیشتر بر روی افزایش سرعت رمزنگاری بود تا حل کردن مشکل رمزگشایی این سیستم. تا اینکه در سال ۲۰۰۵ مطبوعات توانستند مشکل این الگوریتم را در در رمزگشایی کشف و بیان کنند.به دلایل امنیتی، از زمان ارائه اولین ورژن این الگوریتم رمزنگاری، پارامترهای جدیدی تعیین شد که به نظر می رسید در برابر همه حملاتی که امروزه ما با آن ها آشنا هستیم مقاوم و امن هستند و باعث افزایش قدرت محاسبات نیز می شوند؛ ولی اکنون این سیستم به طور کامل توسط استانداردهای IEEE P1363 که برای رمزنگاری کلمات عمومی بر پایه شبکه به وجود آمده بود تأیید شده است. به دلیل سرعت بالای این روش در رمزنگاری کلیدهای عمومی و استفاده حافظه کمتر، می توان آن را در دستگاه های همراه و کارت های هوشمند به کار برد. در آوریل ۲۰۱۱، NTRUEncrypt به عنوان استاندارد X9.98 پذیرفته شد به گونه ای که اکنون می توان از آن در صنعت خدمات مالی مانند بانک ها استفاده کرد.
ارسال یک پیام مخفی از آلیس به باب نیازمند ساخت یک کلید عمومی و یک کلید خصوصی است. کلید عمومی هم توسط آلیس و هم توسط باب و کلید خصوصی تنها توسط باب قابل شناسایی است. برای تولید جفت کلید دو چندجمله ای f و g، با ضرایب بسیار کوچکتر از q، با درجه حداکثر N − 1 {\displaystyle \ N-1} و با ضرایب {۱٫۰٫۱-} مورد نیاز است. آن ها را می توان به عنوان باقی مانده همه کلاس های چندجمله ای ها به پیمانه X N − 1 {\displaystyle \ X^{N}-1} در R در نظر گرفت. چندجمله ای f باید نیاز دیگری مبنی بر جابه جا کردن پیمانه q و p (با استفاده از الگوریتم اقلیدسی) را برآورده کند که بدین معناست f ⋅ f p = 1 ( mod p ) {\displaystyle \ {\textbf {f}}\cdot {\textbf {f}}_{p}=1{\pmod {p}}} و f ⋅ f q = 1 ( mod q ) {\displaystyle \ {\textbf {f}}\cdot {\textbf {f}}_{q}=1{\pmod {q}}} باید ذخیره شوند؛ بنابراین وقتی f انتخاب شده قابل جا به جایی نباشد، باب باید از اول f دیگری را بدست آورد.هم f و هم f p {\displaystyle \ \mathbf {f} _{p}} کلیدهای خصوصی باب هستند و کلید عمومی h هم محاسبات کمی را به وجود خواهد آورد.
NTRU: سیستم رمزنگاری کلید عمومی بر اساس حلقه. در نظریه اعداد الگوریتمی
بهینه سازی NTRU کلید عمومی رمزنویسی و تئوری اعداد محاسبه پذیر
پیاده سازی بهینه ی NTRU برای امنیت فراگیر.
NTRU در واقع از خانواده Parameterised سیستم های رمزنگاری می باشد به گونه ای که هر سیستم توسط سه پارامتر صحیح (N,p،q) مشخص شده، که به ترتیب نشان دهنده بیشترین درجه N − 1 {\displaystyle \ N-1} برای همه چندجمله ای ها در حلقه R و کمترین و بیشترین پیمانه است، با این شرایط که همواره N عدد اول، q بزرگتر از p و q و p نسبت به هم اول هستند. همچنین برای قرار دادن چندجمله ای های L f , L g , L m {\displaystyle \ {\mathcal {L}}_{f},{\mathcal {L}}_{g},{\mathcal {L}}_{m}} و L r {\displaystyle \ {\mathcal {L}}_{r}} (چندجمله ای که قسمتی از کلید خصوصی است، چندجمله ای برای ساختن یک کلید عمومی، پیام و مقدار مخفی شده، چندجمله ای متناظر) درجه همه آن ها باید حداکثر N − 1 {\displaystyle \ N-1} باشد.این عمل، بستگی به انتخاب درجه سختی فاکتورگیری از چندجمله ای های خاص موجود در حلقه و تبدیل آن به دو چندجمله ای با ضرایب بسیار کوچک دارد. شکستن رمز به مقدار زیادی با مشکلات موجود در کاهش شبکه (به منظور حل مشکلات برداری کوچک) ارتباط مستقیم دارد. دقت در انتخاب پارامترهای مناسب برای خنثی کردن حملات بسیار مهم و ضروری می باشد.از آنجایی که هم قسمت رمزگذاری و هم قسمت رمزگشایی از ساده ترین ضرب چندجمله ای ها استفاده می کند، بنابراین این عملیات در مقایسه با دیگر سیستم های رمزگذاری نامتقارن، مانند RSA، ElGamal و Elliptic curve cryptography بسیار سریع تر عمل می کند. با این وجود هنوز این سیستم رمزگذاری توسط معیارهای دقیق رمزنگاری رتبه دهی نشده است.
سیستم رمزنگاری کلیدهای عمومی مربوط به سیستم رمزنگاری جدید می باشد. اولین ورژن از این سیستم، که به طور اختصار NTRU صدا زده می شد، در حدود سال ۱۹۹۶ توسط سه دانشمند ریاضی (ج. هافستین، ج. پیفر، ج. سیلورمن) ساخته شد. در سال ۱۹۹۶ این ریاضیدانان در کنار هم و با کمک د. لیمن توانستند الگوریتم رمزگذاری NTRU را بدست آورند و حق امتیاز ثبت اختراع را در سیستم رمزنگاری بدست آورند.در ابتدا سیستم رمزنگاری، در مواقعی پیام کد شده را، حتی با وجود این که پیام به طور صحیح و کامل رمزگذاری شده بود، به طور ناقص به پیام اصلی تبدیل می کرد و در مواردی به طور کل ناتوان بود و به هیچ وجه پیام اصلی به وجود نمی آمد؛ بنابراین سازندگان این روش تصمیم گرفتند که از این الگوریتم برای رمزنگاری کلیدهای عمومی استفاده کنند و قسمت امنیت این سیستم را بر اساس این فرضیه که این الگوریتم برای رمزنگاری کلیدهای عمومی ساخته شده، بنا کردند.در ده سال گذشته افراد زیادی برای ارتقای سیستم رمزنگاری تلاش کردند تا زمانی که در اولین کنفرانس رسمی در مورد رمزنگاری تغییراتی برای افزایش کیفیت عملکرد خود سیستم و قسمت امنیت آن ایجاد شد. بیشتر تغییرات ایجاد شده در قسمت عملکرد، بیشتر بر روی افزایش سرعت رمزنگاری بود تا حل کردن مشکل رمزگشایی این سیستم. تا اینکه در سال ۲۰۰۵ مطبوعات توانستند مشکل این الگوریتم را در در رمزگشایی کشف و بیان کنند.به دلایل امنیتی، از زمان ارائه اولین ورژن این الگوریتم رمزنگاری، پارامترهای جدیدی تعیین شد که به نظر می رسید در برابر همه حملاتی که امروزه ما با آن ها آشنا هستیم مقاوم و امن هستند و باعث افزایش قدرت محاسبات نیز می شوند؛ ولی اکنون این سیستم به طور کامل توسط استانداردهای IEEE P1363 که برای رمزنگاری کلمات عمومی بر پایه شبکه به وجود آمده بود تأیید شده است. به دلیل سرعت بالای این روش در رمزنگاری کلیدهای عمومی و استفاده حافظه کمتر، می توان آن را در دستگاه های همراه و کارت های هوشمند به کار برد. در آوریل ۲۰۱۱، NTRUEncrypt به عنوان استاندارد X9.98 پذیرفته شد به گونه ای که اکنون می توان از آن در صنعت خدمات مالی مانند بانک ها استفاده کرد.
ارسال یک پیام مخفی از آلیس به باب نیازمند ساخت یک کلید عمومی و یک کلید خصوصی است. کلید عمومی هم توسط آلیس و هم توسط باب و کلید خصوصی تنها توسط باب قابل شناسایی است. برای تولید جفت کلید دو چندجمله ای f و g، با ضرایب بسیار کوچکتر از q، با درجه حداکثر N − 1 {\displaystyle \ N-1} و با ضرایب {۱٫۰٫۱-} مورد نیاز است. آن ها را می توان به عنوان باقی مانده همه کلاس های چندجمله ای ها به پیمانه X N − 1 {\displaystyle \ X^{N}-1} در R در نظر گرفت. چندجمله ای f باید نیاز دیگری مبنی بر جابه جا کردن پیمانه q و p (با استفاده از الگوریتم اقلیدسی) را برآورده کند که بدین معناست f ⋅ f p = 1 ( mod p ) {\displaystyle \ {\textbf {f}}\cdot {\textbf {f}}_{p}=1{\pmod {p}}} و f ⋅ f q = 1 ( mod q ) {\displaystyle \ {\textbf {f}}\cdot {\textbf {f}}_{q}=1{\pmod {q}}} باید ذخیره شوند؛ بنابراین وقتی f انتخاب شده قابل جا به جایی نباشد، باب باید از اول f دیگری را بدست آورد.هم f و هم f p {\displaystyle \ \mathbf {f} _{p}} کلیدهای خصوصی باب هستند و کلید عمومی h هم محاسبات کمی را به وجود خواهد آورد.
wiki: رمزنگاری ان تی آریو