گالوییس/مد شمارنده
در رمزنگاری، گالوییس/مد شمارنده (GCM) مد کاری برای رمزنگاری قطعه ای کلید متقارن است که به خاطر عملکردش به صورت گسترده ای مورد استفاده قرار گرفته است. گذردهی GCM برای استفاده ی جدیدترین تغییرات، کانال های ارتباطی با سرعت بالا میتواند با سخت افزارهایی با قیمت مناسب به دست بیاید.[۱] این عملیات یک الگوریتم رمزنگاری تأیید هویت است که طراحی شده تا داده هم اصالت (یکپارچگی) و هم محرمانگی خود را حفظ کند. GCM برای رمزنگاری قطعه ای با طول قطعه 128 بیت تعریف شده است. کد تایید هویت پیام گالوییس (GMAC) حالتی از GCM است که منحصرا با تایید هویت کار میکند و میتواند یک پیام تایید هویت افزایش یافته تولید کند. هر دوی GCM و GMAC وکتورهای آغازین با طول دلخواه را قبول میکنند.
مدهای کاری رمزنگاری های قطعه ای میتوانند بازده و مشخصات به طرز قابل توجهی متفاوتی داشته باشند، حتی زمانی که با رمزنگاری قطعه ای یکسانی استفاده میشوند. GCM میتواند از مزیت فرآیند های موازی به خوبی استفاده کند و پیاده سازی GCM میتواند به طرز موثری از خط لوله دستور یا خط لوله سخت افزاری استفاده کند.
در مقابل، مد کاری (CBC) زنجیره رمز-قطعه، از تاخیرهای قابل توجه در خط لوله که جلوی عملکرد و بازده آن را میگیرند رنج میبرد.
عملکرد پایه[ویرایش]
به مانند حالت های شمارش معمول، قطعه ها به صورت متوالی نام گذاری شده، سپس شماره این قطعه با وکتور آغازین (IV) ترکیب میشود و توسط رمزنگار قطعه ای E رمزنگاری میشود، معمولا AES. سپس نتیجه این رمزنگاری با متن اولیه XOR میشود تا متن رمزنگاری شده را تولید کنند. مانند همه ی مدهای شمارش، این ذاتا یک رمز جریانی است، پس این ضروری است که یک وکتور آغازین متفاوت برای هر جریانی که رمزنگاری میشود استفاده شود.
قطعات رمزنگاری ضرایبی از چندجمله ای ها در نظر گرفته میشوند که سپس به عنوان کلید وابسته به نقطه H ارزیابی میشوند، با استفاده از ریاضیات میدان متناهی. نتیجه سپس رمزنگاری میشود، و یک تگ تایید هویت که میتواند برای تایید جامعیت دیتا به کار برود تولید میکند. متن رمزنگاری شده سپس شامل وکتور آغازین، متن رمزنگاری و تگ تایید هویت است.
پایه ی ریاضی[ویرایش]
GCM مد شمارش شناخته شده رمزنگاری را با مد جدید گالوییس تایید هویت ترکیب میکند. مزیت اصلی راحتی استفاده از محاسبه موازی برای ضرب میدان گالوییس است که برای تایید هویت استفاده میشود. این ویژگی گذر دهی بیشتری نسبت به الگوریتم های دیگر، مانند CBC را سبب میشود که از مد زنجیره استفاده میکنند. میدان (GF(2128 استفاده شده با چند جمله ای زیر تعریف میشود
تگ تایید هویت با ورودی دادن قطعات اطلاعات به تابع GHASH و رمزنگاری نتیجه حاصل میشود. تابع GHASH اینگونه تعریف میشود
که (H = EK(0128 کلید هش است، رشته ای از 128 بیت صفر رمزنگاری شده با استفاده از رمزنگاری قطعه ای، A داده ای است که تنها تایید هویت شده (رمزنگاری نشده)، C متن رمزنگاری شده، m تعداد قطعات 128 بیتی در A (به بالا گرد شده)، n تعداد قطعات 128 بیتی در C (به بالا گرد شده)، و متغیر Xi برای i = 0, ..., m + n + 1 در زیر تعریف شده است.[۲]
در ابتدا، متن تایید هویت شده و متن رمزنگاری به طور جداگانه با صفر لایه گذاری میشوند تا 128 را چند برابر کنند و در یک پیام Si ترکیب شوند:
(len(A و (len(C نمایش 64 بیتی طول بیت های A و C هستند، به ترتیب، v = len(A) mod 128 طول بیتی آخرین قطعه A است، v = len(C) mod 128 طول بیتی آخرین قطعه C است، و اتصال رشته های بیتی به هم را نشان میدهد.
سپس Xi به صورت زیر تعریف میشود:
فرم دوم یک الگوریتم موثر تکرار شونده است (هر Xi به مقدار Xi-1 وابسته است) که با اعمال روش هورنر به ابتدا تولید شده است. تنها Xm+n+1 به عنوان خروجی باقی می ماند.
اگر موازی سازی محاسبه هش ضروری باشد میتوان این کار را با اختصاص منابع به تعداد K بار به شکل زیر انجام داد:
GCM توسط جان ویگا و دیوید اِی.مکگرو طراحی شد تا بهبود یافته ی مد CWC ( مد شمارنده ی کارتر- وگمِن) باشد.
در نوامبر سال 2007، NIST انتشار NIST Special Publication 800-38D Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC making GCM and GMAC official standards را اعلام کرد.[۳]
کاربرد[ویرایش]
مد GCM در (IEEE 802.1AE (MACsec امنیت اخلاقی، IEEE 802.11ad (که به عنوان WiGig هم شناخته میشود)، پروتوکل امنیتی کانال فیبری (ANSI (INCITS) (FC-SP، نوار ذخیره سازی IEEE P1619.1 ، استانداردهای [۴][۵]IETF Ipsec،[۶] SSH، [۷]TLS 1.2[۸]، TLS 1.3. AES-GCM[۹] در رمزنگاری NSA Suite B به کار رفته است و همچنین در جدیدترین جایگزینش در سال 2018 الگوریتم امنیتی تجاری ملی CNSA) suite).[۱۰] همچنین در سمت سرور و کاربر SoftEther VPN به کار رفته،[۱۱] مانند OpenVPN از ورژن 2.4 به بعد.
بازده[ویرایش]
GCM نیازمند یک عملیات رمزنگار قطعه ای و یک ضرب 128 بیتی در میدان گالوییس برای هر قطعه (128 بیت) داده تایید هویت و رمزنگاری شده است. عملیات های رمزنگار قطعه ای به آسانی موازی سازی میشوند یا از سیستم خط لوله بهره میبرند. عملیات های ضرب نیز به آسانی خط لوله ای میشوند و با مقداری تلاش میتوانند موازی سازی شوند (یا با موازی سازی اصل عملیات، یا با استفاده ازروش هورنر به ازای هر ورودی اولیه NIST ، یا هر دو روش).
اینتل دستور PCLMULQDQ را اضافه کرده است، و استفاده اش برای GCM را برجسته کرده است.[۱۲] در سال 2011، SPARC دستورهای XMULX و XMULXHI اضافه کرد، که همچنین ضرب 64 در 64 بیتی بدون کری را انجام میدهند. در سال 2015 SPARC دستور XMPMUL را اضافه کرد، که ضرب XOR مقادیر بسیار بزرگتری را انجام میدهد، تا 2048 × 2048 بیت ورودی که خروجی به اندازه 4096 بیت تولید میکند. این دستورات ضرب سریع در (GF(2n را ممکن ساختند، و با هر نمایش میدانی قابل استفاده اند.
نتایج عملکرد تاثیرگذاری برای GCM در عده ای از محیط ها منتشر شده است. کسپر و شوئیب یک " AES-GCM سریعتر و مقاوم به حمله های زمانی " را توصیف کرده اند[۱۳] که 10.68 چرخه برای هر بایت بدست می آورد به ازای AES-GCM رمزنگاری تایید هویت شده بر روی یک پراسسور اینتل 64 بیت. دای ات ال. گزارش میدهد 3.5 چرخه در هر بایت برای الگوریتم یکسان زمانی که از دستورات AES-NI و PCLMULQDQ اینتل استفاده میکند. شِی گیران و وِلَد کِرزنِف به 2.47 بایت در هر چرخه با اجرا روی نسل سوم پردازنده های اینتل دست یافتند. ابزارهای الحاقی مناسبی برای کتابخانه های OpenSSL و NSS نیز آماده شد.[۱۴]
وقتی هم تایید هویت و هم رمزنگاری باید روی پیامی اجرا شود، یک پیاده سازی نرم افزاری با اجرای مشترک این دو فرآیند میتواند به سرعت بالاتری دست یابد. بازده با بهره برداری از موازی سازی در سطح دستور با استفاده از دستورات پرکننده، افزایش یافت. این فرآیند بخیه زدن تابع نامیده میشود،[۱۵] و در حالی که در تئوری میتواند روی هر ترکیبی از توابع رمزنگاری اجرا شود، GCM به طور خاص برای این کار مناسب است.[۱۶] مَنلی و گِرگ آسانی بهنه سازی با فرآیند بخیه زدن تابع در هنگام استفاده از GCM را نشان دادند. آنها یک برنامه ساز ارائه کردند که نسخه مشروح برنامه ی الگوریتم رمزنگاری به زبان C را میگیرد و کدی تولید میکند که روی پردازنده هدف به راحتی اجرا میشود.
GCM برای مثال توسط آزمایشکاه های سیلیکون مورد انتقاد قرار گرفته برای استفاده در دنیای سیستمهای تعبیه شده، زیرا پردازش موازی برای سازگاری با موتورهای سخت افزاری رمزنگاری مناسب نیست و بنابراین بازده رمزنگاری بعضی از دستگاه های به شدت بازده حساس را کاهش میدهد.[۱۷]
حق اختراع[ویرایش]
با توجه به بیانیه ی نویسندگانش، GCM فارغ از حق اختراع است.[۱۸]
امنیت[ویرایش]
امنیت GCM در سیستم امنیت متمرکز ثابت شده است.[۱۹] زمانی امن است که با رمزنگاری قطعه ای که از جایگشت تصادفی قابل تشخیص نیست استفاده شود. به هر حال، امنیت وابسته به انتخاب یک وکتور آغازین منحصر به فرد برای هر رمزنگاری با کلید یکسان (حمله رمز جریانی را ببینید). برای هر ترکیب کلید داده شده و وکتور آغازین، GCM به رمزنگاری 256 - 239 بیت از داده اولیه (64 گیگا بیت) محدود است. نسخه مخصوص 800-38D NIST[۳] شامل راهنمایی ای برای انتخاب وکتور آغازین است.
قدرت تایید هویت به طول تگ هویت وابسته است، مانند همه ی کدهای تایید هویت پیام رمزنگاری های متقارن. استفاده از تگ های تایید هویت کوتاهتر با GCM توصیه نمیشود. طول تگ (t) یک پارامتر امنیتی است. به طور کلی مقدار t میتواند یکی از این 5 مقدار باشد: 128، 120، 112، 104، یا 96. برای کاربردهای خاص t ممکن است 64 یا 32 باشد، اما استفاده از این دو طول تگ طول ورودی و مدت زمان طول عمر کلید را محدود میکند. در NIST SP 800-38D، Appendix C برای این محدودیت ها راهنما مهیا میکند (برای مثال اگر t برابر 32 باشد و بیشترین طول یک مجموعه داده 210 بایت است، متد رمزگشایی تایید هویت نباید بیشتر از 211 بار صدا زده شود. اگر مقدار t برابر 64 باشد و بیشترین طول یک مجموعه داده 215 بایت است، متد رمزگشایی تایید هویت نباید بیشتر از 232 بار صدا زده شود)
مانند هر کد تایید هویت پیام، اگر مهاجم یک تگ t بیتی تصادفی را انتخاب کند، انتظار میرود به احتمال درست باشد. با GCM، به هر حال میتواند احتمال موفقیتش را با انتخاب تگ هایی با n کلمه – مجموع طول متن رمز شده به علاوه ی هر داده ی تایید هویت اضافی (AAD) – با احتمال برای هر ضریب n افزایش بدهد. گرچه، شخص باید در ذهن داشته باشد که این تگ های بهینه سازی همچنان با توسظ نجات الگوریتم به ازای t ای بزرگ و تصادفی محدود میشوند. به علاوه، GCM نه برای استفاده با تگ هایی با طول خیلی کوتاه نه برای پیام های خیلی طولانی مناسب است.
فرگوسن و سارینِن به طور جداگانه توصیف کرده اند که چگونه مهاجم میتواند حمله هایی بهینه در مقابل تایید هویت GCM انجام دهد، که با حد پایین امنیت آن مواجه شود. فرگوسن نشان داد، اگر n نشاندهنده مقدار تمام بلاک های در رمزنگاری باشد (ورودی تابع GHASH)، در این صورت روشی برای ساخت یک متن رمزنگاری شده جعلی با احتمال موفقیت وجود دارد. اگر طول تگ کمتر از 128 باشد، آنگاه هر متن جعلی موفق در این حمله احتمال موفقیت متن های جعلی هدف گذاری شده بعدی را افزایش میدهد، و همچنن نشت اطلاعات دریاره هش زیر کلید، H. در نهایت H ممکن است به طور کامل به خطر بیفتد و اطمینان از تایید هویت به طور کامل از بین برود.[۲۰]
به طور مستقل از این حمله، مهاجم ممکن است تلاش کند تا به صورت ساختار یافته تگ های بسیار زیادی را حدس بزند – با افزایش تعداد احتمال موفقیت را بالا ببرد - برای یک ورودی تا خروجی رمزنگاری تایید هویت شده ای تولید کند که یکی (یا بیشتر) از آن ها در نهایت به عنوان یک خروجی موثق قبول شود. به این دلیل، سیستم یا پروتوکلی که GCM را پیاده سازی میکند باید بر ورودی نظارت کند و در صورت لزوم، تعداد دفعاتی که تلاش ناموفق صورت میگیرد را محدود کند.
سارینِن کلید های ضعیف GCM را توصیف کرد.[۲۱] این کار بینش ارزشمندی نسبت به این که چگونه تایید هویت چندجمله ای مبتنی بر هش کار میکند میدهد. به طور دقیقتر، این کار راه به خصوصی برای جعل یک پیام GCM، با در اختیار داشتن پیام موثق، که با احتمال تقریبا n.2-128 برای پیام هایی با طول n*128 بیت کار میکند، را توصیف میکند. در هر حال، این کار راه موثرتری برای حمله از آن چه پیش از این شناخته شده بود ارائه نمیدهد. احتمال موفقیت در نسخه اول این مقاله برابر دومین عنوان از INDOCRYPT 2004 Analysis ( تنظیمات w=128, l = n*128). سارینِن همچنین یک نسخه تغییر یافته از GCM با نام (Sophie Germain CounterMode) (SGCM) بر پایه اعداد اول سوفی ژرمن را توصیف کرد.
مطالب مرتبط[ویرایش]
منابع و پانویس ها[ویرایش]
- ↑ Cryptographic Hardware and Embedded Systems — CHES 2007.صفحه پودمان:Citation/CS1/fa/styles.css محتوایی ندارد.
- ↑ McGrew, David A.; Viega, John (2005). "The Galois/Counter Mode of Operation (GCM)" (PDF). p. 5. Retrieved 20 July 2013.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد. Note that there is a typo in the formulas in the article.
- ↑ ۳٫۰ ۳٫۱ Dworkin, Morris (2007–2011). Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC (PDF) (Technical report). NIST. 800-38D. Retrieved 2015-08-18.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ RFC 5288 AES Galois Counter Mode (GCM) Cipher Suites for TLS
- ↑ RFC 5647 AES Galois Counter Mode for the Secure Shell Transport Layer Protocol
- ↑ RFC 6367 Addition of the Camellia Cipher Suites to Transport Layer Security (TLS)
- ↑ RFC 4543 The Use of Galois Message Authentication Code (GMAC) in IPsec ESP and AH
- ↑ RFC 8446 The Transport Layer Security protocol version 1.3
- ↑ RFC 4106 The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP)
- ↑ https://csrc.nist.gov/projects/computer-security-objects-register/algorithm-registration#AES
- ↑ «Why SoftEther VPN – SoftEther VPN Project».صفحه پودمان:Citation/CS1/fa/styles.css محتوایی ندارد.
- ↑ «Intel Carry-Less Multiplication Instruction and its Usage for Computing the GCM Mode (Revision 2.02)».صفحه پودمان:Citation/CS1/fa/styles.css محتوایی ندارد.
- ↑ Cryptographic Hardware and Embedded Systems – CHES 2009.صفحه پودمان:Citation/CS1/fa/styles.css محتوایی ندارد.
- ↑ «AES-GCM for Efficient Authenticated Encryption – Ending the Reign of HMAC-SHA-1?» (PDF).صفحه پودمان:Citation/CS1/fa/styles.css محتوایی ندارد.
- ↑ Gopal, V., Feghali, W., Guilford, J., Ozturk, E., Wolrich, G., Dixon, M., Locktyukhin, M., Perminov, M. "Fast Cryptographic Computation on Intel Architecture via Function Stitching" Intel Corp. (2010)
- ↑ Progress in Cryptology – INDOCRYPT 2010.صفحه پودمان:Citation/CS1/fa/styles.css محتوایی ندارد.
- ↑ «IoT Security Part 6: Galois Counter Mode».صفحه پودمان:Citation/CS1/fa/styles.css محتوایی ندارد.
- ↑ «The Galois/Counter Mode of Operation (GCM) Intellectual Property Statement» (PDF).صفحه پودمان:Citation/CS1/fa/styles.css محتوایی ندارد.
- ↑ Proceedings of INDOCRYPT 2004.صفحه پودمان:Citation/CS1/fa/styles.css محتوایی ندارد.
- ↑ Niels Ferguson, Authentication Weaknesses in GCM, 2005-05-20
- ↑ Markku-Juhani O. Saarinen (2011-04-20). "Cycling Attacks on GCM, GHASH and Other Polynomial MACs and Hashes". FSE 2012.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
This article "گالوییس/مد شمارنده" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:گالوییس/مد شمارنده. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.