اس‌ام۴ (سایفر)

**اس‌ام۴**  با نام چینی **ShāngMì 4** (**SM4, 商密4**) (با نام قبلی **SMS4**) یک رمز قالبی است که به عنوان یک استاندارد رمزنگاری تجاری در چین پذیرفته شده است. از این رمز در استاندارد ملی چین برای شبکه محلی بی‌سیم WAPI و همچنین در امنیت لایه انتقال استفاده می‌شود.

SM4 به‌عنوان یک رمز برای استاندارد آی‌تریپل‌ئی ۸۰۲٫۱۱آی پیشنهاد شده بود، اما تاکنون رد شده است. یکی از دلایل رد شدن آن، مخالفت با پیشنهاد «مسیر سریع» مربوط به آی‌تریپل‌ئی بوده‌است.

SM4 در سال ۲۰۲۱ به صورت  منتشر شد.

الگوریتم اس‌ام۴ توسط مرکز تضمین داده و امنیت ارتباطات، آکادمی علوم چین و مرکز تست رمزنگاری تجاری اداره ملی رمزنگاری تدوین شده است. قسمت اعظم توسعه آن توسط لو شووانگ () انجام شده. این الگوریتم در ژانویه ۲۰۰۶ از حالت طبقه‌بندی خارج شد و در اوت ۲۰۱۶ به عنوان یک استاندارد ملی (GB/T 32907-2016) پذیرفته شد.

## جزئیات رمز
این رمز دارای اندازه کلید و اندازه بلوک ۱۲۸ بیتی است. فرایند رمزگذاری یا رمزگشایی یک بلوک داده متشکل از ۳۲ دور است. در این الگوریتم، برای تولید کلیدهای هر دور از یک طرح زمان‌بندی کلید غیرخطی استفاده می‌شود و رمزگشایی از همان کلیدهای دور استفاده می‌کند با این تفاوت که ترتیبشان معکوس است.

### کلیدها و پارامترهای کلید
طول کلیدهای رمزگذاری ۱۲۸ بیت است و به صورت MK=(MK_0,\ MK_1,\ MK_2,\ MK_3) نمایش داده می‌شود که در آن MK_i\ (i=0,\ 1,\ 2,\ 3) یک کلمه ۳۲ بیتی است. کلیدهای دور به صورت (rk_0,\ rk_1,\ \ldots,\ rk_{31}) نمایش داده می‌شوند که در آن هر rk_i(i=0,\ \ldots,\ 31) یک کلمه است. این کلیدها توسط کلید رمزگذاری اولیه و پارامترهای زیر تولید می‌شوند:

* FK=(FK_0,\ FK_1,\ FK_2,\ FK_3)

* CK=(CK_0,\ CK_1,\ \ldots,\ CK_{31})

مقادیر FK_i و CK_i کلمه هستند که در تولید کلیدهای دور استفاده می‌شوند.

### دور
مقدار هر دور با استفاده از چهار خروجی دور پیشین X_i, X_{i+1}, X_{i+2}, X_{i+3} و به شکل زیر محاسبه می‌شود: X_{i+4} = X_i \oplus F(X_{i+1} \oplus X_{i+2} \oplus X_{i+3} \oplus rk_i)

تابع F یک تابع جایگزینی است که از یک تبدیل غیرخطی (جعبه اس) و یک تبدیل خطی L تشکیل شده است.

### جعبه اس
 
*جعبه اس* در SM4 برای ورودی ۸ بیتی و خروجی ۸ بیتی ثابت است و به صورت Sbox() نشان داده می‌شود. مشابه اِی‌ئی‌اِس، *جعبه اس* مبتنی بر وارون ضربی بر روی  است. در اینجا تبدیل‌های آفین و پایه‌های چندجمله‌ای با اِی‌ئی‌اِس متفاوتند، اما به دلیل یکریختی آفین، با استفاده از جعبه اس اِی‌ئی‌اِس می‌توان آن را کارآمد محاسبه کرد. 

## تاریخچه
در تاریخ ۲۱ مارس ۲۰۱۲، دولت چین استاندارد صنعتی «GM/T 0002-2012 SM4 Block Cipher Algorithm» را منتشر کرد و به‌طور رسمی نام SMS4 به SM4 تغییر یافت.

نسخه‌ای از توضیحات اس‌ام۴ به زبان انگلیسی به صورت یک پیش‌نویس اینترنتی در دسترس است که حاوی یک پیاده‌سازی مرجع در آنسی سی است.

اس‌ام۴ بخشی از توسعه ARMv8.4-A در معماری آرم است. پشتیبانی از اس‌ام۴ برای معماری ریسک پنج در سال ۲۰۲۱ به عنوان افزونه Zksed تأیید شد.

پردازنده‌های اینتل از سری ارو لِیک، لونار لِیک، دایموند رَپید و کلیرواتر فارِست از اس‌ام۴ پشتیبانی خواهند کرد.

## یادداشت‌ها


## منابع

## پیوند به بیرون

* تحلیل خطی و تفاضلی رمز SM4 با دورهای کاهش‌یافته
* نمونه‌ای از پیاده‌سازی SMS4 به عنوان یک فایل صفحه‌گسترده
* صفحه مربوط به لو شووانگ (吕述望) (به چینی)
* پروژه GmSSL  (شاخه‌ای از OpenSSL که شامل الگوریتم‌های GuoMi است)
* https://www.iso.org/standard/81564.html (ISO/IEC 18033-3:2010/Amd 1:2021 فناوری اطلاعات — تکنیک‌های امنیتی — الگوریتم‌های رمزگذاری — بخش ۳: رمزهای قطعه‌ای — اصلاحیه ۱: SM4 )

رده:رمزنگاری قطعه‌ای 
رده:استانداردهای جمهوری خلق چین