استاندارد ایزو 10118: توابع درهم‌ساز (Hash functions) در امنیت اطلاعات

استاندارد ایزو 10118 یا ISO/IEC 10118 خانواده‌ای از استانداردهای رمزنگاری است که توابع درهم‌ساز (Hash functions) را برای کاربردهای امنیتی یکدست می‌کند؛ از تعریف و مدل کلی، تا معرفی مجموعه‌ای از الگوریتم‌های مرجع و شیوه‌های استفاده‌ی درست از آن‌ها. این سری معمولاً زمانی به کار می‌آید که بخواهید یک اثرانگشت کوتاه و ثابت‌طول از داده بسازید تا مثلاً در امضای دیجیتال، تضمین تمامیت یا تعهد به داده استفاده شود. بخش «کلیات» صراحتاً می‌گوید که توابع این سری بدون کلید هستند و در صورت نیاز به «تأیید اصالت پیام (MAC)»، باید آن‌ها را در کنار استاندارد دیگری مثل ISO/IEC 9797-2 به‌کار برد.

استاندارد ایزو 10118

سری ISO/IEC 10118 از چه بخش‌هایی تشکیل شده است؟

بخش 1 — کلیات و مدل مرجع (ISO/IEC 10118-1:2016 + Amendment 1:2021)

بخش 1 شالوده‌ی مشترک همه‌ی قسمت‌ها را می‌دهد: تعاریف، نمادها و «مدل کلی هش». طبق این مدل، عملیات هش چهار گام دارد: پُرکردن (Padding)، تکه‌تکه‌سازی (Splitting)، تکرار (Iteration) با یک «تابع دور» φ، و تبدیل خروجی (Output transformation) برای رسیدن به طول نهایی هش. همین سند معیارهای انتخاب الگوریتم برای ورود به سری 10118 را هم مشخص می‌کند.
در سال 2021 یک اصلاحیه برای همین بخش منتشر شد که «روش‌های padding برای توابع اسفنجی (sponge)» را اضافه می‌کند—طبیعتاً برای هم‌خوانی با خانواده‌ی SHA-3 که بر مبنای سازه‌ی اسفنجی است.

بخش 2 — توابع درهم‌ساز مبتنی بر رمز بلوکی (ISO/IEC 10118-2:2010)

این بخش چهار تابع هش را تعریف می‌کند که از یک رمز بلوکی n-بیتی به‌عنوان جزء سازنده استفاده می‌کنند؛ بنابراین اگر در سامانه‌تان همین حالا یک رمز بلوکی (طبق ISO/IEC 18033-3) دارید، می‌توانید با سربار کم، تابع هش استاندارد بسازید. چهار طرح ارائه‌شده طول‌های خروجی ≤n، ≤2n، =2n و =3n را پوشش می‌دهند و با همان مدل عمومی بخش 1 سازگارند. (این نسخه در 2021 بازبینی نظام‌مند شد و تأیید ماند.)

مطالعه پیشنهادی: استاندارد ایزو 10100: آزمون‌های پذیرش سیلندر هیدرولیک

بخش 3 — توابع درهم‌ساز اختصاصی (ISO/IEC 10118-3:2018)

ویرایش چهارم بخش 3 (2018) فهرست گسترده‌ای از هش‌های مرجع را در قالب «توابع اختصاصی» ارائه می‌کند؛ این نسخه نسبت به ویرایش 2004 به‌روز شده و علاوه بر خانواده‌های قدیمی‌تر، الگوریتم‌های SHA-3، Streebog (GOST R 34.11-2012) و SM3 را نیز افزوده است. همچنین توابع خروجی‌قابل‌گسترش SHA-3 (مانند SHAKE) به‌صورت پیوست اطلاعاتی آمده‌اند. مهم‌تر این‌که سند به‌صراحت هش‌های اختصاصی 1، 2 و 3 (RIPEMD-160، RIPEMD-128 و SHA-1) را برای پیاده‌سازی‌های جدید امضای دیجیتال «موقوف/نامطلوب» اعلام می‌کند.
فهرست مطالب این بخش نشان می‌دهد که موارد کلاسیک نظیر RIPEMD-160/128، SHA-1، SHA-256/384/512، Whirlpool و نیز SHA-3-512 و SM3 پوشش داده شده‌اند. در همین سند، برای برخی الگوریتم‌ها مدل «دور-تابع» و برای SHA-3 مدل اسفنجی تشریح می‌شود.

بخش 4 — توابع درهم‌ساز مبتنی بر حساب پیمانه‌ای (ISO/IEC 10118-4:1998 + Amd.1:2014)

این بخش دو تابع با نام MASH-1 و MASH-2 را استاندارد می‌کند که بر حساب پیمانه‌ای استوارند؛ طول هش خروجی را می‌توان بر اساس طول عدد اولِ به‌کاررفته مقیاس‌پذیر کرد. این نسخه که در 1998 منتشر شده، در 2022 بازبینی و تأیید شده و در 2014 نیز یک اصلاحیه‌ی شناسه‌های شیء (OID) برایش منتشر گردیده است.

نکتهٔ فنی: برای شناسه‌گذاری رسمی الگوریتم‌ها در پیام‌ها/پروتکل‌ها، شناسه‌های شیء (OIDs) در پیوست‌های اسناد تعریف شده‌اند؛ به‌طور مشخص Annex A در بخش 3 OID هر تابع را تعیین می‌کند.

چه چیزهایی در ویرایش‌های جدید مهم است؟

  • افزوده‌شدن SHA-3، Streebog و SM3 به بخش 3 (2018)، و یادداشت‌های احتیاطی درباره‌ی طول‌های کوتاه هش. همچنین XOFهای SHA-3 (مانند SHAKE128/256) به صورت اطلاعاتی آمده‌اند.
  • اصلاحیهٔ 2021 برای بخش 1: تعریف paddingهای مخصوص سازه‌ی اسفنجی تا بیان استانداردِ خانواده‌ی SHA-3 در سری 10118 کامل شود.

چگونه از ISO/IEC 10118 در پروژه‌ها استفاده کنیم؟

  1. الگوریتم و بخش/ویرایش را دقیق بنویسید. مثال:
    «SHA-256 per ISO/IEC 10118-3:2018» یا «SHA3-256 per ISO/IEC 10118-3:2018; padding per ISO/IEC 10118-1:2016/Amd.1:2021». این صراحت، ممیزی و هم‌خوانی با تأمین‌کننده را ساده می‌کند و در صورت نیاز می‌توانید OID استاندارد را نیز در مشخصات درج کنید.
  2. گزینش امنِ الگوریتم:
    • برای امضا/گواهی جدید، از SHA-1 یا RIPEMD-128/160 استفاده نکنید؛ خود بخش 3 استفاده از Dedicated Hash-Functions 1–3 را برای پیاده‌سازی‌های جدید موقوف اعلام کرده است. گزینه‌های توصیه‌شده معمولاً خانواده‌های SHA-2 (SHA-256/384/512) یا SHA-3 (SHA3-256/512) هستند.
    • اگر خروجی با طول دلخواه لازم دارید (مثلاً برای KDFها یا تعهدات با طول‌های خاص)، XOFهای SHA-3 (مانند SHAKE) در بخش 3 (ضمیمه) معرفی شده‌اند.
  3. طول خروجی را با حساسیت انتخاب کنید. امنیت در برابر تصادم به‌طور تقریبی با 2L/22^{L/2}2L/2 رشد می‌کند؛ خود سند تذکر می‌دهد که طول‌های کوتاه ریسک برخورد را بالا می‌برند و برای کاربردهای بلندمدت مناسب نیستند.
  4. سازگاری اکوسیستم را بسنجید. اگر سخت‌افزار/نرم‌افزارتان همین حالا رمز بلوکیِ استاندارد ISO/IEC 18033-3 دارد، بخش 2 راهی استاندارد برای ساخت هش بر پایه‌ی همان رمز فراهم می‌کند (چهار ساختار با خروجی‌های n تا 3n).
  5. برای MAC/تمامیتِ احرازشده، به سراغ استاندارد مکمل بروید. سری 10118 توابع بدون کلید را تعریف می‌کند؛ لذا اگر نیاز به MAC دارید، راه‌حل‌های مبتنی بر هش را در ISO/IEC 9797-2 ببینید. (بخش 1 همین را تصریح می‌کند.)

جمع‌بندیِ هر بخش استاندارد ایزو 10118 در یک نگاه

  • 10118-1 (2016): تعاریف، نمادها و مدل کلی عملیات هش (Padding → Splitting → Iteration → Output). اصلاحیهٔ 2021: Padding برای سازهٔ اسفنجی جهت هم‌خوانی با SHA-3.
  • 10118-2 (2010، تأییدشده در 2021): چهار تابع هش مبتنی بر رمز بلوکی n-بیتی با خروجی‌های n تا 3n؛ مناسب محیط‌هایی که از قبل رمز بلوکی استاندارد دارند. ISO
  • 10118-3 (2018): توابع اختصاصی؛ شامل RIPEMD-160/128، SHA-1، Whirlpool، SHA-2، SHA-3، Streebog، SM3 و XOFهای SHA-3 (پیوست). استفاده از DHF1-3 برای امضاهای جدید موقوف است.
  • 10118-4 (1998، تأییدشده در 2022): MASH-1/2 مبتنی بر حساب پیمانه‌ای؛ با اصلاحیه‌ی OID در 2014.

چرا ISO/IEC 10118 برای سازمان‌ها اهمیت دارد؟

  • استانداردسازی و قابلیت ممیزی: با نوشتن دقیق «الگوریتم/بخش/ویرایش»، برداشت همه‌ی طرف‌ها یکسان می‌شود و ارزیاب‌ها می‌توانند انطباق را بی‌ابهام کنترل کنند. (وجود OIDهای رسمی نیز برای ثبت در پروتکل‌ها مزیت است.)
  • به‌روز با وضعیت امنیتی: اضافه‌شدن SHA-3، Streebog، SM3 و هشدارها درباره‌ی خروجی‌های کوتاه در نسخه‌ی 2018 نشان می‌دهد که سند با یافته‌های رمزنگاری همگام است.
  • انعطاف در پیاده‌سازی: از طرح‌های مبتنی بر رمز بلوکی (Part 2) تا سازه‌ی اسفنجی (Part 3 + Amd.1) و حتی حساب پیمانه‌ای (Part 4)، بسته به محدودیت‌های سخت‌افزاری/پروتکل، گزینه‌ی استاندارد دارید.

یک چک‌لیست کوتاه برای درج در RFP/سند طراحی

  • نام الگوریتم و ارجاع دقیق: “SHA3-256 per ISO/IEC 10118-3:2018; padding per ISO/IEC 10118-1:2016/Amd.1:2021”. ItehISO
  • طول خروجی (مثلاً 256 بیت) و در صورت XOF، طول خروجی موردنیاز. Iteh
  • (در صورت نیاز) OID استاندارد برای ثبت در پیام/گواهی. Itehoid-base.com
  • اگر MAC می‌خواهید: “MAC per ISO/IEC 9797-2”. Iteh
به این مقاله امتیاز دهید!
[Total: 0 Average: 0]

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا
02146135223