\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig} 
\usepackage{array}
\usepackage[left=1.5cm,right=1.5cm]{geometry}
\usepackage{tikz}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{xepersian}
\settextfont[Scale=1.4]{Yas}
\setdigitfont[Scale=1.2]{Yas}
\linespread{1.4 }
\renewcommand{\arraystretch}{2}
\newcommand{\mybox}[1]{\centering\tikz{ \node  [draw, fill=white!10]{\setRTL\parbox{\textwidth}{#1}};}}
\theoremstyle{definition}
\newtheorem{definition}{تعریف}[section]
\newtheorem{theorem}{قضیه}[section]
\newtheorem{proposition}{گزاره}[section]
\newtheorem{corollary}{نتیجه}[section]
\newtheorem{lemma}{لم}[section]
\newtheorem{remark}{نکته}[section]
\newtheorem{example}{مثال}[section]
\begin{document}

در این فصل امنیت کامل را تعریف کرده و امنیت کامل سیستم های رمز قالبی ،  دنباله ای و یکبار مصرف را مورد بررسی قرار می دهیم.
\\
در ابتدا جهت یادآوری چند تعریف از احتمال را بیان می کنیم.
\section{احتمال}
\begin{definition}
1-
 $X$
و
$Y$
را متغیرهای تصادفی جدای مستقل نامند اگر وفقط اگر :
$$P_{X,Y}(x,y)=P_{X}(x)P_{Y}(y) \quad \forall (x,y) $$
2-
$X$
و
$Y$
را متغیر تصادفی پیوسته مستقل نامند اگرو فقط اگر :
$$f_{X,Y}(x,y)=f_{X}(x)f_{Y}(y) \quad \forall (x,y) $$
\end{definition}
در کتابهای بسیاری، گزاره زیرین به عنوان تعریف متغیرهای تصادفی مستقل پذیرفته شده است:
$$P[X\in A ,Y\in B]=P[X\in A]P[Y\in B]\quad \quad \forall A,B $$
که در آن
$A$
 زیر مجموعه دلخواه از برد
$ X$
 و
$ B$
 زیر مجموعه ای دلخواه از برد
$ Y$
 است. 
\\
\\
از طرفی متغیرهای تصادفی مستقل به طورمستقیم از پیشامدهای مستقل بدست می آیند. 
یعنی شرط لازم و کافی برای این که دو پیشامد مستقل باشند، این است که 
$$p(A\cap B)=p(A)P(B)$$
\\
قبل از این که مثالی را بیان کنیم به گزاره دیگری درباره مستقل بودن متغیرهای تصادفی $X $ و $ Y $ توجه می کنیم که  شامل تابع توزیع برای$ X $ و $ Y $ است.
\begin{proposition}
 متغیرهای تصادفی $ X $ و $ Y $ مستقل هستند اگر و تنها اگر
$$F_{X,Y}(t_{1},t_{2})=F_{X}(t_{1})F_{Y}(t_{2}) \quad \forall (t_{1},t_{2}) $$
یعنی تابع توزیع برای $ X $ و $ Y $ باید در تمام نقاط به حاصلضرب توابع توزیع کناری تجزیه شود تا $ X $ و $Y $ مستقل باشند.
\end{proposition}
\begin{example}
هر گاه 
$(x,y)$
یک متغیر تصادفی دو بعدی جدا با تابع احتمال برای 
$$(x,y)=(-1,-1),(-1,1),(1,-1),(1,1) $$
که
$$P_{X,Y}(x,y)=\frac{1}{4}$$
برای سایر مقادیر، احتمال برابر صفر است.آنگاه
\[
P_{X}(x)=
\begin{cases}
 \frac{1}{2}\quad  ,  \ x=-1,1\\

0 \quad , \ o.w\\
\end{cases}
\]
و
\[
P_{Y}(y)=
\begin{cases}
 \frac{1}{2}\quad  ,  \ y=-1,1\\

0 \quad , \ o.w\\
\end{cases}
\]
بنابراین
$$P_{X,Y}(x,y)=P_{X}(x)P_{Y}(y) \quad \forall (x,y) $$
در نتیجه $ X $ و $ Y $ مستقل هستند.
\\
\\
اما هرگاه
$$(x,y)=(-1,-1),(-1,1),(1,-1),(1,2) $$
که
$$P_{X,Y}(x,y)=\frac{1}{4}$$
برای سایر مقادیر، احتمال برابر صفر است.
\\
\\
\\
آنگاه

\[
P_{X}(x)=
\begin{cases}
 \frac{1}{2}\quad  ,  \ x=-1,1\\

0 \quad , \ o.w\\
\end{cases}
\]
و
\[
P_{Y}(y)=
\begin{cases}
 \frac{1}{2}\quad  ,  \ y=-1\\
\frac{1}{4}\quad , \ y=1,2\\

0 \quad , \ o.w\\
\end{cases}
\]
در این حالت $X $ و $Y$  مستقل نیستند، زیرا که
$$P_{X,Y}(1,1) \neq P_{X}(1)P_{Y}(1)$$
\end{example}
{\LARGE
احتمال مشروط    :}
\\
\\
احتمال مشروط یک پیشامد $ A$ به فرض وقوع قبلی $ B$ چنین تعریف می شود:
$$P(A|B)=\frac{P(A\cap B)}{P(B)} $$
به همین ترتیب اگر $ X $ و $ Y $ متغیرهای تصادفی دو بعدی جدا باشند، می توانیم $ A $ را به عنوان پیشامد  $(Y=y) $ و $ B $ را به عنوان پیشامد  $(X=x)$  تصور کنیم، در نتیجه خواهیم داشت:
$$P(Y=y| X=x)=\frac{P(Y=y ,X=x)}{P(X=x)}=\frac{P_{X,Y}(x,y)}{P_{X}(x)} $$
\begin{definition}
1- اگر 
$(x,y)$
متغیر تصادفی دو بعدی جدا باشد، تابع احتمال مشروط برای $ Y $ با فرض $ X=x $ عبارت است از:
$$P_{Y|X}(y|x)=\frac{P_{X,Y}(x,y)}{P_{X}(x)} \quad \quad {P_{X}(x)}>0$$
وبرابرصفراست هرگاه
$$ {P_{X}(x)}=0$$
همچنین
$P_{X|Y}(x|y)$
 به طور مشابه تعریف می شود.
\\
\\
2-اگر 
$(x,y)$
 متغیر تصادفی دو بعدی پیوسته باشد، چگالی مشروط برای $ Y $ با فرض $ X=x $ عبارت است از:
$$f_{Y|X}(y|x)=\frac{f_{X,Y}(x,y)}{f_{X}(x)} \quad \quad {f_{X}(x)}>0$$
وبرابرصفراست هرگاه
$$ {f_{X}(x)}=0$$
همچنین 
$f_{X|Y}(x|y)$
 به طور مشابه تعریف می شود.
\end{definition}
\begin{theorem}
هر گاه $ X $ و $ Y $ متغیرهای تصادفی مستقل باشند آنگاه هر مقدار
$x$
و  $ y $  که در 
 ${f_{Y}(y)}>0$
 صادق باشند:
$$f_{X|Y}(x|y)= {f_{X}(x)}$$
و به ازای هر مقدار $ x $ و $y$ که در 
${f_{X}(x)}>0$
 صادق باشند:
$$f_{Y|X}(y|x)= {f_{Y}(y)}$$
\begin{proof}
طبق تعریف هر گاه $X $ و $ Y $ مستقل باشند آنگاه
$$f_{X,Y}(x,y)=f_{X}(x)f_{Y}(y) \quad \forall (x,y) $$
بنابراین اگر
 ${f_{Y}(y)}>0$
\begin {align*}
f_{X|Y}(x|y)&=\frac{f_{X,Y}(x,y)}{f_{Y}(y)}\\
&=\frac{f_{X}(x)f_{Y}(y)}{f_{Y}(y)}=f_{X}(x)
\end{align*}
قسمت دوم قضیه نیز به همین ترتیب ثابت می شود.
\end{proof}
\end{theorem}
\newpage
\section{امنیت کامل}
به طور ایده آل، متن رمز شده نباید اطلاعات اضافه ای درباره متن اصلی به مهاجم بدهد. به عبارت دیگر وقتی شنودگر یک متن رمز شده را شنود می کند، نباید ابهام نسبت به متن اصلی کاهش یابد. تعریف امنیت کامل که در ادامه می آید از این شهود حاصل شده است.
\\
این تعریف به امنیت شانون یا امنیت تئوری اطلاعاتی نیز معروف است که اولین بار توسط شانون (مبدع تئوری اطلاعات) در سال 1948 ارائه شد.
در نتیجه تعریف امنیت یک سیستم رمز به صورت زیر است:
\\
\\
\\
"نتوان هیچ اطلاعاتی از متن ساده را محاسبه کرد (شانون)"
\\
\\

اگر بخواهیم این تعریف  را به صورت ریاضی بیان کنیم:
\begin{definition}
سیستم رمز متقارن روی فضای پیام
$P$
 دارای امنیت کامل است اگر برای هر توزیع دلخواه روی
$P$
، هر متن ساده      $     m \in P  $  و هر متن رمز شده $  c \in C     $      داشته باشیم:
$$pr(m|c)=pr(m)$$
\end{definition}
توجه داشته باشید که در هر سیستم رمز دلخواه الگوریتم های تولید کلید و رمزنگاری به همراه فضای متن ساده
 $P$
، فضاهای کلید و متن رمز شده را مشخص می کنند. تعریف فوق حمله ای را مدل می کند که مهاجم فقط قابلیت شنود دارد و فقط یک متن رمز شده می بیند که طبق این تعریف مهاجم چه متن رمز شده را ببیند و چه نبیند بایک احتمال متن ساده را می تواند حدس بزند.
\\
\\
حال تعریف دیگری از امنیت کامل را بیان می کنیم که معادل با تعریف بالا می باشد.
\begin{definition}
گوئیم سیستم رمز دارای امنیت کامل است اگر 
$$\forall c \in C\quad  \forall m \in P\quad   pr(m|c)=pr(m)$$
\end{definition}
می خواهیم نشان دهیم دوتعریف ذکرشده با هم معادلند:
$$pr(c|m)=\frac{pr(m,c)}{pr(m)}=\frac{pr(m|c)pr(c)}{pr(m)} $$
ازتعریف یک می دانیم
$pr(m|c)=pr(m)$
است در نتیجه 
$$=\frac{pr(m)pr(c)}{pr(m)}=pr(c)$$
\begin{remark}
تعریف در ریاضی معادل با یک قضیه دو طرفه است .
\end{remark}
\begin{theorem}
 سیستم رمز امنیت کامل دارد اگر وتنهااگر
$$\forall m_{0},m_{1}\in P \quad \forall c\in C \quad pr(c|m_{0})=pr(c|m_{1}) $$
\begin{proof}
فرض کنید سیستم امنیت کامل دارد، طبق تعریف ۲ داریم:
$$pr(c|m_{0})=pr(c)\quad \quad pr(c|m_{1})=pr(c)$$
در نتیجه با هم برابرند.
\\
\\
برعکس :
میخواهیم ثابت کنیم  سیستم رمز امنیت کامل دارد .
$$pr(c)=\sum_{m\in p}pr(c,m)=\sum_{m\in p}pr(c|m)pr(m)$$
$$=pr(c|m)\sum_{m\in p}pr(m)$$
درنتیجه
$$pr(c)=pr(c|m)$$
یعنی سیستم امنیت کامل دارد .
\end{proof}
\end{theorem}
\begin{example}
 با ارائه مثال زیر نشان می دهیم مشاهده یا عدم مشاهده متن رمز هیچ تاثیری در جواب حمله کننده ندارد .
\\
سیستم رمز انتقالی را در نظر می گیریم که تابع رمز نگاری آن به صورت زیر است:
\begin{align*}
e_{k}:Z_{26}&\longrightarrow Z_{26}\\
x&\longrightarrow x+k
\end{align*}
\\
فرض کنید متن رمز ما $d$ باشد.  (متن رمزی  $ d  $  در اختیار حمله کننده می باشد)
چون ما کلید را نداریم و با 
$  Z_{26}$
سروکار داریم پس هر یک از حروف امکان دارد که متن ساده ما باشد. مثلاً فرض کنید متن ساده
$e$
باشد که ازجدول الفبای انگلیسی
$ d= 4$
و
$e=3$
است.
\\
\\
\\
\\
\\
در این حالت کلید
$ K=1$
 است و 
$$pr(p=e)=\frac{1}{26}$$
و
$$pr(p=e|c=d)=\frac{1}{26}$$
\\
در نتیجه مشاهده یا عدم مشاهده متن رمز هیچ تاثیری در جواب حمله کننده ندارد.
\end{example}
{\LARGE
آزمایش تمایز ناپذیری در برابر مهاجم شنودگر: }
\\
\\
\\
بیان دیگری از قضیه ذکرشده را بدین صورت می توان ارائه کرد.
\\
\\
فرض کنید  $k $ متغیر تصادفی بیان گر خروجی الگوریتم تولید کلید باشد. در این صورت
$$c_{0}=Enc_{k}(m_{0})$$
و
$$c_{1}=Enc_{k}(m_{1})$$
\\
به ترتیب بیان گر متغیر های تصادفی متناظر با متن رمز شده پیام های 
$m_{0}$
و
$m_{1}$
هستند.
\\
\\
دقت کنید که این متغیرهای تصادفی صرفاً به توزیع  $K $ که خود به مقادیر تصادفی که الگوریتم تولید کلید استفاده می کند وابسته است. و مقدار تصادفی که احیاناً الگوریتم رمزنگاری استفاده می کند، بستگی دارد. بیان دیگری از قضیه ذکرشده این است که توزیع متغیرهای تصادفی
$c_{0}$
و
$c_{1}$
یکسان است.
به طور معادل، بین یک نمونه از
$c_{0}$
 و یک نمونه از
$c_{1}$
 نمی توان تمایزی قائل شد. 
\\
\\
یعنی اگر مهاجم متن رمز $ C$  را داشته باشد و بداند که حاصل رمز کردن یکی از دو متن
$m_{0}$
 و
$m_{1}$
 است که به تصادف انتخاب شده است، نمی تواند با احتمالی بهتر از 
$\frac{1}{2}$
 حدس بزند که متن اصلی متناظر کدام یک است.
\\
لازم است تاکید کنیم که این محدودیت برای هر مهاجمی، حتی با قدرت محاسباتی نامحدود برقرار است.
\\
\\
برای ارائه تعریف دیگری از امنیت کامل برای یک سیستم رمز، که مهاجم را به صورت مشهودتری در تعریف لحاظ می کند از یک بازی یا یک آزمایش استفاده می کنیم که بین یک مهاجم که با $ A $ نشان داده می شود و یک چالشگر (جعبه سیاه) فرضی اجرا می شود. این آزمایش که آزمایش تمایز ناپذیری تک پیامی در برابر مهاجم شنودگر نامیده می شودبه صورت زیر اجرا می شود و مهاجمی را که فقط قابلیت شنود یک متن رمز شده (جهت اعمال حمله فقط متن رمزی) را دارد، مدل می کند.
\begin{enumerate}
\item
چالشگر با اجرای الگوریتم تولید کلید، یک کلید $ K$  تولید می کند.
\item
مهاجم (حمله کننده) پیام های 
$m_{0},m_{1}\in P$ 
را انتخاب کرده و به چالشگر می دهد.
\item
چالشگر بیت تصادفی  $b $ را تولید می کند.
\item
چالشگر با استفاده از الگوریتم رمزنگاری پیام
$m_{b}$
 را تحت کلید $ k $ رمز و متن رمز $ C $ را تولید می کند.
\item
چالشگر متن رمز $ C $  را به مهاجم  $A$  می دهد و مهاجم بیت 
 $ b^{\prime} $ 
 را بیرون می دهد.
\end{enumerate}
مراحل آزمایش فوق به طور خلاصه در آزمایش زیر تعریف شده است .
\\
\\
آزمایش امنیت کامل سیستم رمز متقارن در برابر مهاجم شنودگر $ A $ به صورت زیر است:
\begin{enumerate}
\item
چالشگر کلید $K $ را تولید می کند.
\item
حمله کننده دو متن ساده
$m_{0}$
 و
$m_{1}$
 را انتخاب کرده و برای چالشگر می فرستد.
\item
 چالشگر 
$b$
راانتخاب کرده که
$$b\in \{0,1\}$$
\item
چالشگر با استفاده از الگوریتم رمزنگاری پیام
$m_{b}$
 را تحت کلید $ K $ رمز کرده و متن رمز $ C $ را تولید می کند به عبارت دیگر:
$$e_{k}(m_{b})=c$$
\item
چالشگر متن رمز $ C $ را برای حمله کننده می فرستد و مهاجم بیت 
$b^{\prime}$
را بیرون می دهد.
\end{enumerate}
حمله کننده در حمله به سیستم زمانی موفق است که
$b=b^{\prime}$
 باشد، پس در این حالت سیستم امن نیست.
\begin{lemma}
یک سیستم دارای امنیت کامل است اگر به ازای هر مهاجم  $A $ که در آزمایش بالا شرکت کند احتمال موفقیتش دقیقا
$\frac{1}{2}$
 باشد، یعنی
$$pr(b=b^{\prime})=\frac{1}{2}$$
به طور شهودی، تفسیر مفهوم امنیت کامل با استفاده از آزمایش ذکرشده بدین صورت است:
\\
\\
در یک سیستم با امنیت کامل وقتی مهاجم یک متن رمزی را می بیند، حتی اگر بداند که رمز شده یکی از دو پیامی است که خود او انتخاب کرده است، نمی تواند تشخیص دهد که متن رمزی رمز شده کدام یک از آن دو پیام است. در واقع بهترین کاری که مهاجم برای کسب اطلاعات در مورد متن اصلی می تواند بکند، حدس یکی از دو پیام انتخاب شده به تصادف است.
\end{lemma}
\begin{remark}
اگر در لم قبل رابطه ذکر شده،با نامساوی زیر جایگزین شود باز هم معتبر است:
$$pr(b=b^{\prime})\leq\frac{1}{2} $$
\end{remark}
\newpage
می خواهیم امنیت کامل سیستم های رمز قالبی را مورد بررسی قرار دهیم.
\\
\\
\\
{\LARGE
 بررسی امنیت کامل سیستم رمز انتقالی  :  }
\\
\\
\\
حمله کننده 
$A$
دو متن ساده 
$m_{0}=ee$
و
$m_{1}=if$
رابرای چالشگر می فرستد. چالشگر کلید 
$k=3$
راانتخاب می کند وسپس با استفاده ازاین کلید متن ساده را رمز کرده و  برای حمله کننده می فرستد.
\\
\\
در سیستم رمز انتقالی تابع رمزنگاری ازرابطه زیر بدست می آید :
\begin{align*}
e_{k}:Z_{26}&\longrightarrow Z_{26}\\
x&\longrightarrow x+k
\end{align*}
برای
$m_{0}=ee$
که از جدول الفبای انگلیسی 
$e=4$
است داریم :
$$e_{k}(4)=4+3=7\longrightarrow h$$
در نتیجه متن رمزی که از 
$m_{0}$
 حاصل می شود برابر $ hh $ است.
\\
\\
به طور مشابه برای 
$m_{1}=if$
که از جدول الفبای انگلیسی
$i=8$
و
$f=5$
است داریم :
$$e_{k}(8)=8+3=11\longrightarrow l$$
$$e_{k}(5)=5+3=8\longrightarrow i$$
در نتیجه متن رمزی که از 
$m_{1}$
حاصل می شود برابر $ li $ است.
\\
\\
حال چالشگر متن رمزی  را برای حمله کننده می فرستد ، گر حروف دوتایی متن رمز یکسان بود یعنی 
$m_{0}$
  را رمز کرده و در غیر اینصورت
$m_{1}$
 رمز شده است یا به عبارت دیگر
\[
b^{\prime}=
\begin{cases}
c_{1}=c_{2} \quad  ,  \ 0\\

c_{1}\neq c_{2} \quad , \ 1\\
\end{cases}
\]
\begin{corollary}
سیستم رمز انتقالی امنیت کامل ندارد چون با یک کلید رمز شده است.
\end{corollary}
\begin{remark}
سیستم رمز انتقالی زمانی امنیت کامل دارد که برای رمز کردن تنها یک حرف استفاده شود که این اصلاً‌راه مناسبی نیست چون باید یک حرف، یک حرف بایک کلید رمز شوند .
\end{remark}
{\LARGE
بررسی امنیت کامل سیستم رمز جانشینی: }
\\
\\
\\
حمله کننده 
$A$
دو متن ساده 
$m_{0}=ee$
و
$m_{1}=if$
رابرای چالشگر می فرستد.چالشگر کلید 
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\newcolumntype{N}{@{}m{0pt}@{}}
\begin{center}
\begin{tabular}{ | M{0.5cm} | M{0.5cm} | M{0.5cm} | M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm} | M{0.5cm}| M{0.5cm}| M{0.5cm} | M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm} N } 
\hline
$e$   &   $f$  &   $i$    \\%[0.5cm]
\hline
$c$  &   $d$  &   $b$  \\%[0.5cm]
\hline
\end{tabular}
\end{center}
راانتخاب می کند وسپس با استفاده ازاین کلید متن ساده را رمز کرده و  برای حمله کننده می فرستد.
\\
\\
در سیستم رمز جانشینی تابع رمزنگاری ازرابطه زیر بدست می آید :
\begin{align*}
e_{\pi} :Z _{26}&\longrightarrow Z _{26}\\
x&\longrightarrow e_{\pi}(x)=\pi(x)
\end{align*}
برای
$m_{0}=ee$
داریم :
$$ e_{\pi}(e)=c$$
در نتیجه متن رمزی که از 
$m_{0}$
 حاصل می شود برابر $ cc $ است.
\\
\\
به طور مشابه برای 
$m_{1}=if$
داریم :
$$ e_{\pi}(i)=b$$
و
$$ e_{\pi}(f)=d$$
در نتیجه متن رمزی که از 
$m_{1}$
 حاصل می شود برابر $ bd $ است .
\\
\\
حال چالشگر متن رمز ی را برای حمله کننده می فرستد ، اگر حروف دوتایی متن رمز یکسان بود یعنی 
$m_{0}$
  را رمز کرده و در غیر اینصورت
$m_{1}$
 رمز شده است .
\begin{corollary}
سیستم رمز جانشینی امنیت کامل ندارد چون با یک کلید رمز شده است.
\end{corollary}
\newpage
{\LARGE
بررسی امنیت کامل سیستم رمز خطی:} 
\\
\\
\\
حمله کننده 
$A$
دو متن ساده 
$m_{0}=ee$
و
$m_{1}=if$
رابرای چالشگر می فرستد. چالشگر کلید 
$k=(a , b )= (1 , 3 )$
راانتخاب می کند وسپس با استفاده ازاین کلید متن ساده را رمز کرده و  برای حمله کننده می فرستد.
\\
\\
در سیستم رمزخطی تابع رمزنگاری ازرابطه زیر بدست می آید :
\begin{align*}
e_{k} :Z _{26}&\longrightarrow Z _{26}\\
x&\longrightarrow ax+b
\end{align*}
برای
$m_{0}=ee$
که از جدول الفبای فارسی 
$e=4$
است داریم :
$$e_{k}(4)=1\times4+3=7\longrightarrow h$$
در نتیجه متن رمزی که از 
$m_{0}$
 حاصل می شود برابر $ hh $ است.
\\
\\
به طور مشابه برای 
$m_{1}=if$
که از جدول الفبای انگلیسی
$i=8$
و
$f=5$
است داریم :
$$e_{k}(8)=1\times8+3=11\longrightarrow l$$
$$e_{k}(5)=1\times5+3=8\longrightarrow i$$
در نتیجه متن رمزی که از 
$m_{1}$
حاصل می شود برابر $ li $ است.
\\
\\
حال چالشگر متن رمز ی را برای حمله کننده می فرستد ، اگر حروف دوتایی متن رمز یکسان بود یعنی 
$m_{0}$
  را رمز کرده و در غیر اینصورت
$m_{1}$
 رمز شده است .
\begin{corollary}
سیستم رمز خطی امنیت کامل ندارد چون با یک کلید رمز شده است.
\end{corollary}
{\LARGE
بررسی امنیت کامل سیستم رمز ویژنر :}
\\
\\
حمله کننده 
$A$
دو متن ساده 
$m_{0}=eeee$
و
$m_{1}=ifcd$
رابرای چالشگر می فرستد. فرض کنید $ m=2 $ باشد و کلیدی را که چالشگر انتخاب می کند برابر
$ k=(2 , 3 )$
 باشد، حال چالشگر با استفاده از این کلید متن ساده را رمز کرده و برای حمله کننده می فرستد.
\\
\\
در سیستم رمزویژنرتابع رمزنگاری ازرابطه زیر بدست می آید :
\begin{align*}
e_{k}:Z_{26}^m&\longrightarrow Z_{26}^m\\
(x_{1},...,x_{m})&\longrightarrow (x_{1}+k_{1},...,x_{m}+k_{m})
\end{align*}
برای
$m_{0}=eeee$
داریم :
$$ e_{k}(4 , 4 )\longrightarrow ( 6 , 7 )$$
چون $ m=2 $ است  متن ساده را دوتایی جدا کردیم ، از جدول الفبای انگلیسی
$6=g$
و
$7=h$
می باشد .در نتیجه متن رمزی که از 
$m_{0}$
حاصل می شود برابر $ ghgh $ است.
\\
\\
به طور مشابه برای 
$m_{1}=ifcd$
که از جدول الفبای انگلیسی
$i=8$ ،
$f=5$ ،
$c=2$
و
$d=3$
است داریم :
$$ e_{k}(8 , 5 )\longrightarrow ( 10 , 8 )$$
$$ e_{k}(2 , 3 )\longrightarrow ( 4 , 6 )$$
که از جدول الفبای انگلیسی
$10=k$ ،
$8=i$ ،
$4=e$
و
$6=g$
می باشد .در نتیجه متن رمزی که از 
$m_{1}$
حاصل می شود برابر $ kieg $ است.
\\
\\
حال چالشگر متن رمزی را برای حمله کننده می فرستد ، چون حمله کننده نوع سیستم رمزی را می داند پس اگر در متن رمز حروف دوتایی یکسان بود یعنی
$m_{0}$
 رمز شده و در غیر این صورت حمله کننده می داند که  
$m_{1}$
 رمز شده است.
\begin{corollary}
سیستم رمز ویژنر امنیت کامل ندارد چون با یک کلید رمز شده است.
\end{corollary}
{\LARGE
بررسی امنیت کامل سیستم رمزهیل: }
\\
\\
حمله کننده 
$A$
دو متن ساده 
$m_{0}=eeee$
و
$m_{1}=ifcd$
رابرای چالشگر می فرستد. فرض کنید $ m=2 $ باشد و کلیدی را که چالشگر انتخاب می کند برابر
$$A=\begin{pmatrix}  3&1\\2&1
\end{pmatrix} $$
 باشد، حال چالشگر با استفاده از این کلید متن ساده را رمز کرده و برای حمله کننده می فرستد.
\\
\\
\\
\\
در سیستم رمزهیل تابع رمزنگاری ازرابطه زیر بدست می آید :
\begin{align*}
e_{A}:Z_{26}^m&\longrightarrow Z_{26}^m\\
X&\longrightarrow XA
\end{align*}
برای
$m_{0}=eeee$
داریم :
$$XA=\begin{pmatrix}  4&4
\end{pmatrix} \begin{pmatrix}     3&1\\2&1
\end{pmatrix} = \begin{pmatrix}  20&8
\end{pmatrix}$$
که از جدول الفبای انگلیسی
$20=u$ 
و
$8=i$ 
می باشد  ، در نتیجه متن رمزی که از 
$m_{0}$
حاصل می شود برابر $ uiui $ است.
\\
\\
به طور مشابه برای 
$m_{1}=ifcd$ 
که از جدول الفبای انگلیسی
$i=8$ ،
$f=5$ ،
$c=2$
و
$d=3$
است داریم :
$$XA=\begin{pmatrix}  8&5
\end{pmatrix} \begin{pmatrix}     3&1\\2&1
\end{pmatrix} = \begin{pmatrix}  34&13
\end{pmatrix}$$
حاصل این عبارت به مد 26  برابر است با
$(  8 \quad  13  )$
$$XA=\begin{pmatrix}  2&3
\end{pmatrix} \begin{pmatrix}     3&1\\2&1
\end{pmatrix} = \begin{pmatrix}  12&5
\end{pmatrix}$$
ازجدول الفبای انگلیسی
$8=i$ ،
$13=n$ ،
$12=m$
و
$5=f$
می باشد .در نتیجه متن رمزی که از 
$m_{1}$
حاصل می شود برابر $ inmf $ است.
\\
\\
حال چالشگر متن رمزی را برای حمله کننده می فرستد ، چون حمله کننده نوع سیستم رمزی را می داند پس اگر در متن رمز حروف دوتایی یکسان بود یعنی
$m_{0}$
 رمز شده و در غیر این صورت حمله کننده می داند که  
$m_{1}$
 رمز شده است.
\begin{corollary}
سیستم رمز هیل امنیت کامل ندارد چون با یک کلید رمز شده است.
\end{corollary}
\newpage
{\LARGE
بررسی امنیت کامل سیستم رمز جایگشتی:}
\\
\\
حمله کننده 
$A$
دو متن ساده 
$m_{0}=eeee$
و
$m_{1}=ifcd$
رابرای چالشگر می فرستد. فرض کنید $ m=4 $ باشد و کلیدی را که چالشگر انتخاب می کند برابر
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\newcolumntype{N}{@{}m{0pt}@{}}
\begin{center}
\begin{tabular}{ | M{0.5cm} | M{0.5cm} | M{0.5cm} | M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm} | M{0.5cm}| M{0.5cm}| M{0.5cm} | M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm}| M{0.5cm} N } 
\hline
$4$   &   $3$  &   $2$  &   $1$  &    $X$  \\%[0.5cm]
\hline
$1$  &   $2$  &   $3$  &   $4$  &   $Y$ \\%[0.5cm]
\hline
\end{tabular}
\end{center}
 باشد، حال چالشگر با استفاده از این کلید متن ساده را رمز کرده و برای حمله کننده می فرستد.
\\
\\
در سیستم رمزجایگشتی تابع رمزنگاری ازرابطه زیر بدست می آید :
\begin{align*}
e_{k}:Z_{26}^m&\longrightarrow Z_{26}^m\\
(x_{1},...,x_{m})&\longrightarrow (x_{\pi(1)},...,x_{\pi(m)})
\end{align*}
برای
$m_{0}=eeee$
داریم :
$$ e_{\pi}(eeee)=eeee$$
چون $ m=4 $ است ، چهارتایی جداکردیم .در نتیجه متن رمزی برابر 
$eeee$
می باشد که از جدول بدست آمده است .
\\
\\
به طور مشابه برای 
$m_{1}=ifcd$  
طبق جدول خواهیم داشت :
$$ e_{\pi}(ifcd)=dcfi$$
که همان متن رمزی ما می باشد .
\\
\\
حال چالشگر متن رمزی را برای حمله کننده می فرستد ، چون حمله کننده نوع سیستم رمزی را می داند پس اگر در متن رمز حروف چهارتایی یکسان بود یعنی
$m_{0}$
 رمز شده و در غیر این صورت حمله کننده می داند که  
$m_{1}$
 رمز شده است.
\begin{corollary}
سیستم رمز جایگشتی امنیت کامل ندارد چون با یک کلید رمز شده است.
\end{corollary}
\begin{remark}
 سیستم های رمز قالبی چون با یک کلید رمز می شوند امنیت کامل ندارند. 
\end{remark}
\newpage
 حال سیستم های رمز دنباله ای را مورد بررسی قرار می دهیم :
\\
\\
"در ابتدا می دانیم که در سیستم رمز دنباله ای چنین مشکلی وجود ندارد چون ما یک دنباله کلید تعریف می کنیم."
\\
\\
سیستم های رمز دنباله ای به دو دسته تقسیم می شوند :
\begin{enumerate}
\item
غیرهمزمان :  دنباله کلید به متن ساده یا متن رمز وابسته است.
\item
همزمان :  دنباله کلید مستقل از متن ساده یا متن رمز است.
\end{enumerate}
در سیستم رمز دنباله ای غیر همزمان ، دنباله کلید از رابطه زیر بدست می آید:
\[
K_{i}=
\begin{cases}
k \quad  ,  \ i=1\\

x_{i-1} \quad , \ i > 1
\end{cases}
\]
امادر سیستم رمز دنباله ای همزمان ، دنباله کلید از رابطه زیر بدست می آید:
$$K_{i+4}=K_{i}+K_{i+1}\pmod{\ 2}$$  $$  i\geq1$$
که
 $K \in Z _{2}^{n}$
می باشد .
\\
\\
{\LARGE
بررسی امنیت کامل سیستم رمز دنباله ای غیرهمزمان: }
\\
\\
حمله کننده 
$A$
دو متن ساده 
$m_{0}=01$
و
$m_{1}=00$
رابرای چالشگر می فرستد ، سپس  چالشگر با استفاده از کلیدی که در اختیار دارد متن ساده را رمز کرده و برای حمله کننده می فرستد .
$$C = C _{1}C_{2} = e_{k}(m_{b})$$
که
$ C _{1}$
به معنای انتخاب بیت اول و
$ C _{2}$
انتخاب بیت دوم می باشد .
\\
در نهایت حمله کننده 
$b^{\prime}$
رابیرون می دهد که به صورت زیر است :
\[
b^{\prime}=
\begin{cases}
0\quad  ,  \ c_{2}= 1\\

1 \quad , \ c_{2}= 0\\
\end{cases}
\]
\\
$b^{\prime}=0$
یعنی
$m_{0}$
رمز شده است ، 
$b^{\prime}=1$
یعنی
$m_{1}$
رمز شده است .
\\
\\
در نتیجه 
$pr(b=b^{\prime})=1$
 ، یعنی سیستم رمز دنباله ای غیر همزمان امنیت کامل ندارد.
\begin{corollary}
سیستم رمز دنباله ای غیر همزمان، امنیت کامل ندارد، زیرا دنباله کلید به متن ساده و متن رمز وابسته است (تصادفی نیست) .
\end{corollary}
{\LARGE
بررسی امنیت کامل سیستم رمز دنباله ای همزمان: }
\\
\\
حمله کننده 
$A$
دو متن ساده 
$m_{0}=10000$
و
$m_{1}=00000$
رابرای چالشگر می فرستد ، سپس  چالشگر با استفاده از کلیدی که در اختیار دارد متن ساده را رمز کرده و برای حمله کننده می فرستد .
$$C =C _{1} \ldots C_{5}=e_{k}(m_{b})$$
فرض کنید 
$m^{\prime}$
 متن ساده پنج بیتی باشد :
$$m^{\prime}=m_{1}^\prime\ldots  m_{5}^\prime$$
دراین صورت متن رمزی برابر است با :
$$C=m_{1}^\prime +k _{1}\|m_{2}^\prime +k _{2}\| \ldots  \|m_{5}^\prime +k _{5}$$
حال اگر 
$$C=k _{1}\|k _{2}\| \ldots  \|k _{5}$$
باشد خواهیم داشت :
$$c_{1}\oplus c_{2}\oplus c_{5} =k_{1}+k_{2}+k_{5} =2k_{5} =0 \pmod{\ 2} $$
واگر
$$C=1 + k _{1} \|k _{2} \| \ldots  \|k _{5}$$
داریم :
$$c_{1}\oplus c_{2}\oplus c_{5} =1+k_{1}+k_{2}+k_{5} =1+2k_{5} =1 \pmod{\ 2}$$
در نهایت حمله کننده 
$b^{\prime}$
رابیرون می دهد که به صورت زیر است :
\[
b^{\prime}=
\begin{cases}
1\quad  ,  \ \sum_{i=1}^5c_{i}=0\\

0\quad , \ \sum_{i=1}^5c_{i}=1\\
\end{cases}
\]
\\
\begin{corollary}
سیستم رمز دنباله ای همزمان، امنیت کامل ندارد زیرا دنباله کلید تصادفی نیست.
\end{corollary}
{\LARGE
مشکل دوم سیستم رمز دنباله ای همزمان: }
\\
\\
اگر مقدار اولیه برای کلید $ K=1000 $ باشد و دنباله کلید به صورت زیر باشد:
$$ K=100010011010111100010 $$
کلید ۱۵ بیتی است از بیت ۱۶ به بعد دنباله کلید تکرار شده است.
\begin{align*}
e_{k} : p^{15}&\longrightarrow c^{15}\\
x&\longrightarrow x+k
\end{align*}
\\
آزمایش تمایز پذیری آن را به صورت زیر طراحی می کنیم :
\\
\\
حمله کننده 
$A$
دو متن ساده 
$$m_{0}=\overline{0}^{15}  \overline{0}^{15}$$
و
$$m_{1}=\overline{1}^{15}  \overline{0}^{15}$$
رابرای چالشگر می فرستد ، سپس  چالشگر با استفاده از کلیدی که در اختیار دارد متن ساده را رمز کرده و برای حمله کننده می فرستد .
" $\overline{0}^{15}$
یعنی 15 بار تکرار شده است . "
\\
\\
دراین صورت متن رمزی برابر است با :
$$C = \alpha \beta =e _{k}(m_{b})$$
که
$ \alpha$
یعنی انتخاب  15 بیت اول و
$\beta $
انتخاب 15  بیت دوم می باشد .
\\
در نهایت حمله کننده 
$b^{\prime}$
رابیرون می دهد که به صورت زیر است :
\[
b^{\prime}=
\begin{cases}
0\quad  ,  \ \alpha\oplus\beta=0\\

1\quad , \ \alpha\oplus\beta=1\\
\end{cases}
\]
\begin{corollary}
سیستم های رمز دنباله ای (همزمان – غیرهمزمان) دارای امنیت کامل نمی باشند ، چون کلید تصادفی نیست.
\end{corollary}
\newpage
{\LARGE
سیستم رمز دنباله ای یک بار مصرف : }
\\
\\
رمز یک بار مصرف 
$(OTP)$
 یا ورنام، سیستم رمز یکبار مصرف یک سیستم رمز متقارن است که در آن فضای کلید و فضای متن اصلی مجموعه همه رشته های $ n$  بیتی هستند یعنی
$$p=c=k=z_{2}^n$$
$$|k|=2^n$$
و الگوریتم تولید کلید، رمز نگاری و رمزگشایی به صورت زیر تعریف می شود :
\begin{enumerate}
\item
$ Gen $ :
یک رشته تصادفی $ k$  از  $ K $  تولید می کند.
\item
$ Enc$ :
پیام اصلی 
$ m \in P $
 و کلید
$ k \in K $
 را می گیرد و متن رمزی 
$C = m \oplus k$
 را تولید می کند.
\item
$ Dec $ :
 ورودی  $ C  $ و کلید $ K  $ را می گیرد و اگر 
$c\in C=\{0,1\}^n$
 باشد، متن اصلی
$m = c \oplus k$ 
را تولید می کند.
\end{enumerate}
به عبارت دیگر
\begin {align*}
e_{k} : p&\longrightarrow c\\
m_{i}&\longrightarrow m_{i}\oplus k_{i}
\end{align*}
و
\begin {align*}
d_{k} : c&\longrightarrow p\\
y_{i}&\longrightarrow y_{i}\oplus k_{i}
\end{align*}
توابع رمزنگاری و رمزگشایی می باشند .
\\
به شرطی که برای هر متن ساده به طول $ n$  ، بتوان دنباله کلید کاملاً تصادفی n بیتی تولید کرد.
و ۱ بار هم از این دنباله کلید برای رمز کردن استفاده کرد.
\begin{remark}
در رمز نگاری به روش رمز یک بار مصرف نیاز داریم طول کلید به اندازه متن اصلی باشد ،  اگر طول کلید کوتاه باشد لازم داریم طول کلید به اندازه متن اصلی گسترش یابد.
\end{remark}
\begin{theorem}
 سیستم رمز دنباله ای یک بارمصرف امنیت کامل دارد یعنی :
$$pr(c|m_{1})=pr(c|m_{0})$$
\begin{proof}
چون
$$pr(c|m_{1})=pr(c=m \oplus k |m_{1})=pr(k=c \oplus m_{1})=\frac{1}{2^n}$$
می باشد  ، پس تساوی زیر نیزبرقرار است
$$pr(c|m_{0})=pr(k=c \oplus m_{0})=\frac{1}{2^n}$$
در نتیجه حکم قضیه اثبات شد .
\end{proof}
\end{theorem}
\begin{theorem}
اگر سیستم رمز امنیت کامل داشته باشد آن گاه
$$|k|\geq |p|$$
\begin{proof}
 به برهان خلف فرض می کنیم 
 $|k|< |p|$
باشد و نشان می دهیم که سیستم رمز امنیت کامل ندارد.
\\
$m_{1}$
را یک متن ساده و  $ k $  را کلید دلخواه در نظر می گیریم :
$$C=Enc_{k}(m_{1})$$
و
$$pr(c|m_{1})> 0$$ 
باشد ، فرض کنید
$$M(c)=\{ m\quad | \quad \exists k \in K\quad ,  m=Dec_{k}(c) \}$$
درنتیجه 
$$|M(c)|\leq |k|<|p|$$
می با شد ، بنابراین 
$$\exists m_{0} \in P   ,   m_{0}\not\in M(c)  \Longrightarrow  pr(c|m_{0})= 0$$
چون 
$pr(c|m_{1})\neq pr(c|m_{0})$
پس با فرض امنیت کامل به تناقض می رسیم  ، در نتیجه فرض خلف باطل و حکم قضیه برقرار است .
\end{proof}
\end{theorem}
\begin{corollary}
سیستم های رمز در صورتی امنیت کامل دارند که  
$|k|\geq |p|$
باشد و دنباله کلید کاملاً تصادفی باشد.
\end{corollary}
بنابراین امنیت کامل، تعریف سخت گیرانه ای برای امنیت است، یا به عبارت دیگر سیستم های با امنیت کامل غیر کاربری اند.
\\
در نتیجه باید به دنبال تعریف دیگری از امنیت باشیم که در فصل های بعد به آن می پردازیم.
\end{document} 
