ستاره های آسمان

ریاضی ابزار شناخت جهان هستی

ستاره های آسمان

ریاضی ابزار شناخت جهان هستی

ستاره های آسمان
مطالب پربحث‌تر

سلام

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

 

1.            کیوبیت تک ذره‌ای، نقطه‌ای روی دایره واحد در صفحه‌

\[ \mathbb{C} ^2 \]

یا به عبارت دیگر برداری یکه در صفحه فوق است. مولد‌های این صفحه را با

\[|0>=(1,0) , |1>=(1,0) \]

نشان می‌دهیم یک پایه معمول دیگر برای این فضای برداری

\[|+>=(1,1) , |->=(-1,1) \]

است.

. دقت کنید این صفحه یک فضای برداری روی میدان اعداد مختلط است. برخلاف بیت کلاسیک، کیوبیت کوانتومی ناشمار حالت متفاوت می‌تواند داشته باشد.

  1. کیوبیت n ذره‌ای برداری یکه در فضای حاصلضرب تانسوری n صفحه مختلط است.
  2. مقدار یک کیوبیت را نمی‌توان به طور دقیق تعیین کرد. برای تعیین مقدار یک کیوبیت از الگوریتم زیر استفاده می‌کنیم:

                     i.            قطبش کیوبیت n ذره‌ای در یک فضای برداری

\[ 2^n \]

قطبش دارد. پایه‌های این فضای برداری حاصلضرب تانسوری پایه‌های n صفحه مختلط دو بعدی است.

                   ii.            برای مشاهده‌گر (معادل با چشمی در رایانه‌های کلاسیک) یک پایه فضای برداری تعیین می‌شود. خروجی مشاهده‌گر یکی از اعضای پایه خواهد بود. پایه تثبیت شده را

\[ \left\lbrace \beta^{2^n}_0, \beta^{2^n}_1 ,\ldots , \beta^{2^n}_{2^n} \right\rbrace \]

                  iii.            سیستمی که در وضعیت

\[ \phi= \sum \lambda_i \beta^{2^n}_i \]

باشد را مقابل مشاهده‌گر قرار می‌دهیم مشاهده‌گر با احتمال

\[ \parallel \lambda_i \parallel \]

مقدار

\[ \beta_i \]

را اعلام می کند.

دقت کنید در الگوریتم فوق، پایه فضای هیلبرت را برای مشاهده‌گر از پیش معرفی کرده‌ایم.

  1. حالت سیستم بعد از مشاهده به حالت

\[ \phi^{'}= \beta_i \]

فرو می‌ریزد.

  1. می‌توان m ذره یک سیستم n ذره‌ای با حالت اولیه

\[ \phi= \sum \lambda_i \beta^{2^n}_i \]

را مقابل چشم مشاهده‌گر قرار داد. در این وضعیت جالت سیستم m ذره‌ای را یکه شده بردار زیر می‌گیریم:

\[ \phi^m= \sum \left( \sum\limits_{\beta^{2^m}_j ~is ~prefix~ \beta^{2^n}_i } \lambda_i \right) \beta^{2^m}_j \]

خروجی مشاهده گر را با Output می‌نامیم.

 

  1. حالت n-m ذره باقیمانده نیز به یکه شده بردار زیر فرو ریزی می‌کند:

\[ \phi^{n-m}= \sum \mu_i \beta^{2^m}_i \]

که

\[ \mu_i = \left\lbrace \begin{array}{cc} 0& Output~not~prefix~\beta^{2^n}_i\\ \lambda& Output~prefix~\beta^{2^n}_i\\ \end{array} \right. \]

  1. عمل مشاهده برگشت‌پذیر نیست.
  2. روی بردار وضعیت هر n کیبویت می‌توان هر عملگر ماتریسی اعمال کرد.  به عملگرهای ساده و پرکاردبرد گیت نیز می‌گویند که در ادامه در مورد آنها بیشتر مطالعه می‌کنیم.
  3. \[ |\alpha> = (<\alpha|)^t \]

 

گیت‌های پرکاربر:

\[ X=|0><1|+|1><0| \]

\[ Y=i|0><1|-i|1><0| \]

\[ Z=|0><0|-|1><1| \]

\[ H=|0><+|+|1><-| \]

ان شاء الله در آینده مطالب بیشتری در زمینه نظریه اطلاعات کوانتومی خواهم نوشت

  • محمد اسماعیل حسنی

سلام

چند تمرین برای شروع الگوریتم و فلوچارت نویسی

دانلود

  • محمد اسماعیل حسنی

سلام

کتاب «پروتکلهای احراز و بنای  کلید» را می‌توانید از این لینک دریافت کنید.

برای باز کردن فایلهای 7z از نرم‌افزار Winrar یا 7-zip استفاده کنید.

------------------------------------------

For download "Protocols for Authentication and Key Establishment" click on this link

Authers: Colin Boyd & Anish Mathuria

  • محمد اسماعیل حسنی

سلام
یافتن شرایط لازم در گزاره​ی شرطی (تثبیت مقدمات)
فرض کنید گزاره
\[ p_1 \wedge ... \wedge p_n \rightarrow q \]
را ثابت کرده‌ایم ولی می‌خواهیم بدانیم آیا با حداقل شرایط به جواب رسیده‌ایم یا نه؟ به نوبت یکی از
\[p_i\]
ها را حذف و سعی می‌کنیم تا گزاره جدید را اثبات یا با یافتن مثال نقضی، رد کنیم، اگر پس از حذف یک
\[p_i\]
به مثال نقض رسیدیم
\[p_i\]
شرطی لازم برای
\[q\]
است.
مثال: وارون هر تابع حقیقی پیوسته، پیوسته است: اثبات گزاره خیلی ساده، است. مگر غیر این است که اگر تابع حقیقی مثل
\[f\]
در نقطه
\[x_0\]
ناپیوسته باشد این ناپیوستگی بر روی نمودار به صورت یک پارگی مشخص است؟ بقیه اثبات و دقیق کردن بیان آن با شما... .
حال فرضیات صورت مسأله را یک بار بررسی کنیم تا بتوانیم فرضیات صورت مسئله را کاهش دهیم: تابع
\[f : \mathbb{R} \rightarrow \mathbb{R}\]
است می‌توان آنرا به
\[f : (X_1,d_1) \rightarrow (X_2,d_2)\]
که دامنه و برد فضاهای متریک دلخواه است گسترش داد. حتی می‌توان
\[f : (X_1,\tau_1) \rightarrow (X_2,\tau_2)\]
باشد که دامنه و برد فضاهای توپولوژیک دلخواه‌اند. به نظر شما وارون تابع پیوسته\\
\[f : (X_1,d_1) \rightarrow (X_2,d_2)\]
هم پیوسته است؟ در آینده به این سؤال پاسخ خواهیم داد ولی شما حریص باشید و خودتان به پاسخ برسید.

  • محمد اسماعیل حسنی

سلام

مطلب جالبی که سرکلاس رمزنگاری شنیدم ولی هنوز مطمئن نیستم درسته یا نه:
اگه یه سیستم رمزنگاری داشته باشیم که از هر متن رمز شده دقیقا یک بیت رو بشه رمزگشایی کرد کل پیام رو بازسازی کرد!

اگه این درسته باشه نشت فقط یه بیت که کمترین نشت ممکن اطلاعات از یه سیستم با امنیت ناقص هست هم قابل گذشت نمیشه!!

  • محمد اسماعیل حسنی

سلام

سوالاتی که برای یکی از دوستان آماده کرده بودم رو اینجا میذارم تا همه بتونن استفاده کنن.

به خاطر پاک شدن حافظه رایانه امکان ادیت کردن فایل و حذف کردن پیامهای فردی وجود نداشت ولی سوالهاش سوالهای خوبی هستن، حداقل معلوماتی هستن که برای یک فرد نیازه تا بتونه در مسابقات ریاضی خوب ظاهر بشه

دانلود

  • محمد اسماعیل حسنی

سلام

عکس زیر از صفحه ۷ کتاب ریاضی اول دبیرستان گرفته شده.


  • جمله اول: شمارش یک نوع اندازه‌گیری است
  • جمله دوم: شمارش تعداد اشیاء را مشخص می‌کند.
  • اجمله سوم: شمارش دارای واحد است.

عبارت فوق نخستین جایی است که در این کتاب به طور رسمی تعریفی برای شمارش ارائه شده و دانش آموزی که نیاز به مفاهیم عام و غیرتخصصی دارد با تعریفی روبرو می‌شود که حتی اولین جمله آن «شمارش نوعی اندازه‌گیری است» چندان جالب به نظر نمی‌رسد.

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

از نویسنده محترم هم سوالی داشتم: شمارش دارای واحد هست؟؟؟؟ شمردن، برای تعیین تعداد موجوات هست! واحد برای اندازه گرفتن به معنای عمومی آن

-----------------------------------------

نمیدونم نتیجه کسایی که همچین کتابهایی میخونن چی میشه ولی مهندسی که از کتابها بیرون میاد ساختمون سه طبقه میسازه، طبقه دوم میریزه، طبقه اول و سوم سالم میمونن...
یادمه خودمون دبیرستان بودیم یه کتاب شیمی به خورد ما داده بودن که رکورددار غلط در سطح کتب درسی جهان بود (به گفته معلمین مربوطه)... فکر کنم 900 غلط در سه کتاب اول تا سوم دبیرستان!!!

  • محمد اسماعیل حسنی
برای نمایش مطلب باید رمز عبور را وارد کنید
  • ۱۱ آبان ۹۲ ، ۰۲:۳۹
  • محمد اسماعیل حسنی

سلام

فردی به نام الف قصد ارسال نامه‌ای به شخص ب را دارد ولی به پستچی بین خودش و ب اعتمادی ندارد. تمام دارایی الف یک یک قفل و کلیدش و یک صندوق است که میتواند نامه را داخل آن بگذارد و قفلش کند. ب هم فقط یک قفل و کلیدش را دارد. پستچی هر تعداد دلخواه می‌تواند بین این دو فرد در رفت و آمد باشد. سوال این است که چگونه نامه الف به ب برسد بدون اینکه پستچی بتواند نامه را بخواند؟

دقت کنید اگر کلید به پستچی تحویل داده شود حتی اگر قفل مربوط به آن کلید روی جعبه نباشد وی می‌تواند به کلیدسازی مراجعه کند و برای روز مبادا یک کلید کپی کند پس کلید هرگز به پستچی تحویل داده نمیشود

  • محمد اسماعیل حسنی

سلام

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

\[ K_{AS} \]

برای رمزنگاری مبادله شده است)

1. علی به سرور میگویدA, Z (یعنی علی هستم و میخوام با زهرا نشست برقرار کنم)

2. سرور یک کلید K تولید میکند و به حسن میگوید:

\[ \{ K \}_{AS} , \{ K \}_{ZS} \]

(یعنی کلید K را با کلیدهای بین خودش و اعضای A و Z رمز میکند تا شنودگر نتواند آنها را تشخیص دهد)

3. علی به زهرا میگوید:

\[A , {K}_{ZS} \]

یعنی علی هستم و با این کلید می‌خواهم با تو نشستی برقرار کنم.

اکنون می‌توان یک نشست بین علی و زهرا برقرار شود و علی و زهرا مطالب بین خود را با کلید K رمز خواهند کرد تا مهاجم از مطالب در حال تبادل چیزی نفهمد.

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

مهاجم: فردی است که می‌داند اعضای شبکه متنهای خود را چگونه رمز می‌کنند -ولی از کلید رمز اطلاعی ندارد-، می‌تواند جعل هویت کند، به اطلاعات در حال تبادل دسترسی کامل دارد و همه آنها را می‌بیند. می‌تواند بخشی یا همه اطلاعات در حال مبادله را تغییر دهد. مهاجم حافظه دارد و می‌تواند اطلاعات قبلی را ذخیره کند (تا از آنها برای حملات آتی استفاده کند)، هوشمند است (می‌تواند خلاقیت به خرج دهد). هویت همه اعضای شبکه را می‌داند، در کل هر قدرتی دارد مگر دو محدودیت:  وی تنها و تنها به کلید رمزنگاری و رمزگشایی دسترسی ندارد و قدرت محاسباتی وی محدود به قویترین سیستمهای رایانه‌ای جهان است.

برخلاف تصور اولیه با این مفروضات مهاجم، بزرگنمایی نشده است. مثلا نه فقط یک مهندس شبکه بلکه حتی خیل عظیمی از علاقه‌مندان به کامپیوتر با پروتکلهای مختلف VPN آشنایی دارند و جزئیات PP2P و L2TP را میدانند، با یک دستگاه ساده چندصدهزارتومانی به آنتن وایرلس شما دسترسی دارند تا قادر باشند متنهایی رمز شده‌ای که نامه شما از سایتهای سرویس دهنده پست الکترونیکی مثل چاپار یا رایانامه را ببینند -البته به متن رمزنگاری شده دسترسی خواهد داشت نه متن اولیه- حتی سیستم رمزنگاری اکثر سایتهای پست الکترونیکی مثل gmail و yahoo پروتکل httpsی است که به راحتی میتوانید با یک جست و جو در اینترنت به جزئیات آن دست پیدا کند. پس برای مهاجم تنها چیزی که باقی‌می‌ماند کلیدی است که به طور خودکار بین سیستم شما و سایت چاپار به اشتراک گذاشته شده تا ایمیل شما رمزنگاری شود و به سایت سرویس‌دهنده ارسال گردد.

حداقل چیزهایی که در امنیت یک سیستم میخواهیم این است که:

1. کسی نتواند با هویتی جعلی وارد نشست شود.

2. در صورت لو رفتن کلید نشستهای مختلف حداقل اطلاعات نشت کند (کلید نشست، کلیدی است که اطلاعات رد و بدل شده با آن رمز شده‌اند.)

3. فرد مهاجم نتواند خودش برای نشستها کلید تعریف کند.

4. مهاجم نتواند هیچ عملیات مخربی که موجب نشت نامه‌های قبلی، فعلی یا آتی مبادل شده بین طرفین نشست شود را انجام دهد.

صداقت:

1.  اگر کسی اطلاعاتی دریافت کرد مطمئن باشد که این اطلاعات از طرف کیست و مطمئن باشد که ارسال کننده نامه نمی‌تواند منکر ارسال این اطلاعات شود.

خاطرجمعی:

1. افراد از ارسال درست نامه‌ها مطمئن باشند. یعنی در پایان نشست هر کس مطمئن باشد هر نامه‌ای فرستاده به دست طرف مقابل رسیده و طرف مقابل هم میداند که این نامه از طرف اوست.

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

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

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

امکان انکار ارسال درخواست نشست توسط علی:

برای اینکه علی مطمئن شود که زهرا کلید را دریاف کرده است: زهرا یک عدد تصادفی بزرگ که احتمال انتخاب آن نزدیک به صفر است را برای علی ارسال میکند به این عدد nonce میگویند و در واقع به این معناست که پیام شما دریافت شد. البته از nonce برای احراز تازگی پیام نیز می‌توان استفاده کرد. مثلا علی کنار پیام خود یک

\[ N_A \]

می‌فرستد که اگر زهرا همین عدد را برگرداند علی متوجه میشود که زهرا پیام وی را دیده است. پروتکل به شکل زیر تغییر می‌یابد:

1. علی به سرور:

\[ A, Z]

2. سرور به علی:

\[ \{ K \}_{AS} , \{ K \}_{ZS} \]

3. علی به زهرا:

\[ \{ K \}_{ZS} , N_A \]

4. زهرا به علی:

\[ N_A \]

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

\[ N_A ]\

را با کلید K رمز می‌کند تا زهرا پس از باز کردن بسته حاوی کلید بتواند nonce علی را برگرداند

1. علی به سرور:

\[ A, Z ]\

2. سرور به علی:

\[ \{K\}_{AS} , \{K\}_{ZS} \]

3. علی به زهرا:

\[ \{ K \}_{ZS} , \{N_A \}_K

4. زهرا به علی:

\[ \{N_A-1 \}_K \]

پرسش: چرا در  گام چهار زهرا

\[ \{N_A-1 \}_K \]

را برگرداند؟ میتوانست از کلید استفاده نکند؟ یا تفریق انجام شده برای چه بود؟ آیا الآن علی می‌تواند مطمئن باشد که زهرا کلید را دریافت کرده و نه اینکه مهاجمی قصد فریب وی را دارد؟

دقت کنید که پروتکلهای عمدتا کوتاه و حداکثر در حالات استثناء به ۸ یا ۹ گام می‌رسند و پروتکلهای طولانی پروتکلهای مناسبی نیستند. هر چه تعداد خطوط یک پروتکل بیشتر امکان وجود یک نقص در آن نیز بیشتر خواهد بود.

سعی کنید پروتکلهایی طراحی کنید که همه مشکلات پروتکل ما را مرتفع سازند و سپس سعی کنید به پروتکل خودتان حمله کنید!غیر از nonce برخی ابزارآلاتی که در پروتکل‌سازی استفاده می‌شوند استفاده از امضای دیجیتال، توابع hash -اثرانگشتی-، MAC و... است می‌توانید از چنین ابزارهایی هم استفاده کنید.

  • محمد اسماعیل حسنی