
\chapter{آشنایی با رمزنگاری}\label{chap1}

\section{مقدمه}
از آن جایی که انسان موجودی اجتماعی است، همواره به دنبال برقراری ارتباط با دیگران بوده است. منظور از برقراری ارتباط، انتقال مفاهیم و مسائل از ذهن خود به ذهن مخاطب است. لازم است این مفاهیم را طوری انتقال دهیم که ذهن مخاطب دقیقاً همان مفهوم مدنظر ما را متصور شود. برای دست‌یابی به این هدف، از علائم، نوشتار، و آواهایی استفاده می‌کنیم که به صورت قرارداد، برای هر دو طرف دارای مفهوم یکسانی می‌باشد. این قرارداد از پیش تعیین شده را زبان می‌نامند و به مفاهیمی که توسط زبان بین انسان‌ها منتقل می‌شود، پیام می‌گویند.

هنگامی که متکلم قصد ارسال پیامی را دارد، پیش از هر چیز، باید هویت مخاطب، و پس از آن، نحوه‌ی انتقال پیام را مشخص کند. این فرآیند معمولا توسط حواس پنج‌گانه طرفین انجام می‌شود. برخی از پیام‌ها به اقتضا‌ی شرایط، ممکن است محرمانه بوده و این‌که پیام فقط برای مخاطب خاصی قابل فهم باشد، اهمیت بسیاری دارد. از همین رو، متکلم باید سازوکاری را در نظر بگیرد که شخص سوم و بیگانه‌ای که احتمالاً، در مسیر انتقال پیام وجود دارد، توانایی درک مفهوم پیام‌هایی که انتقال می‌دهد را نداشته باشد. از ساده‌ترین و ابتدایی‌ترین سازوکارها می‌توان به صحبت کردن به‌ صورت در گوشی اشاره کرد. 

امروزه با توسعه‌ی سیستم‌ها و شبکه‌های کامپیوتری، ماهیت و روش‌های انتقال پیام تغییر کرده است. این تغییر ماهیت، علاوه بر تسهیلاتی که به همراه داشته، مانند از بین بردن بُعد فاصله، چالش‌هایی نیز برای انتقال پیام‌ و ذخیره‌سازی آن‌ها پیش روی ما قرار داده است. مشابه روش سنتی، تعریف سازوکاری جهت تضمین اصالت مخاطب و انتقال محرمانه‌ی پیام، در مسیر انتقالی که دارای طرف‌های بیگانه‌ی زیادی می‌باشد، ضروری است. سازوکار‌های بسیاری به این منظور معرفی شده‌اند. از معروف‌ترین و مهم‌ترین سازوکارهای موجود می‌توان به رمزنگاری%
\LTRfootnote{Cryptography}%
، کدگذاری%
\setcounter{Coding}{2}
\LTRfootnote{Coding}%
 و نهان‌نگاری%
 \LTRfootnote{Steganography}%
 اشاره کرد. در فصل حاضر، به مفهوم و بیان اولیه‌های رمزنگاری خواهیم پرداخت.

\section{رمزنگاری}
مطالب این قسمت، از مرجع
\cite{jovanovic}
انتخاب شده است.\\
 رمزنگاری، علم تغییر متن پیام و یا اطلاعات به کمک کلید مخفی و با استفاده از یک الگوریتم رمز می‌باشد، به طوری که فقط شخصی که از کلید مخفی و الگوریتم استفاده شده آگاه است، توانایی استخراج اطلاعات اصلی از اطلاعات رمز شده را دارد و شخصی که از یکی یا هر دوی آن‌ها بی‌اطلاع باشد، قادر به دست‌یابی به اطلاعات رمزشده نخواهد بود. علم رمزنگاری بر پایه مقدماتی از جمله نظریه‌ی اعداد، نظریه اطلاعات و آمار بنا شده‌ و امروزه به‌طور ویژه در علوم مخابرات مورد مطالعه و استفاده قرار می‌گیرد.
\newline
\newline
\textbf{
اولیه‌های رمزنگاری‌ و پروتکل‌های رمزنگاری:}
\newline
اولیه‌های رمزنگاری%
\setcounter{Cryptographic Primitives}{4}%
%\LTRfootnote{Cryptographic Primitives}%
، به سیستم‌های رمزنگاری سطح پایینی اطلاق می‌شود که به‌طور معمول به عنوان پایه و چارچوب برای ساخت رمزهای سطح بالا به کار می‌روند. برای درک بهتر این مفهوم، از یک مثال بهره می‌بریم. یک ماشین در حالت اولیه، دارای فرمان، ۴ چرخ، پدال‌های گاز، ترمز، کلاج و ... می‌باشد. این امکانات، چارچوبی برای ساخت ماشین‌های مختلف بوده و با به‌کارگیری سایر امکانات، یک ماشین قابل استفاده ساخته می‌شود.
مشخص است که این اولیه‌های رمزنگاری‌ به تنهایی توانایی تضمین امنیت اطلاعات مورد نظر ما را ندارند و گاهی به استفاده از یک سیستم رمز، که ترکیبی از اولیه‌های رمزنگاری است، احساس نیاز می‌کنیم. با ترکیب سیستم‌های رمز موجود در هریک از این اولیه‌ها، یک پروتکل رمزنگاری شکل می‌گیرد.

\input{files/figs/chap1/fig1-1}
سه تقسیم‌بندی کلی برای اولیه‌های رمزنگاری موجود است که این سه دسته عبارت‌اند از الگوریتم‌های بدون کلید%
\LTRfootnote{Unkeyed}%
، کلید-متقارن%
 \LTRfootnote{Symmetric-Key} % 
و کلید-نامتقارن%
 \LTRfootnote{Asymmetric-Key}% 
 . در شکل 
\ref{fig1-1}
 نمایی کلی از متداول‌ترین اولیّه‌های رمزنگای را مشاهده می‌کنید. نوع و طریقه‌ی استفاده از کلید%
\LTRfootnote{Key}%
 هر یک از این دسته‌ها را با سایر دسته‌ها متمایز می‌کند. توضیح مختصری از اولیه‌های مذکور در ذیل بیان شده است. 
\newline
\newline
\textbf{
الگوریتم‌های بدون کلید:
}
\newline
     الگوریتم‌های بدون کلید به هیچ‌گونه اطلاعات سّری خاصی نیازمند نیستند.
\newline
\newline
\textbf{
الگوریتم‌های کلید-متقارن:
}
\newline
     الگوریتم‌های کلید-متقارن، فقط از یک کلید مخفی استفاده کرده و با به اشتراک‌گذاری این کلید بین طرف‌های دیگر رمزنگاری%
  \LTRfootnote{Partners}%
  ، قادر به انجام تمامی عملیات رمزنگاری مثل رمزگذاری و یا رمزگشایی خواهند بود.
\newline
\newline
\textbf{
الگوریتم‌های کلید-نامتقارن:
}
\newline
     برای استفاده از الگوریتم‌های کلید-نامتقارن، هر یک از طرف‌های دیگر رمزنگاری به دو کلید منحصر به فرد نیاز دارند، یک کلید عمومی%
   \LTRfootnote{Public}%
 و یک کلید خصوصی%
    \LTRfootnote{Private}%
 . هر یک از کلیدهای مذکور، ارتباطی محکم با کلید دیگر داشته و هر یک برای منظور خاصی به‌کار می‌رود که در ادامه درباره آن توضیح مختصری بیان می‌کنیم: 
   \textbf{
   کلید عمومی
   }،
 کلیدی است که برای رمزگذاری یا اعتبارسنجی امضای دیجیتال کاربرد دارد، در حالی که
    \textbf{
     کلید خصوصی
     }
      برای رمزگشایی یا ایجاد امضاهای دیجیتال به کار می‌رود.

تمرکز ما در این پایان‌نامه بر روی رمزنگاری متقارن بوده و در این بخش به تعریف اصول پایه‌ای آن می‌پردازیم. به‌علاوه، توضیحی مختصر از توابع چکیده‌ساز و نقش به‌سزای آن‌ها در رمزنگاری ارائه می‌دهیم. برای مطالعه‌ی مباحث دیگر در صورت تمایل می‌توانید به مراجع استاندارد در زمینه رمزنگاری مراجعه کنید.
    
     با رمزنگاری کلید-متقارن، اهداف امنیتی متفاوتی قابل دست‌یابی است. با این وجود، سه‌ هدف امنیتی پایه‌ای را ذکر می‌کنیم که عبارت‌اند از:
\newline
\textbf{
محرمانگی:
}
\newline
  محرمانگی تضمین می‌کند که مهاجمی که دارای دسترسی به یک کانال ارتباطی می‌باشد، نتواند از پیام‌های به اشتراک گذاشته ‌شده در آن کانال بین طرفین رمزنگاری، اطلاعاتی استخراج کند.
\newline
\textbf{
صحت داده‌ها:
}
\newline
 صحت داده‌ها تضمین می‌کند که مهاجمی که دارای دسترسی به یک کانال ارتباطی می‌باشد، توانایی تغییر محتوای پیام‌های به اشتراک گذاشته شده را نداشته باشد. به عبارت دیگر، در صورتی‌ که مهاجم بتواند محتوای پیام‌ها را مخدوش کند، متوجه تغییرات شده و قادر به تشخیص عدم صحت اطلاعات باشیم.
\newline
\textbf{
احراز اصالت%
\LTRfootnote{Authenticity}:
}
\newline
احراز اصالت تضمین می‌کند که، مهاجمی که دارای دسترسی به یک کانال ارتباطی می‌باشد، قادر به دست‌کاری اطلاعات مربوط به منبع هر یک از پیام‌های به اشتراک گذاشته شده نباشد. به عبارت بهتر از این‌که مهاجم بتواند خود را به‌عنوان یکی از منابع معتبر ارسال پیام معرفی کند، جلوگیری می‌کند.

انواع دیگری از ساختارهای رمزنگاری کلید-متقارن را نیز می‌توان مشخص کرد که به اهداف دیگری جز اهداف مذکور می‌رسند. در ادامه‌ این بخش، رمزهای پایه‌ی رمزنگاری کلید-متقارن را که در شکل
\ref{fig1-1}
 بیان شده‌اند، تعریف کرده و نقش آن‌ها در رسیدن به اهداف بالا را شرح خواهیم داد.  
 \subsection{رمز قالبی}
رمزهای قالبی، هسته‌ی اولیه جهت ساخت چارچوبی برای رمزهای کلید-متقارن بوده و تضمین‌کننده محرمانگی داده‌های پردازش‌شده می‌باشند. رمزهای قالبی معمولا برای طراحی رمزهای پایه‌ی دیگر‌، از جمله رمزهای جریانی، توابع چکیده‌ساز یا کدهای احراز هویت پیام نیز استفاده می‌شوند. در ادامه، برخی از تعاریف اولیه را ارائه کرده و سپس، به بررسی روش‌های معمول برای طراحی رمزهای قالبی خواهیم پرداخت. 
\begin{dfn}
فرض کنید
$k,b\geq1$%
.
رمز قالبی، یک چندتایی به شکل
$\Pi=(\mathcal{E},\mathcal{D})$
می‌باشد که در آن، تابع رمزگذاری%
\LTRfootnote{Encryption}%
 به صورت زیر تعریف می‌شود:
$$\mathcal{E}:\mathbb{F}^{k}_{2} \times \mathbb{F}^{b}_{2}\rightarrow \mathbb{F}^{b}_{2}, (K,M)\mapsto C$$
تابع فوق، یک جایگشت%
\LTRfootnote{Permutation}%
 روی متن‌های ساده%
\LTRfootnote{Plaintexts}%
$M \in \mathbb{F}^{b}_{2}$
به‌ازای یک کلید مخفی ثابت
$K \in \mathbb{F}^{k}_{2}$
 است. که اندازه‌ی کلید مخفی را با 
 $k$
 و اندازه‌ی قالب را با
 $b$
 نشان می‌دهیم.
\end{dfn}
به معکوس تابع رمزگذاری
$\mathcal{E}$،
 تابع رمزگشایی%
\LTRfootnote{Decryption}،
$\mathcal{E}^{-1}$
 گفته و آن‌ را با
$\mathcal{D}$
نمایش می‌دهیم. به‌طور مشخص، معادله‌ی
$\mathcal{D}_{K}(\mathcal{E}_{K}(M))=M$
برای کل متن‌های ساده
$M \in \mathbb{F}^{b}_{2}$
و کلید مخفی 
$K \in \mathbb{F}^{k}_{2}$
برقرار بوده و آن‌ها را به ترتیب با
$\mathcal{E}_{K}(\cdot) =\mathcal{E}(K,\cdot)$
 و 
 $\mathcal{D}_{K}(\cdot) =\mathcal{D}(K,\cdot)$
 نمایش می‌دهیم. 
 مقادیر معمول برای 
 $k$%
،
 64%
،
 80%
،
  96%
،
   128%
،
    192%
، و 256 بیت بوده و برای 
 $b$%
، اغلب مقادیر
  64%
 ،
  128
   یا 256 بیتی به کار می‌روند. 

رمزهای قالبی، گروه‌هایی از جایگزینی را مشخص می‌کنند. اندازه‌ی قالب 
 $b$%
 بیتی، فضای کلیه جایگشت‌های ممکن را تخمین می‌زند. این در حالی‌ است که، اندازه کلید
 $k$%
 بیتی، تعداد جایگشت‌هایی که واقعا ساخته شده‌اند را تخمین می‌زند. به بیان دقیق‌تر، برای اندازه کلید 
 $k$%
 بیتی، تعداد 
 $2^k$
 کلید منحصر به فرد وجود داشته و انتخاب یکی از آن‌ها (به‌طور کاملا تصادفی)، یکی از جایگشت‌های عضو مجموعه 
 $2^b$
 ورودی را (به صورت تصادفی) برمی‌گزیند.
 
 به‌ کمک تقریب استرلینگ%
 \LTRfootnote{Stirling’s Approximation}،
  درمی‌یابیم که 
 $(2^b)!$
 جایگشت منحصر به فرد روی قالب‌های ورودی 
 $b$%
 بیتی وجود داشته که تقریباً با مقدار 
 $2^{(b-1)2^b}$
 متناظر است. مهاجم معمولا قصد دارد کلیدی را که متعلق به فرد دیگری است به طرق مختلف به دست بیاورد. حاصل این جایگشت‌ها، نشان‌دهنده‌ی روابط قابل تشخیصی که بتوان با استفاده از آن‌ها به یک سیستم رمزنگاری نفوذ کرد، نیستند.
 
 رمزهای قالبی غالبا به‌صورت تکراری%
 \LTRfootnote{Iterative}%
  ساخته شده و رمز کردن هر کدام از قالب‌ها به‌صورت تکراری انجام می‌گیرد. هر تابع دور 
 $f_i(K_i,\cdot)$
 دوسویه و وابسته به کلید بوده و روی قالب‌های 
 $b$%
 بیتی از اطلاعات عمل می‌کند. کلید مخفی دور 
 $i$%
 ام را 
 $K_i$
 می‌نامیم که در آن 
 $i\in \{0,\ldots,r-1\}$
 و
 $r$
 نشان‌دهنده تعداد دورها می‌باشد.
\begin{dfn}
تابع رمزگذاری یک سیستم رمز قالبی تکراری، به‌ شکل زیر تعریف می‌شود:
 $$\mathcal{E}(K,\cdot) =f_{r-1}(K_{r-1},\cdot) \circ f_{r-2}(K_{r-2},\cdot) \circ \ldots \circ f_{0}(K_0,\cdot)$$
 که 
 $\circ$
 نشانگر ترکیب توابع می‌باشد. به طریق مشابه، رمزگشایی نیز به شکل زیر تعریف می‌شود:
 $$\mathcal{D}(K,\cdot) =f^{-1}_0(K_{0},\cdot) \circ f^{-1}_1(K_{1},\cdot) \circ \ldots \circ f^{-1}_{r-2}(K_{r-2},\cdot) \circ f^{-1}_{r-1}(K_{r-1},\cdot)$$
 که در آن
 $f^{-1}_i(K_i,\cdot)$
نشان‌دهنده معکوس تابع
 $f_{i}(K_{i},\cdot)$
 است. 
\end{dfn}
برای ایجاد کلیدهای هر دور
 $K_i$%
 ، کلید اصلی 
 $K$
  توسط یک طرح کلید مثل
 $g$،
  به‌ صورت زیر بسط داده می‌شود:
$$g:\mathbb{F}^k_2 \rightarrow \mathbb{F}^{qr}_2 : K \mapsto (K_0,K_1,\ldots,K_{r-2},K_{r-1})$$
  که 
 $q$
 نشانگر اندازه بیتی کلید دور می‌باشد. در اغلب موارد، 
 $q$
 دارای مقدار برابری با اندازه قالب می‌باشد یعنی
 $q=b$%
 . شکل
\ref{fig1-2}،
  نشان‌دهنده یک رمز قالبی تکراری به‌ صورت توابع رمزگذاری تکراری می‌باشد. بسته به طراحی قالب رمز، اکثرا از کلیدهایی که کلیدهای سفیدکننده%
  \LTRfootnote{Whitening Keys}%
   نام دارند، استفاده می‌شود. به صورتی که در ابتدا و انتهای هر دور استفاده شده و با متن ساده و متن رمز ترکیب می‌شوند.
\input{files/figs/chap1/fig1-2}
 اگر بتوان در طراحی مجدد یک قالب رمز، به‌جای جمع انحصاری 
 $\mathrm{XOR}$
 کلیدهای دور، از توابع متوالی بدون کلید مخفی استفاده نمود، آن‌گاه می‌توان در مورد ساختارهای جایگزینی%
 \LTRfootnote{Key-Alternating}%
  کلید بحث کرد. به این نکته نیز توجّه داشته باشید که رمزهای فایستل نیز در بعضی از حالات می‌توانند دارای کلید جایگزین باشند. اما الزامی برای بازسازی آن‌ها به این شکل وجود ندارد.
 
 حال، توضیحاتی مختصر از سه طرح معمول برای رمزهای قالبی، که شبکه‌های فایستل%
 \LTRfootnote{Feistel Networks}%
 ، شبکه‌های جانشینی-جایگشتی%
 \LTRfootnote{Substitution-Permutation Networks}%
 ، و طرح‌های لای-مِسی%
 \LTRfootnote{Lai-Massey}%
  نام دارند، بیان می‌کنیم. شکل
\ref{fig1-3}، 
مفهوم توابع دور برای هر یک از طرح‌های مذکور را نمایش می‌دهد.
 \input{files/figs/chap1/fig1-3}
 \subsubsection{شبکه‌های فایستل}‍
رمزهای قالبی بر پایه‌ی شبکه‌های فایستل، مانند بخش (الف) شکل
\ref{fig1-3}%
، در هر دور، متن ورودی را به دو نیم تقسیم می‌کنند. معمولا نیمه‌ی سمت راست آن را با 
$Y_i$
و سمت چپ را با 
$X_i$
نمایش می‌دهند که در آن
$0 \leq i \leq r$%
. متن ساده به‌صورت
$X_i \parallel Y_i$
به سیستم رمز داده می‌شود. در هر دور، تابع غیرخطی 
$f$
که وابسته به کلید دور
$K_i$
است، به یکی از دو نیمه اعمال می‌شود. سپس، با نیمه‌ی دیگر متن ورودی
$\mathrm{XOR}$
می‌شود. در نهایت، دو نیمه با هم جابه‌جا شده و دور به پایان می‌رسد. بنابراین، یک دور از شبکه‌ی فایستل را می‌توان به شکل زیر نوشت:

\begin{equation*}
\begin{aligned}
&X_{i+1} = Y_i\\
&Y_{i+1}=X_i \oplus f_{K_i}(Y_i)
\end{aligned}
\end{equation*}
که در بخش (الف) شکل
\ref{fig1-3}
 نیز نشان داده شده بود.

 این رویه، تا جایی که به دور معین 
$r$%
ام برسیم، ادامه دارد. در نهایت خروجی روال که به صورت
$X_r \parallel Y_r$
نشان داده می‌شود، همان متن رمز مورد نظر است. توجه داشته باشید که دو سویه بودن
$f$
الزامی نیست. رمزگشایی می‌تواند با روندی مشابه به رمزگذاری انجام گیرد. کافی است که جای 
$X_i$%
ها و 
$Y_i$%
ها را با هم تغییر دهیم. البته بررسی انطباق آن‌ها با طرح کلید و در صورت نیاز سازگارسازی آن‌ها ضروری می‌باشد. 

تشابه روند رمزگذاری و رمزگشایی به یکدیگر، به صرفه‌جویی در هزینه‌ها کمک شایانی می‌کند. به عنوان مثال هنگام پیاده‌سازی سیستم رمز روی یک سخت‌افزار. از این‌رو، امکان پیاده‌سازی این نوع رمزها روی سخت‌افزارهای با منابع محدود، وجود دارد. 
$\mathrm{DES}$%
،
$\mathrm{Twofish}$%
و
$\mathrm{SIMON}$
که یک رمز سبک‌وزن%
\LTRfootnote{Lightweight}%
 می‌باشد، از مشهورترین سیستم‌های موجود بر پایه‌ی این نوع رمز بوده که توسط آژانس امنیت ملی آمریکا%
\LTRfootnote{NSA}%
انتشار یافته‌اند.
\subsubsection{شبکه‌های جانشینی-جایگشتی}
روش مرسوم دیگر برای طراحی رمز قالبی، شبکه‌های جانشینی-جایگشتی
$(\mathrm{SPN})$
 می‌باشد که در بخش (ب) شکل
\ref{fig1-3} 
  نشان داده‌ شده است. مبنای ساخت این نوع از رمزهای قالبی، جانشینی%
  \LTRfootnote{Substitution}%
   لایه‌ی
$S$
است که گروهی از بیت‌های ماتریس وضعیت را به‌ صورت غیرخطی و به‌ طور مستقل از یکدیگر، مطابق جدول مشخصی که آن را
$\mathrm{S-Box}$
می‌نامیم جایگزین می‌کند. سپس، لایه‌ی
$P$
این گروه از بیت‌های جایگزین‌شده را به‌صورت خطی و با استفاده از عملگر
$\mathrm{XOR}$،
در سراسر ماتریس وضعیت توزیع کرده و در نهایت آن‌ها را با کلید دور
$K_i$%
،
$\mathrm{XOR}$
می‌کند. 

در بعضی از مواقع، تابع هر دور با مقدار ثابتی
$\mathrm{XOR}$
می‌شوند تا بتوان از برخی حملات به سیستم رمز مانند حملات اسلایدی%
\LTRfootnote{Slide Attacks}%
 جلوگیری کرد. رابطه‌ی پایه‌ای مربوط به هر دور را به‌صورت
$$X_{i+1}=P(S(X_i)) \oplus K_i$$
 نشان می‌دهیم. رمزهای قالبی
$\mathrm{SPN}$،
به همراه یک مکانیزم کلید جایگزین تعریف شده و معمولا توابع رمزگذاری و رمزگشایی آن‌ها در مقایسه با شبکه‌ی فایستل، کاملا متفاوت است. با این وجود، اخیرا تلاش‌هایی برای ساخت این نوع از رمزهای قالبی با استفاده از قالب‌های انعطاف‌پذیر انجام شده تا بتوان توابع رمزگذاری و رمزگشایی را به‌طور مشابهی تعریف کرد. رمز
$\mathrm{PRESENT}$
 نمونه‌ای از این نوع رمزهاست. از
 $\mathrm{AES}$%
 ،
 $\mathrm{PRESENT}$
 و
 $\mathrm{LED}$
 مثال‌های مهم دیگری از این‌ نوع رمز می‌باشند.
 \subsubsection{طرح‌های لای-مِسی
 }
 دسته‌ی سوم رمزهای قالبی که کاربرد کمتری از دو دسته‌ی دیگر دارند، طرح‌های لای-مِسی
 نام دارند که ساختار آن‌ها در بخش (ج) شکل
\ref{fig1-3}
   قابل مشاهده است. مشابه رمزهای شبکه‌ فایستل، این طرح نیز ماتریس وضعیت را به دو بخش
 $X_i$
 و
 $Y_i$
 تقسیم می‌کند. در طراحی تابع دور این رمز، از یک تابع نیم‌دور به نام
 $H$
 و یک انتقال وابسته به کلید
 $f_{K_i}$
 استفاده می‌شود که
 $K_i$
 نشانگر کلید دور می‌باشد. معمولاً تابع
 $H$
 روی نیمه‌ی چپ ماتریس وضعیت یا همان
 $X_i$
 توسط عملگر
 $\sigma$
 به ‌صورت 
 $(\sigma (X_i),Y_i)$
 اعمال شده و نیاز است از آن در مقابل حمله تشخیص بدیهیات%
 \LTRfootnote{Trivial Distinguishing Attacks}%
  محافظت کرد. توابع فوق‌الذکر به صورت زیر تعریف می‌شوند.
\begin{equation*}
\begin{aligned}
(A_i,B_i)&=H(X_i,Y_i)\\
C_i&=f_{K_i}(A_i \boxminus B_i)\\
(X_{i+1},Y_{i+1})&=(A_i \boxplus C_i,A_i \boxplus C_i)
\end{aligned}
\end{equation*}
 مشابه شبکه فایستل، تابع
 $f$
 نباید معکوس‌پذیر باشد. طرح‌های
لای-مِسی
 همراه با
 $\mathrm{IDEA}$
 معرفی شدند.  استاندارد رمزنگاری کشور بلاروس و برخی از طرح‌های
  $\mathrm{IDEA-NXT}$
نمونه‌هایی از این سیستم می‌باشند.
\subsubsection{سبک‌های رمز قالبی}
رمزهای قالبی در آنِ واحد توانایی رمزگذاری/رمزگشایی تنها یک قالب با اندازه‌ی ثابت را دارند. برای پردازش پیام‌های طولانی‌تر، باید قالب‌های رمز را با مکانیزم‌های مناسب، که سبک‌های رمز قالبی%
\LTRfootnote{Block Cipher Modes}%
 نام دارند، در کنار هم قرار داد. اولین سبک رمز قالبی توسط موسسه‌ی ملی استاندارد و فناوری آمریکا%
 \LTRfootnote{NIST}%
برای استفاده در سیستم‌ رمز
$\mathrm{DES}$
در
$\mathrm{FIPS 81}$
ارائه و  استانداردسازی شد و بعدها نیز در سیستم رمز
$\mathrm{AES}$
استفاده شد. به عنوان مثال‌های دیگری از این سبک‌ها می‌توان به کتابچه کد الکترونیکی%
\LTRfootnote{Electronic Codebook}%
$(\mathrm{ECB})$%
، زنجیره‌ی رمز قالبی%
\LTRfootnote{Block Cipher Chaining}%
$(\mathrm{CBC})$%
، بازخورد متن رمز%
\LTRfootnote{Ciphertext-Feedback}%
$(\mathrm{CFB})$%
، بازخورد خروجی%
\LTRfootnote{Output-Feedback}%
$(\mathrm{OFB})$
 و شمارنده%
 \LTRfootnote{Counter}%
$(\mathrm{CTR})$
  اشاره کرد. 
\subsection{رمزهای جریانی}
یکی دیگر از مهم‌ترین سیستم‌های رمزنگاری کلید-متقارن، رمزهای جریانی می‌باشند. برخلاف رمز قالبی که داده‌ها را در قالب‌های با طول مشخص رمزگذاری می‌کند، رمز جریانی با پردازش یک زنجیره‌ی کلید%
\LTRfootnote{Key Stream}%
، که به صورت زنجیره‌ی بیتی شبه تصادفی%
\LTRfootnote{Pseudo-Randomly}%
 تولید می‌شوند (که گاهی ممکن است شامل تمام بیت‌ها شود) و طول آن برابر با طول متن ساده است، و با
$\mathrm{XOR}$
کردن و جایگزینی آن با متن ساده، رمزگذاری را انجام می‌دهد. 

این خصوصیت، رمزهای جریانی را بسیار انعطاف‌پذیرتر کرده است. به‌طوری که بر‌خلاف سیستم‌های رمز قالبی، برای رمزگذاری متن‌های نسبتا طولانی نیازی به خرد کردن پیام یا استفاده از سبک‌های رمز (مشابه آن‌چه که پیش‌تر در مورد رمزهای قالبی گفته شد) نخواهیم داشت. با این وجود، باید توجه داشت که به‌ آسانی می‌توان یک رمز قالبی را به یک رمز جریانی تبدیل کرد. برای مثال، با استفاده از سبک شمارنده در رمزهای قالبی، این موضوع امکان‌پذیر است. در ادامه، به تعریف صورت کلی رمزهای جریانی می‌پردازیم.
\begin{dfn}
فرض کنید
$k,n \geq 1$%
. یک رمز جریانی مانند
$\mathcal{S}$
به‌صورت زیر تعریف می‌شود:
$$\mathcal{S}:\mathbb{F}^{k}_2 \times \mathbb{F}^{n}_2 \times \mathbb{F}^{*}_2 \rightarrow \mathbb{F}^{*}_2,(K,N,M) \mapsto S \oplus M$$
که در آن،
$K$
کلید مخفی، 
$N$
یک بردار آغازین%
\LTRfootnote{Initialisation Vector}%
یا عددی یک بار مصرف%
 \LTRfootnote{Nonce}%
 ، 
$M$
یک متن ساده، و
$S$
یک رشته‌ی کلید شبه تصادفی با اندازه‌ی
$|M|$
می‌باشد.
\end{dfn} 
متن رمز 
$C$
با خروجی تابع
$\mathcal{S}$
که حاصل
$S\oplus M$
 می‌باشد، متناظر است. از آن‌جایی که عمل
$\mathrm{XOR}$
معکوس‌پذیر می‌باشد، رمزگشایی نیز با رویه‌ای کاملا مشابه با رمزگذاری قابل انجام است، فقط کافی است که جای 
$C$
و
$M$
را با یک‌دیگر تعویض کنیم. از این رو، با محاسبه‌ی
$$\mathcal{S}(K,N,C)=S \oplus C=M$$
قادر به بازیابی متن ساده خواهیم بود.

لازم به ذکر است که، ماهیت بردار آغازین و مقدار ثابت با یک‌دیگر متفاوت است، به ‌طوری که بردار آغازین باید به صورت یکنواخت با مؤلفه‌های تصادفی انتخاب شود. اما مقدار ثابت، مقداری یکتاست. بدین ترتیب امنیت الگوریتم تضمین می‌شود. با این اوصاف، مقدار ثابت فقط یک بار قابل استفاده است که این ویژگی روی بردارهای آغازین امکان‌پذیر نیست. این‌که از کدام یک در الگوریتم موردنظر استفاده شود، بستگی به مورد استفاده از ساختار رمزنگاری دارد.

بدون شک، یکی از مشهورترین سیستم‌های رمز جریانی
$\mathrm{RC4}$
می‌باشد که توسط ریوِست%
\LTRfootnote{Rivest}%
 در سال ۱۹۸۷ طراحی شد. با وجود کشف نقطه ضعف‌های بسیار که اغلب نفوذ و حمله به آن را ممکن می‌سازد، این رمز همچنان به‌طور گسترده استفاده می‌شود.
$\mathrm{SALSA}$%
،
$\mathrm{CHACHA}$%
،
$\mathrm{Trivium}$
و
$\mathrm{Grain-128a}$
 مواردی پیشرفته‌تر و ایمن‌تر از این نوع رمز می‌باشند. 
 \subsection{توابع
 \textbf{چکیده‌ساز}} \label{sec1-2-3}
توابع رمزنگاری چکیده‌ساز%
\LTRfootnote{Hash Function}%
، یکی دیگر از اولیه‌های مهم رمزنگاری بوده که توانایی تضمین صحت اطلاعات پردازش شده را دارند. در رمزنگاری کلید-متقارن، از این توابع برای ساخت قالب‌ها برای سایر سیستم‌های رمزنگاری مثل رمزهای جریانی، کدهای احراز هویت پیام یا رمزنگاری‌های قابل تصدیق، استفاده می‌شود. با این‌که در این پایان‌نامه نمی‌توانیم به شرح مفصل این توابع بپردازیم، اهمیت این موضوع ایجاب می‌کند که به مهم‌ترین مفاهیم آن اشاره کنیم.

 برخلاف رمزهای قالبی که پیش‌تر گفته شد، توابع
چکیده‌ساز
از کلید مخفی استفاده نمی‌کنند. بلکه یک پیام طولانی با طول متناهی ولی نامشخص را فشرده کرده و به یک خروجی به طول مشخص تبدیل می‌کنند. این نوع از اولیه‌های رمزنگاری جزء دسته‌ی توابع یک‌سویه بوده که در عمل قابل معکوس‌سازی نیستند. تطبیق‌پذیری این توابع باعث شد که از آن‌ها در سیستم رمزنگاری ‍‍‍‍
\textit{چاقوی ارتش سوئیس}%
\LTRfootnote{Swiss-Army Knife}%
استفاده شود. بررسی صحّت داده‌ها%
\LTRfootnote{Data Integrity Check}%
، تصدیق گذرواژه‌ها%
\LTRfootnote{Password Verification}%
، و احراز هویت پیام%
\LTRfootnote{Message Authentication}%
از کاربردهای این نوع توابع می‌باشند. البته کاربرد‌های این توابع محدود به موارد فوق‌الذکر نیست. در ادامه تعریفی کلی از توابع
چکیده‌ساز
ارائه می‌کنیم. 
\begin{dfn}
فرض کنید
$n \geq 1$%
. تابع
چکیده‌ساز
$\mathcal{H}$
به ‌صورت زیر تعریف می‌شود:
$$\mathcal{H}: \mathbb{F}^{*}_2 \rightarrow \mathbb{F}^{n}_2, M \mapsto H$$
که یک پیام با طول نامشخص اما متناهی
$M$
را به‌عنوان ورودی گرفته و آن را به‌صورت یک رشته‌ی 
$n$%
 بیتی هضم و فشرده‌سازی می‌کند. این رشته‌ خروجی را
 $H$
 می‌نامند.
\end{dfn}
یک تابع چکیده‌ساز به طور قراردادی، باید از سایر توابع تصادفی با ساختار مشابه قابل تمایز باشد. به این منظور، چهار ویژگی برای این توابع تعریف می‌شود که هر تابع چکیده‌ساز باید دارای تمامی این شرایط باشد:
\newline
\textbf{%
1-کارآمدی%
\LTRfootnote{Efficiency}:}\\
به ازای رشته‌ی ورودی
$M$%
، محاسبه‌ی
$\mathcal{H}(M)$
آسان است.
\newline
\textbf{%
2-مقاومت در برابر برخورد%
\LTRfootnote{Collision Resistance}:
}\\
یافتن دو ورودی متمایز
$M \neq M^{\prime}$
به گونه‌ای که 
$\mathcal{H}(M)=\mathcal{H}(M^{\prime})$%
، نیاز به حداقل
$2^{\frac{n}{2}}$
تعداد عملیات دارد.
\newline
\textbf{%
3-مقاومت در برابر پیش تصویر%
\LTRfootnote{Preimage Resistance}:
}\\
به‌ازای ورودی چکیده شده‌ی
$Z$،
یافتن
$M$%
، به‌ گونه‌ای که
$\mathcal{H}(M)=Z$
دشوار است.
\newline
\textbf{%
4-مقاومت در برابر پیش تصویر دوم%
\LTRfootnote{Second Preimage Resistance}:}\\
به‌ازای ورودی
$M$%
، یافتن ورودی دومی مثل 
$M^{\prime}$
به‌ گونه‌ای که
$\mathcal{H}(M)=\mathcal{H}(M^{\prime})$%
، دشوار است.

برای احراز شرایط ذکرشده، لازم است مقدار
$n$
تعیین شود. معمولا این مقدار از بین 160، 256 و یا 512 انتخاب می‌شود.

از
$\mathrm{MD5}$%
،
$\mathrm{SHA1}$%
،
$\mathrm{SHA256}$%
،
$\mathrm{SHA512}$%
،
$\mathrm{Keccak}$%
، که در رقابت
$\mathrm{SHA3}$
برنده شد و اکنون به‌عنوان استاندارد جدید
$\mathrm{SHA3}$
معرفی شده است،
$\mathrm{Grostl}$%
،
$\mathrm{BLAKE}$
و
$\mathrm{BLAKE2}$
از مشهورترین سیستم‌های رمزنگاری مبتنی بر توابع چکیده‌ساز هستند.


\section{میدان‌های متناهی}
 %----------------------------------------
 \begin{dfn}\label{1.1.1}
مجموعه‌ی $R$ همراه با دو عمل دوتایی $+$ و $\cdot$ یک حلقه نامیده   و با $(R,+,\cdot)$ نشان داده می‌شود، هرگاه 
\begin{enumerate}
\item
برای هر $a,b\in R$،\; $a+b=b+a$؛
\item
عنصری مانند $0\in R$ وجود داشته باشد به‌ گونه‌ای که برای هر $a\in R$، $a+0=a$. ($0$ عضو خنثیِ عمل جمع نامیده می‌شود)؛
\item
برای هر $a\in R$، عنصری مانند $(-a)\in R$ موجود باشد به گونه‌ای‌ که $a+(-a)=0$. ($-a$  قرینه‌ی  
$a$
 نامیده می‌شود)؛
\item
برای هر $a,b,c\in R$،\; $(a+b)+c=a+(b+c)$؛
\item
برای هر $a,b,c\in R$،\; $a\cdot(b\cdot c)=(a\cdot b)\cdot c$؛
\item
برای هر $a,b,c\in R$،\; $a\cdot(b+c)=a\cdot b+a\cdot c$ و $(a+b)\cdot c=a\cdot c+b\cdot c$.
\end{enumerate}
\end{dfn}
\begin{dfn}\label{2.1.1}
حلقه‌ی 
$(R,+,\cdot)$
، حلقه‌ی جابه‌جایی نامیده می‌شود، هرگاه برای هر $a,b\in R$، $a\cdot b=b\cdot a$.
\end{dfn}
\begin{dfn}\label{3.1.1}
حلقه‌ی $(R,+,\cdot)$، حلقه‌ی یک‌دار نامیده می‌شود، هرگاه عنصری مانند $1\neq0$ در $R$ موجود باشد به‌ گونه‌ای که برای هر $a\in R$، $1\cdot a=a\cdot 1=a$.
\end{dfn}
\begin{dfn}\label{4.1.1}
حلقه‌ی جابه‌جایی و یک‌دار $(R,+,\cdot)$ میدان نامیده می‌شود هرگاه برای هر
\linebreak
 $0\neq a\in R$، عنصری که با $a^{-1}$ نشان داده می‌شود در $R$ موجود باشد به گونه‌ای که $a\cdot a^{-1}=1$. ($a^{-1}$ معکوس یا وارون  $a$ نامیده می‌شود.)
\end{dfn}
\begin{dfn}
گوییم میدان $F$ دارای مشخصه‌ی\LTRfootnote{Characteristic} $n\neq 0$ است اگر عدد صحیح مثبتی مانند $n$ موجود باشد به‌ گونه‌ای که به‌ازای هر $x\in F$، $nx=0$ و هیچ عدد صحیح مثبت کوچک‌تر از $n$ دارای این خاصیت نباشد.\\
هرگاه میدان  $F$  به‌ازای هیچ عدد صحیح مثبت $n$ از مشخصه‌ی $n$ نباشد، گوییم $F$ از مشخصه‌ی $0$ است.
\end{dfn}
\begin{thm}
مشخصه‌ی یک میدان $0$ و یا عددی اول می‌باشد.
\end{thm}
\begin{dfn}\label{5.1.1}
$(R,+,\cdot)$ را یک حلقه‌ی جابه‌جایی و یک‌دار در نظر بگیرید. $I\subseteq R$ یک ایده‌آل $R$ نامیده می‌شود، هرگاه
\begin{enumerate}
\item
$I\neq \emptyset$؛
\item
برای هر $a,b\in I$، $a+b\in I$؛
\item
برای هر $a\in I$ و $r\in R$، $ra\in I$.
\end{enumerate}
\end{dfn}
\begin{dfn}\label{6.1.1}
فرض کنید  $(R,+,\cdot)$ یک حلقه و $a\in R$ باشد. ایده‌آل تولید شده توسط $a$ در $R$ به شکل زیر تعریف می‌شود
\[\langle a\rangle=Ra=\{ra\mid r\in R\}.\]
\end{dfn}
\begin{dfn}\label{7.1.1}
ایده‌آل $M$ از حلقه‌ی جابه‌جایی و یک‌دار $R$، ماکسیمال نامیده می‌شود، هرگاه
\begin{enumerate}
\item
$M\subset R$؛
\item
ایده‌آلی چون $I$ از $R$ وجود نداشته باشد به‌ گونه‌ای که $M\subset I\subset R$.
\end{enumerate}
\end{dfn}
\begin{thm}\label{8.1.1}
فرض کنید $I$ ایده‌آل حلقه‌ی جابه‌جایی و یک‌دار $R$ باشد. در این‌ صورت $I$ ماکسیمال است اگر و تنها اگر $\dfrac{R}{I}$ میدان باشد.
\end{thm}
\begin{exam}\label{9.1.1}
از آن‌جا که برای هر عدد اول $p$، $p\mathbb{Z}$ یک ایده‌آل ماکسیمال $\mathbb{Z}$ می‌باشد، لذا $\dfrac{\mathbb{Z}}{p\mathbb{Z}}\cong \mathbb{Z}_p$ یک میدان با $p$ عضو است.
\end{exam}
\begin{dfn}
فرض کنید $R$ یک حلقه‌ی جابه‌جایی و یک‌دار باشد. حلقه‌ی $R[x]$، متشکل از چندجمله‌ای‌هایی با مجهول $x$ با ضرایبی از $R$ است.
\end{dfn}
\begin{dfn}
فرض کنید $R$ حلقه‌ی جابه‌جایی و یک‌دار باشد.
\begin{enumerate}
\item
 عضوی چون $r\in R$ وارون‌پذیر است اگر عضوی مانند $u\in R$ موجود باشد به‌گونه ‌ای که $ru=1$.
\item
عضوی چون $r\in R$ یک مقسوم‌علیه صفر $R$ است اگر عضوی چون $y\in R$ با شرط $y\neq0$ موجود باشد به‌ گونه‌ای که $ry=0$.
\end{enumerate}
\end{dfn}
\begin{dfn}\label{10.1.1}
به حلقه‌ی جابه‌جایی و یک‌دار $R$ دامنه‌ی صحیح گفته می‌شود اگر $0$ تنها مقسوم‌علیه صفر $R$ باشد.
\end{dfn}
\begin{dfn}\label{11.1.1}
فرض کنید $R$ دامنه‌ی صحیح باشد. عضو $p\in R$ را عضو تحویل‌ناپذیر%
\LTRfootnote{Irreducible} %
$R$
  گوییم اگر 
\begin{enumerate}
\item
$p\neq0$ و $p$ وارون‌پذیر نباشد؛
\item
هرگاه $p$ به‌صورت $p=ab$ نوشته شود، آن‌گاه $a$ یا $b$ عضو وارون‌پذیر $R$ باشد.
\end{enumerate}
\end{dfn}
\begin{thm}\label{12.1.1}
فرض کنید $F$ یک میدان باشد و $p(x)\in F[x]$. در این‌ صورت ایده‌آل $\langle p(x)\rangle$ در $F[x]$ ماکسیمال است اگر و تنها اگر $p(x)$ در $F[x]$ تحویل‌ناپذیر باشد.
\end{thm}
\begin{note}\label{14.1.1}
هر دو میدان متناهیِ هم‌مرتبه، یکریخت هستند. مقصود از مرتبه‌ی یک میدان متناهی، تعداد اعضای آن است.
\end{note}
\begin{note}\label{13.1.1}
اگر $F$ یک میدان متناهی باشد، آن‌گاه مرتبه‌ی آن   $p^n$ است که در آن $p$ یک عدد اول و $n$ عددی طبیعی است. میدان مذکور با $\mathbb{F}_{p^n}$  یا $\mathrm{GF}(p^n)$  نشان داده می‌شود.
\end{note}
\begin{note}\label{15.1.1}
اگر $F$ یک میدان متناهی باشد، آن‌گاه گروه ضربی $F^*=F\setminus\{0\}$ دوری است.
\end{note}
\begin{exam}\label{16.1.1}
چندجمله‌ای $x^4+x+1$ در $\mathbb{F}_2[x]$ تحویل‌ناپذیر است، زیرا همان‌گونه که در جداول زیر قابل مشاهده است $x^4+x+1$ حاصل‌ضرب هیچ دو چندجمله‌ای غیرثابت در $\mathbb{F}_2[x]$ نیست. 

%\begin{LTR}
 \begin{table}[h!]
 \centering
 \begin{tabular}{llll|l}
  $x^3+x+1$ & $x^3+x$ & $x^3+1$ & $x^3$ & $\cdot$ \\
 \hline
 $x^4+x^2+x$ & $x^4+x^2$& $x^4+x$& $x^4$& $x$\\
 $x^4+x^3+x^2+1$ & $x^4+x^3+x^2+x$& $x^4+x^3+x+1$ & $x^4+x^3$ & $x+1$
   \end{tabular}
 \end{table}
  \begin{table}[h!]
 \centering
 \begin{tabular}{llll|l}
 $x^3+x^2+x+1$ & $x^3+x^2+x$ & $x^3+x^2+1$ & $x^3+x^2$ & \\
 \hline
 $x^4+x^3+x^2+x$ & $x^4+x^3+x^2$& $x^4+x^3+x$& $x^4+x^3$& $x$\\
 $x^4+1$ & $x^4+x$& $x^4+x^2+x+1 $ & $x^4+x^2$ & $x+1$
   \end{tabular}
 \end{table}
   \begin{table}[h!]
 \centering
  \begin{tabular}{llll|l}
 $x^2+x+1$  & $x^2+x$ & $x^2+1$ & $x^2$ & \\
 \hline
$x^4+x^3+x^2$&$x^4+x^3$&$x^4+x^2$&$x^4$&$x^2$\\
$x^4+x^3+x+1$&$x^4+x^3+x^2+x$&$x^4+1$&$x^4+x^2$&$x^2+1$\\
$x^4+x$&$x^4+x^2$&$x^4+x^3+x^2+x$&$x^4+x^3$&$x^2+x$\\
$x^4+x^2+1$&$x^4+x$&$x^4+x^3+x+1$&$x^4+x^3+x^2$&$x^2+x+1$
   \end{tabular}
 \end{table}
%\end{LTR}
\*\newpage
\noindent
 بنابر قضیه‌‌های \ref{8.1.1} و \ref{12.1.1}، $\dfrac{\mathbb{F}_2[x]}{\langle x^4+x+1\rangle}$ یک میدان 16 عضوی با اعضاء به‌صورت 
\[\left\{a_3x^3+a_2x^2+a_1x+a_0+\langle x^4+x+1\rangle\mid a_i\in \mathbb{F}_2, i=0,1,2,3\right\}\]
 می‌باشد. در نتیجه بنا به تذکر \ref{14.1.1} داریم  $\mathbb{F}_{16}\cong \dfrac{\mathbb{F}_2[x]}{\langle x^4+x+1\rangle}$. 
 
 نمایش دیگری برای میدان
$\mathbb{F}_{16}$
 به‌ شکل
\[\mathbb{F}_{16}=\mathrm{GF}(2^4)=\mathrm{GF}(2)(\rho)\]
 است که
$\rho$
 در معادله‌ی
$\rho^4+\rho+1=0$
 صدق می‌کند. عناصر
\begin{flushleft}
$\mathbb{F}_{16}=\mathrm{GF}(2^4)=\{0, 1, \rho, \rho+1, \rho^2, \rho^2+1, \rho^2+\rho, \rho^2+\rho+1,$\\
$\rho^3, \rho^3+1, \rho^3+\rho, \rho^3+\rho+1, \rho^3+\rho^2, \rho^3+\rho^2+1, \rho^3+\rho^2+\rho, \rho^3+\rho^2+\rho+1\}$
\end{flushleft}
 را می‌توان مطابق جدول
\ref{nt0}
 به‌صورت رقمی در مبنای شانزده نشان داد.
\begin{table}[h!]
\centering
\begin{LTR}
%\resizebox{}{10cm}{
\begin{tabular}{|l|c||l|c|}
\hline
$0$ & \texttt{0} &  $\rho^3$ & \texttt{8}\\
\hline
$1$ & \texttt{1} &  $\rho^3+1$ & \texttt{9}\\
\hline
$\rho$ & \texttt{2} &  $\rho^3+\rho$ & \texttt{A}\\
\hline
$\rho+1$ & \texttt{3} &  $\rho^3+\rho+1$ & \texttt{B}\\
\hline
$\rho^2$ & \texttt{4} &  $\rho^3+\rho^2$ & \texttt{C}\\
\hline
$\rho^2+1$ & \texttt{5} &  $\rho^3+\rho^2+1$ & \texttt{D}\\
\hline
$\rho^2+\rho$ & \texttt{6} &  $\rho^3+\rho^2+\rho$ & \texttt{E}\\
\hline
$\rho^2+\rho+1$ & \texttt{7} &  $\rho^3+\rho^2+\rho+1$ & \texttt{F}\\
\hline
\end{tabular}%}
\end{LTR}
\caption{نمایش عناصر میدان $\mathbb{F}_{16}$ در مبنای شانزده }\label{nt0}
\end{table}\\
%%%%%%%%%%%%%%%%%%%%
 جداول‌
 \ref{nt1}
 و
 \ref{nt2}
 جداول عمل جمع و ضرب میدان
$\mathbb{F}_{16}$
می‌باشند.
\begin{table}[h!]
\centering
\begin{latin}
%\resizebox{}{10cm}{
\begin{tabular}{c|cccccccccccccccccc}

+&\texttt{0}&\texttt{1}&\texttt{2}&\texttt{3}&\texttt{4}&\texttt{5}&\texttt{6}&\texttt{7}&\texttt{8}&\texttt{9}&\texttt{A}&\texttt{B}&\texttt{C}&\texttt{D}&\texttt{E}&\texttt{F}\\
\hline
\texttt{0}&\texttt{0}&\texttt{1}&\texttt{2}&\texttt{3}&\texttt{4}&\texttt{5}&\texttt{6}&\texttt{7}&\texttt{8}&\texttt{9}&\texttt{A}&\texttt{B}&\texttt{C}&\texttt{D}&\texttt{E}&\texttt{F}\\

\texttt{1}&\texttt{1}&\texttt{0}&\texttt{3}&\texttt{2}&\texttt{5}&\texttt{4}&\texttt{7}&\texttt{6}&\texttt{9}&\texttt{8}&\texttt{B}&\texttt{A}&\texttt{D}&\texttt{C}&\texttt{F}&\texttt{E}\\

\texttt{2}&\texttt{2}&\texttt{3}&\texttt{0}&\texttt{1}&\texttt{6}&\texttt{7}&\texttt{4}&\texttt{5}&\texttt{A}&\texttt{B}&\texttt{8}&\texttt{9}&\texttt{E}&\texttt{F}&\texttt{C}&\texttt{D}\\

\texttt{3}&\texttt{3}&\texttt{2}&\texttt{1}&\texttt{0}&\texttt{7}&\texttt{6}&\texttt{5}&\texttt{4}&\texttt{B}&\texttt{A}&\texttt{9}&\texttt{8}&\texttt{F}&\texttt{E}&\texttt{D}&\texttt{C}\\

\texttt{4}&\texttt{4}&\texttt{5}&\texttt{6}&\texttt{7}&\texttt{0}&\texttt{1}&\texttt{2}&\texttt{3}&\texttt{C}&\texttt{D}&\texttt{E}&\texttt{F}&\texttt{8}&\texttt{9}&\texttt{A}&\texttt{B}\\

\texttt{5}&\texttt{5}&\texttt{4}&\texttt{7}&\texttt{6}&\texttt{1}&\texttt{0}&\texttt{3}&\texttt{2}&\texttt{D}&\texttt{C}&\texttt{F}&\texttt{E}&\texttt{9}&\texttt{8}&\texttt{B}&\texttt{A}\\

\texttt{6}&\texttt{6}&\texttt{7}&\texttt{4}&\texttt{5}&\texttt{2}&\texttt{3}&\texttt{0}&\texttt{1}&\texttt{E}&\texttt{F}&\texttt{C}&\texttt{D}&\texttt{A}&\texttt{B}&\texttt{8}&\texttt{9}\\

\texttt{7}&\texttt{7}&\texttt{6}&\texttt{5}&\texttt{4}&\texttt{3}&\texttt{2}&\texttt{1}&\texttt{0}&\texttt{F}&\texttt{E}&\texttt{D}&\texttt{C}&\texttt{B}&\texttt{A}&\texttt{9}&\texttt{8}\\

\texttt{8}&\texttt{8}&\texttt{9}&\texttt{A}&\texttt{B}&\texttt{C}&\texttt{D}&\texttt{E}&\texttt{F}&\texttt{0}&\texttt{1}&\texttt{2}&\texttt{3}&\texttt{4}&\texttt{5}&\texttt{6}&\texttt{7}\\

\texttt{9}&\texttt{9}&\texttt{8}&\texttt{B}&\texttt{A}&\texttt{D}&\texttt{C}&\texttt{F}&\texttt{E}&\texttt{1}&\texttt{0}&\texttt{3}&\texttt{2}&\texttt{5}&\texttt{4}&\texttt{7}&\texttt{6}\\

\texttt{A}&\texttt{A}&\texttt{B}&\texttt{8}&\texttt{9}&\texttt{E}&\texttt{F}&\texttt{C}&\texttt{D}&\texttt{2}&\texttt{3}&\texttt{0}&\texttt{1}&\texttt{6}&\texttt{7}&\texttt{4}&\texttt{5}\\

\texttt{B}&\texttt{B}&\texttt{A}&\texttt{9}&\texttt{8}&\texttt{F}&\texttt{E}&\texttt{D}&\texttt{C}&\texttt{3}&\texttt{2}&\texttt{1}&\texttt{0}&\texttt{7}&\texttt{6}&\texttt{5}&\texttt{4}\\

\texttt{C}&\texttt{C}&\texttt{D}&\texttt{E}&\texttt{F}&\texttt{8}&\texttt{9}&\texttt{A}&\texttt{B}&\texttt{4}&\texttt{5}&\texttt{6}&\texttt{7}&\texttt{0}&\texttt{1}&\texttt{2}&\texttt{3}\\

\texttt{D}&\texttt{D}&\texttt{C}&\texttt{F}&\texttt{E}&\texttt{9}&\texttt{8}&\texttt{B}&\texttt{A}&\texttt{5}&\texttt{4}&\texttt{7}&\texttt{6}&\texttt{1}&\texttt{0}&\texttt{3}&\texttt{2}\\

\texttt{E}&\texttt{E}&\texttt{F}&\texttt{C}&\texttt{D}&\texttt{A}&\texttt{B}&\texttt{8}&\texttt{9}&\texttt{6}&\texttt{7}&\texttt{4}&\texttt{5}&\texttt{2}&\texttt{3}&\texttt{0}&\texttt{1}\\

\texttt{F}&\texttt{F}&\texttt{E}&\texttt{D}&\texttt{C}&\texttt{B}&\texttt{A}&\texttt{9}&\texttt{8}&\texttt{7}&\texttt{6}&\texttt{5}&\texttt{4}&\texttt{3}&\texttt{2}&\texttt{1}&\texttt{0}\\

\end{tabular}%}
\end{latin}
\caption{عمل جمع میدان $\mathbb{F}_{16}$}\label{nt1}
\end{table}
%%%%%%%%%%%%%%%%%%%%
\begin{table}[h!]
\centering
\begin{latin}
%\resizebox{}{10cm}{
\begin{tabular}{c|cccccccccccccccccc}

$\times$&\texttt{0}&\texttt{1}&\texttt{2}&\texttt{3}&\texttt{4}&\texttt{5}&\texttt{6}&\texttt{7}&\texttt{8}&\texttt{9}&\texttt{A}&\texttt{B}&\texttt{C}&\texttt{D}&\texttt{E}&\texttt{F}\\
\hline
\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}&\texttt{0}\\

\texttt{1}&\texttt{0}&\texttt{1}&\texttt{2}&\texttt{3}&\texttt{4}&\texttt{5}&\texttt{6}&\texttt{7}&\texttt{8}&\texttt{9}&\texttt{A}&\texttt{B}&\texttt{C}&\texttt{D}&\texttt{E}&\texttt{F}\\

\texttt{2}&\texttt{0}&\texttt{2}&\texttt{4}&\texttt{6}&\texttt{8}&\texttt{A}&\texttt{C}&\texttt{E}&\texttt{3}&\texttt{1}&\texttt{7}&\texttt{5}&\texttt{B}&\texttt{9}&\texttt{F}&\texttt{D}\\

\texttt{3}&\texttt{0}&\texttt{3}&\texttt{6}&\texttt{5}&\texttt{C}&\texttt{F}&\texttt{A}&\texttt{9}&\texttt{B}&\texttt{8}&\texttt{D}&\texttt{E}&\texttt{7}&\texttt{4}&\texttt{1}&\texttt{2}\\

\texttt{4}&\texttt{0}&\texttt{4}&\texttt{8}&\texttt{C}&\texttt{3}&\texttt{7}&\texttt{B}&\texttt{F}&\texttt{6}&\texttt{2}&\texttt{E}&\texttt{A}&\texttt{5}&\texttt{1}&\texttt{D}&\texttt{9}\\

\texttt{5}&\texttt{0}&\texttt{5}&\texttt{A}&\texttt{F}&\texttt{7}&\texttt{2}&\texttt{D}&\texttt{8}&\texttt{E}&\texttt{B}&\texttt{4}&\texttt{1}&\texttt{9}&\texttt{C}&\texttt{3}&\texttt{6}\\

\texttt{6}&\texttt{0}&\texttt{6}&\texttt{C}&\texttt{A}&\texttt{B}&\texttt{D}&\texttt{7}&\texttt{1}&\texttt{5}&\texttt{3}&\texttt{9}&\texttt{F}&\texttt{E}&\texttt{8}&\texttt{2}&\texttt{4}\\

\texttt{7}&\texttt{0}&\texttt{7}&\texttt{E}&\texttt{9}&\texttt{F}&\texttt{8}&\texttt{1}&\texttt{6}&\texttt{D}&\texttt{A}&\texttt{3}&\texttt{4}&\texttt{2}&\texttt{5}&\texttt{C}&\texttt{B}\\

\texttt{8}&\texttt{0}&\texttt{8}&\texttt{3}&\texttt{B}&\texttt{6}&\texttt{E}&\texttt{5}&\texttt{D}&\texttt{C}&\texttt{4}&\texttt{F}&\texttt{7}&\texttt{A}&\texttt{2}&\texttt{9}&1\\

\texttt{9}&\texttt{0}&\texttt{9}&\texttt{1}&\texttt{8}&\texttt{2}&\texttt{B}&\texttt{3}&\texttt{A}&\texttt{4}&\texttt{D}&\texttt{5}&\texttt{C}&\texttt{6}&\texttt{F}&\texttt{7}&\texttt{E}\\

\texttt{A}&\texttt{0}&\texttt{A}&\texttt{7}&\texttt{D}&\texttt{E}&\texttt{4}&\texttt{9}&\texttt{3}&\texttt{F}&\texttt{5}&\texttt{8}&\texttt{2}&\texttt{1}&\texttt{B}&\texttt{6}&\texttt{C}\\

\texttt{B}&\texttt{0}&\texttt{B}&\texttt{5}&\texttt{E}&\texttt{A}&\texttt{1}&\texttt{F}&\texttt{4}&\texttt{7}&\texttt{C}&\texttt{2}&\texttt{9}&\texttt{D}&\texttt{6}&\texttt{8}&\texttt{3}\\

\texttt{C}&\texttt{0}&\texttt{C}&\texttt{B}&\texttt{7}&\texttt{5}&\texttt{9}&\texttt{E}&\texttt{2}&\texttt{A}&\texttt{6}&\texttt{1}&\texttt{D}&\texttt{F}&\texttt{3}&\texttt{4}&\texttt{8}\\

\texttt{D}&\texttt{0}&\texttt{D}&\texttt{9}&\texttt{4}&\texttt{1}&\texttt{C}&\texttt{8}&\texttt{5}&\texttt{2}&\texttt{F}&\texttt{B}&\texttt{6}&\texttt{3}&\texttt{E}&\texttt{A}&\texttt{7}\\

\texttt{E}&\texttt{0}&\texttt{E}&\texttt{F}&\texttt{1}&\texttt{D}&\texttt{3}&\texttt{2}&\texttt{C}&\texttt{9}&\texttt{7}&\texttt{6}&\texttt{8}&\texttt{4}&\texttt{A}&\texttt{B}&\texttt{5}\\

\texttt{F}&\texttt{0}&\texttt{F}&\texttt{D}&\texttt{2}&\texttt{9}&\texttt{6}&\texttt{4}&\texttt{B}&\texttt{1}&\texttt{E}&\texttt{C}&\texttt{3}&\texttt{8}&\texttt{7}&\texttt{5}&\texttt{A}\\

\end{tabular}%}
\end{latin}
\caption{عمل ضرب میدان $\mathbb{F}_{16}$}\label{nt2}
\end{table}

\end{exam}

\begin{note}\label{17.1.1}
اگر $f(x)$ چندجمله‌ای تحویل‌ناپذیری از درجه‌ی $n$ در حلقه‌ی $\mathbb{F}_p[x]$ باشد، آن‌گاه $\mathbb{F}_{p^n}\cong\dfrac{\mathbb{F}_p[x]}{\langle f(x)\rangle}$. یعنی می‌توان به این طریق میدانی از مرتبه‌ی $p^n$ ساخت.
\end{note}
%--------------------