لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 25
9) الگوریتم های ژنتیکی به کاربره شده در مدیریت ترافیک هوایی
افزایش ترافیک هوایی، از زمان شروع تجارت هوایی، باعث مشکل اشباع در فرودگاهها، یا مکانهای فضایی شده است. در حالی که هواپیماها ارتقاء می یابند و اتوماتیک تر می شوند. اما هنوز کنترل ترافیکی بر پایه تجربیات انسان است. مطالعه حاضر ، دو مشکل مدیریت ترافیک هوایی (ATM) را به جزء بیان می کند، که برای آنها راه حل های بر پایه الگوریتم ژنتیکی وجود دارد. اولین کاربرددر رابطه با مشکل enroute است و دومین کاربرد در مورد مشکلات مدیریت ترافیکی در سکوهای فرودگاهها است.
9.1) راه حل درگیریهای Enroute = کنترل ترافیک هوایی (ATC) می تواند توسط یک سرس از فیلترها نشان داده شود، جایی که هر فیلتر یک ؟ خاص دارد و افق های خاص محیطی و موقتی را اداره می کند. 5 سطح (لِوِل) قابل تشخیص است. در دوره طولانی (بشتر از 6 ماه) ترافیک در یک روش میکروسکوپی می تواند برنامه ریزی شود. برای مثال مردم با یک نمودار ترافیکی روبرو هستند که اندازه های کمیته ، که برنامه های ساعتی و موافقت با ارتش را مورد توجه قرار داده است، به کاربرده می شود برای فرهنگ هواپیمایی در زمانهای اوج یعنی بعد ظهر جمعه.
در دوره کوتاهتر ، معمولاً در مورد تنظیمات قبل ، صحت می شود. این مورد شامل برنامه ریزی کردن روز ترافیک ، یک یا دو روز قبل تر می شود. در این مرحله ، اشخاص ایدة مشخصی درباره بیشتر برنامه ی پرواز و ظرفیت کنترل هر مرکز دارند. حداکثر جریان هواپیما که می تواند یک قطر را سوراخ کند. ظرفیت قطر نامیده می شود. این عمل توسط CFMU3 انجام می شود. ترافیک میان آتلانتیک برای مثال در این مرحله مورد توجه قرار می گیرد. راههای هوایی، تنظیم ساعت های پرواز و حالت هوا مورد توجه قرار می گیرد. به طور کل این شغل توسط FMP4 در هر مرکز صورت می گیرد. آخرین فیلتر ، فیلتر تاکتیکال است که با کنترل داخل یک قطر بستگی دارد. زمان متوسطی که یک هواپیما در یک بخش صرف می کند حدود 15 دقیقه است. اینجا میزان رویت کنترل کننده کمی بالاتر از میزان دریافت طرحهای پرواز است چند دقیقه قبل از ورود هواپیما به بخش. کنترل کننده وظیفه چک کردن، حل اختلافات و همپایه بودن با بخش های همسایه را تضمین می کند. در این حالت تعیین تعریف برخورد مطلوب است. دو هواپیما با هم برخورد دارندوقتی که فاصله جدایی افقی بین آنها کمتر 5 مایل باشد و تفاوت انها در ارتفاع کمتر از 1000 فیت باشد. روش هایی که توسط کنترل کننده برای حل این برخورد به کار می رود بر پایه مسائل زیر است.
بر روی تجارب قبلی و هر دانش خلاقی. وقتی که چند جفت از هواپیماها در اختلاف مشابهی با هم تماس دارند، آنها با ساده کردن مشکلات شروع می کنند که فقط اختلافات ابتدایی را داشته باشند.
برای حل فیلتر اضطراری به نظر نمی رسد که مداخله کند به جز مواردی که سیستم کنترل دچار نقض شده یا اینکه ضعیف شده است. برای کنترل کننده ، آشیانه اطمینان مسیر هر هواپیما را با افق موقت چند دقیقه ایی پیش بینی می کنند. از موقعیت های رادار و الگوریتم های ادامه دار استفاده می کند و یک اخطار را در لحظه برخورد بوجود می آورد. این یک راه حلی را برای برخورد پیشنهاد نمی کند. به طور کل TCAS به نظر می رسد که از چنین تصادفی جلوگیری کند. پیش بینی موقت کمتر از یک دقیقه است (بین 25 تا 40 ثانیه) بنابر این بسیار دیر است برای کنترل کننده مانور هواپیما را، همانطور که تخمین زده شده که نیاز به حداقل زمان 1 تا 2 دقیقه برای آنالیز کردن موقعیت دارد راه حلی را پیدا کنند و آنرا به هواپیماها اطلاع دهند. به طور عمومی TCAS، هواپیمای اطاف را جستجو می کند و به خلبان برای حل برخورد پیشنهاداتی می کند. این فیلتر باید برخورد غیر قابل پیش بینی را حل می کند، برای مثال وقتی که یک هواپیما از سطح پرواز خود بالاتر رفته است یا یک مشکل تکنیکی که به طور قابل توجهی ارتفاع آنرا پایین آورده است. کاربردهای پیشنهاد شده در این بخش با فیلتر تاکتیکال ارتباط دارند: دانستن موقعیت هواپیما در لحظه حاضر و موقعیت بعدی آنها، را بوجود نمی آورد. راه حل برای پایه چندین تصور است. یک هواپیما نمی تواند سرعت خود را تغییر دهد (یا بسیار آرام باید این کار را بکند) مگر در مواقع فرود. نباید اینطور تصور شود که یک هواپیما با سرعت انی پرواز می کند، به غیر مواردی که سطح بندی می شود و هیچ بادی وجود ندارد. به علاوه در طول فرود و بلند شدن ، مسیر آن یک خط صاف نیست. هواپیماها در مسیر چرخش خود در فشار هستند. به طور عمومی خلبانها مانور افقی را به عمودی ترجیح می دهند مگر در هنگام بلند شدن یا نشستن. اگر چه امروزه خلبانهای اتوماتیک قرتمندتر از خلبانهای انسانی هستند (در موقعیت های نرمال پرواز) برای مواقعی که حقیقی به نظر می رسد توجه کردن به این مسیرها که توسط انسانها قابل دسترسی نیست.
خلبان. نامطمئنی بین سرعت فرود آمدن و بلند شدن بسیار زیاد است (بین 10% و 50% سرعت عمودی). در طول مسافرت ، نااطمینانی در سرعت کاهش می یابد. بعد از آن ، نا اطمینانی به همراه گذشت زمان بیشتر نمی شود، همانطور که یک هواپیما، ارتفاع خود را کاملاً خوب نگه داشته است. تقریباً غیر ممکن است که به دنبال راه حل های آنالیتکی برای حل مشکل برخورد باشیم . اما، اصلی ترین مشکل از پیچیدگی مشکل بوجود می آید. بخش اول این فصل ، به معرفی بعضی از توضیحات می پردازد که حل مشکل برخورد برای ما قابل فهم تر می کند و بخش دوم به تاریخچه ایی کوتاه از الگوریتمهای آزمایش شده برای این مشکل و محدودیتهای آن می پردازد. قسمت سوم مدلهای مشکل را به جزء بررسی می کند و پیشرفت الگوریتم ژنیتکی برای حل مشکل در بخش چهارم وجود دارد که با آمارهای ؟ بدست آمده دنبال می شود.
1.1.9) پیچیدگی حل مشکل برخورد= یک برخورد را می توان به صورت زیر توضیح داد:
یک برخورد یعنی برخوردی بین دو هواپیما در طول یک زمان داده شده از مسیر پیش بینی شده، گرفتن نااطمینانیها در مسیر.
کلاسهای معادل مربوطه به عنوان دسته و مجموعه برخورد هواپیما یا مجموعه ایی از اندازه n می تواند شامل شود به برخوردهای قوی n. توجه کردن به فقط هواپیمای افقی ، نشان می دهد که تمام راه حل های قابل قبول شامل 2n(n-1) اجزای مرتبط، تحت این تصور که یک متر مناسب به کاربرده شده که نیاز دارد به اجراهای زیادی از الگوریتم جستجو بنابر این برای مجموعه هواپیمای 6،32768 عضو متصل پیشنهاد می شود. در حقیقت اگر عملکرد هواپیما مورد توجه قرار گیرد، تمام اجزای مرتبط لازم نیست که مورد بررسی قرار گیرد. با آرام کردن محدودیت های جدا کننده، مشکل شبیه یک مشکل جهانی می شود که حداقل شامل بهینه های داخلی می شود مانند اجزای متصل. اضافه کردن بعد عمودی خصوصیت ترکیبی مشکل را کم نمی کند.
2.1.9) وجود مترهای حل کننده:
اولین پروژه اتوماتیک کنترل ترافیک ، آمریکایی بود و در شروع دهه 80 بوجود امد، اما قادر به حل مجموعه سایز 3 یا بیشتر نبود. پروژه اروپایی ARC2000 یک متر از نارساییهای ممتر لوله چهار بعدی را پیشنهاد کرد که مسیر n+1+h هواپیما در محیط n که قبلاً مسیرش محاسبه شده بود. ارتقاء دهد.
این مدلها شکیات را مورد توجه قرار ندادند و قادر نبودند با حجم عظیم ترافیک مواجه شوند. در نهایت پروژه تجربی اروپایی FREER در سال 1995 کامل شد. و پیشنهاد کرد که می تواند برخورد هواپیماها را حل کند. مشکل همپایه بودن بین هواپیماها با به کار بردن قوانین قبلی هدایت می شد ، که مانند استفاده
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 26
«کارایی الگوریتم مسیریابی شکسته شده برای شبکه های چندبخشی سه طبقه»
چکیده:
این مقاله شبکه های سویچنگ سه طبقه clos را از نظر احتمال bloking برای ترافیک تصادفی در ارتباطات چند بخشی بررسی می کند حتی چنانچه سویچ های ورودی توانایی چند بخشی را نداشته باشند و نیاز داشته باشند به تعداد زیاد وغیرمجازی از سویچهای میانی برای فراهم کردن این مسیرهایی که پلاک نشوند مطابق درخواستها مدل احتمالی این دید را به ما میدهد که احتمال پلاک شدن در آن بسیار کاهش یافته و تقریبا به صفر می رسد در ضمن اینکه تعداد سویچهای میانی بسیار کمتر از تعداد تئوریک آن است.
در این مقاله یک الگوریتم مسیریابی شکسته شده را فعال پلاک شدن در آن معدنی شده است برای اینکه قابلیت مسیریابی با fanout بالا را برآورده کند. ما همچنین مدل تحلیلی را بوسیله شبه سازی کردن شبکه بر روی
فهرست اصطلاحات: چند بخشی، ارزیابی عملکرد، مدل احتمالی، شبکه های سویچینگ
معدنی:
شبکه های clos بخاطر انعطاف پذیری وساده بود نشان بطور گسترده در شبکه های تلفن، ارتباطات Data و سیستمهای محاسبه ای موازی بکار برده می شوند. کارایی خیلی از برنامه های کاربردی بوسیله یک عمل چند بخشی موثر که پیغامی را به چند دریافت کننده بصورت همزمان می فرستد بهتر می شود. به عنوان مثال در سیستمهای چند پردازنده ای یک متغیر همزمان سازی قبل از آنکه پرازنده ا بکارشان ادامه دهند باید فرستاده شود. همانطوریکه برنامه های کاربردی به خدمات چند بخشی موثر که توسعه پیدا کرده نیاز دارند در طی چند سال اخیر حتی در شبکه های با دامنه عمومی طراحی سیستمهای سویچینگ که بطور موثر بادرخواستهای چندبخشی سروکار دارد نیز اهمیت پیدا کرده است.
تلاشهای زیادی برای سازگار کردن شبکه های clos (که در ابتدا برای ارتباطات نقطه به نقطه توسعه پیدا کرده بودند) برای آنکه با ارتباطات چند بخشی وفق پیدا کنند انجام شده است.شبکه clos چند بخشی با قابلیت پلاک نشدن هنوز بسیار گران در نظر گرفته میشوند برای همین کارایی آن را روی پیکربندی های کوچکتر از معمول در نظر نمی گیرند.
یک شبکه clos سه طبقه بوسیله نشان داده می شود که سویچهای طبقه ورودی m سویچهای لایه میانی و سویچهای لایه خروجی است، هر کدام از سویچهای لایه ورودی تاپورت ورودی خارجی دارند و به هر کدام از سویچهای لایه میانی اتصال دارد بنابراین ارتباط بین طبقه ورودی وطبقه میانی وجود دارد . هر سویچ طبقه خروجی عدد پورت خروجی دارد و به هر کدام از سویچها یک درخواست اتصال نشان داده میشود به شکل c(x,y) که در آن x یک سویچ ورودی و را یک مجموعه مقصد از سویچهای خروجی است.
چندی /1 درجه fanout درخواست نامیده می شود. به یک مجموعه از درخواستهای اتصال سازگار گفته می شود اگر جمع تصادفات هر کدام از سویچهای ورودی از بزرگتر نباشد وجمع تصادفات کدام از سویچهای خروجی بزرگتر از نباشد.
یک درخواست با شبکه موجود سازگار است اگر تمام درخواستها و همچنین درخواست جدید سازگار باشد در شکل (1) برای نمونه با پیکربندی موجود سازگار است ولی سازگار نیست جون سویچ خروجی شماره 1 درخواست را قبلا حمل کرده است. یک خط سیر برای درخواست اتصال جدید یک درخت است که سویچ ورودی x را به مجموعه /1 تا سویچ خروجی از میان سویچهای میانی متصل می کند. یک درخواست اتصال قابل هدایت است اگر یک مسیر روی تمامی اتصالات بین طبقه ای پیدا کند وبتواند ردر انحصار قرار دهد.
ماسول و جدول برای اولین بار nonblacking محض /1 وشبکه clos سه طبقه قابل بازآیی را برای اتصالات چندگانه که اتصالات بین هر تعداد از سویچهای ورودی وسویچیهای خروجی بوجود می آورد را معدنی کردند.
هرانگ قابلیت بازایی وخواص nonblaking شبکه های clos چند بخشی را تحت شرایط مختلف ومحدودیت های fonout مورد بررسی قرار داد
یانگ وماسول اولین تحلیل خود را که اجازه می داد سویچهای هر طبقه برای کاهش نیازهای سخت افزاری همانند سازی کند را انجام دادند آنها ثابت کردند که اگر تعداد سویچهای میانی o(nlogr/logloyr) باشد آنگاه شبکه nonblacking بوجود آمده است که تمام درخواستها از حداکثر k عدد سویچ میانی استفاده می کند که k نیز ثابت می باشد. علاوه بر مطالعات شبکه های clos چندبخشی nonblamking چندین تلاش رویکرد برای تعیین رفتاری blacking شبکه های swiching برای ارتباطات نقطه نقطه وجود داشت.
این تحقیق مدلهای احتمالی را را که بصورت نزدیکی رفتار شبکه های سویچینگ سه طبقه ای را تخمین می زند را تامین می کند.
برای ارتباطات چند بخشی هرانگ ولین یک مدل blocking از درخواستهای چند پخشی قابل بازآرایی را در شبکه clos نقطه به نقطه nonblocking با فرمول c(n,r,2n-1) پیشنهاد کردند. یانگ ووانگ رفتار blaocking درخواستهای چند پخشی را روی شبکه clos بوسیله بسط دادن مدل بررسی کردند
بخش 2: مقدمات
این بخشی قسمتی از نتایج قبلی به علاوه تعاریف ونکاتی که در مدل های blocking خودمان استفاده کردیم و یک شمای مسیریابی برای شبکه های clos را نشان می دهد.
استراتژی های مسیریابی
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 20
کلونی مورچگان
(Ant Colony)
تابستان86
Preface:
مساله فروشنده دوره گرد جزء مسائل مشهور و کلاسیک تحقیق در عملیات می باشد . بسیاری از فعالیت های علمی را می توان به صورت مسئله فروشنده دوره گرد در آورد و سپس حل نمود . روشهای بهینه یابی موجود برای حل مسائل سخت ( همچون مسئله فروشنده دوره گرد ) بطور عمده شامل تعداد بسیار زیادی متغیر و محدودیت می باشند که از کارایی عملی آنها در حل مسائل با ابعاد واقعی می کاهد بدین علت در دهه های اخیراستفاده ازالگوریتم های ابتکاری و فوق ابتکاری مورد توجه قرار گرفته است . در این بین الگوریتم های فوق ابتکاری بدلیل ساختار ساده وتوانایی هایی که از خود نشان داده اند مورد استفاده محققین تحقیق در عملیات قرار گرفته است . در این تحقیق با ترکیب دو الگوریتم کلونی مورچگان و الگوریتم ژنتیک سعی شده است الگوریتم ترکیبی ساخته شود که تور بهتری را برای مسئله فروشنده دوره گرد بدست آورد . پس از طراحی الگوریتم، تنظیم پارامترهای آن با حل مسائل متعدد صورت گرفته است و برای مقایسه روش پیشنهادی با روشهای الگوریتم ژنتیک و مورچگان برخی از مسائل فروشنده دوره گرد موجود در سایت TSP حل شده است . نتایج بدست آمده نشان می دهد که روش ترکیبی پیشنهادی در اغلب مسائل قادر است جواب بهتری بدست آورد.
چکیده :
بهینه یابی کلونی مورچگان یکی از روشهای فرا ابتکاری است که به ساختن جواب مسایل بهینه یابی ترکیبی سخت می پردازد.
که برگرفته از رفتار مورچگان در پیروی از مسیرهای پیموده شده توسط مورچه های قبلی شکل گرفته وبرای یافتن جواب
مسایل بهینه یابی ترکیبی بکار میرود. مسایل بهینه یابی ترکیبی گونه ای از مسایل میباشندکه تعداد جوابهای موجه متناهی
لیکن زیاد دارند وبه صورت طبیعی شمارش همه آنها مقدور و یا به صرفه نیست.
در سالهای اخیر یکی از مهمترین زمینه های تحقیقاتی کشف رو شهای ابتکاری از طبیعت بوده است که از آنها برای بدست
آوردن نتایج خوب در مسایل بهینه سازی ترکیبی استفاده شده است .روش های ابتکاری با انجام چندین تکرار ویا با انجام
میزان مشخصی آزمایش ویا بکارگیری یک یا چندین عامل نظیر عصب ها- کروموزوم ها- مورچه ها ومانند آن بدست می آیند.
مقدمه:
بهینه یابی کلونی مورچگان یکی از روشهای فرا ابتکاری است که با الهام از طبیعت به ساختن جواب مسایل بهینه یابی ترکیبی
سخت می پردازد.
این سیستم اولین بار توسط مارکودوریگو در سال 1991برای حل مسایل مذکور معرفی گردید و اولین کاربرد آن در مورد
شناخته شده ترین مسئله بهینه یابی مسایل ترکیبی یعنی مسئله فروشنده دوره گرد بود.
مشاهده جستجوی مورچگان واقعی جهت یافتن غذا و انتخاب کوتاه ترین مسیر با مشارکت جمعی مورچگان یک کلونی ,
سر منشا پیدایش این روش برای حل مسایل بهینه یا بی ترکیبی بود.مورچه های واقعی قادر به تبادل اطلاعات مربوط به منابع
غذایی ازطریق ماده ای شیمیایی به نام فرمون می باشد.
آنها با به جا گذاشتن فرومون در مسیر ی که طی می کنند باعث میشوند تا دیگر مورچه ها با مشاهده اثرات فرومون بجامانده
در مسیر به آن جذب می شوند و همان راه رابرای رسیدن به منابع غذایی دنبال کنندبا افزایش حرکت مورچه ها در یک مسیر
میزان اثر فرومون افزایش یافته وخود عاملی برای جذب بیشتر مورچه ها به پیمودن این مسیر می گردد.
بیان رفتار مورچه های واقعی می تواند با شبیه سازی مناسب برای حل مسایل بهینه یابی ترکیبی استفاده گردد.سیستم
مورچگان تا کنون برای حل مسایل ترکیبی گوناگونی از جمله مسئله برنامه ریزی کارگاه- مسئله رنگ آمیزی گراف- مسئله کوادراتیک ومسئله مسیریابی وسیله نقلیه به کار رفته است.
در این تحقیق به بیان روش بهینه یابی توسط کلونی مورچگان میپردازیم .ودر ابتدا به ذکر مقدمات و فلسفه به وجود آمدن این روش پرداخته و سپس حالت عمومی آن در حل مسئله TSPبه عنوان عمومی ترین مساله ترکیبی ذکر می شود .
))بهینه یابی توسط کلونی مورچه((
Ant colony optimization(ACO)
مسایل بهینه سازی ترکیبی:
گونه ای از مسایل بهینه سازی هستند که در آن تعداد جواب های موجه تشکیل یک مجموعه متناهی می دهند وهدف بدست آوردن بهترین جواب در مساله است.
پیچیدگی زمانی یک الگوریتم:
هر الگوریتم از یک سری عملیات مقدماتی از جمله ضرب- تقسیم-تخصیص و... تشکیل میشود .پیچیدگی یک الگوریتم به صورت یک چند جمله ای تعریف میشود.با توجه به زمان انجام هر عمل مقدماتی پیچیدگی زمانی الگوریتم در بدترین حالت بدست آمده وملاک قرار می گیرد[ 3]
مسایل P و NP
مسایلی که میتوانند به وسیله الگوریتمی که پیچیدگی زمانی بدترین حالت آن چند جمله ای است،حل شوند را مسایل P
( (polynomialمی نامندو نیز مسایلی وجود دارند که با احتمال بالایی نمی توان الگوریتمی با پیچیدگی زمانی چند جمله ای در بدترین حالت برای آنها بدست آورد،این مسایل را NP(Nodetermiutictic polynomial)می گویند.
با وجود مسایل NP،ضرورت وجود ،روش های ابتکاری و فرا ابتکاری برای حل مسایل نمایان می شود. این روشها را می توان از
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 45
مقدمه
رمزنگاری علم کدها و رمزهاست. یک هنر قدیمی استو برای قرنها بمنظورمحافظت از پیغامهایی که بین فرماندهان؛جاسوسان، عشاق و دیگران رد وبدل می شده،استفاده شده است تا پیغامهای آنها محرمانه بماند. به عبارت دیگر می توان گفت و رمزنگاری از دیر باز به عنوان یک ضرورت برای حفاظت از اطلاعات خصوصی در مقابل دسترسی های غیر مجاز در تجارت و سیاست و مسایل نظامی وجود داشته است. به طور مثال تلاش برای ارسال یک پیام سری بین دو هم پیمان به گونه ای که حتی اگر توسط دشمن دریافت شود قابل درک نباشد ، در رم نیز دیذه شده است. هنگامی که با امنیت دیتا سرو کار داریم ، نیاز به اثبات هویت فرستنده و گیرنده پیغام داریم و در ضمن باید از عدم تغییر محتوای پیغام مطمئن شویم. این سه موضوع یعنی محرمانگی ، تصدیق هویت و جامعیت در قلب امنیت ارتباطات دیتای مردن قرار دارندو می توانند از رمز نگاری استفاده کنند.
اغلب این مساله باید تضمین شود که یک پیغام فقط میتواند توسط کسانی خوانده شودکه پیغام برای آنها ارسال شده است و دیگران ابن اجازه را ندارند. روشی که تامین کننده این مساله باشد"رمزنگاری" نام دارد. رمز نگاری هنر نوشتن بصورت رمز است بطوریکه هیچکس بغیر از دریافت کننده مورد نظر نتواند محتوای پیغام را بخواند.
رمزنگاری مخفف ها و اصطلاحات مخصوص به خود را دارد. برای درک عمیق تر بهمقداری از دانش ریاضیات نیاز است. برای محافظت از دیتای اصلی ( که بعنوان plaintext شناخته می شود)،آنرا با استفاده از یک کلید ( رشته ای محدود از بیتها )بصورت رمز در می آوریم تا کسی که دیتای حاصله را می خواند قادر به در ک آن نباشد.
دیتای رمز شده ( که بعنوان ciphertext شناخته می شود) بصورت یک سری بی معنی از بیتها بدون داشتن رابطه مشخصی با دیتای اصلی بنظر می رسد. برای حصول متن اولیه دریافت کننده آنرا رمز گشایی می کند. یک شخص ثالث (مثلا یک هکر) می تواند برای اینکه بدون دانستن کلید به دیتای اصلی دست یابد،کشف رمز نوشته(cryptanalysis)کند. بخاطر داشتن وجود این شخص ثالث بسیار مهم است. رمز نگاری دو جزء اصلی دارد، یک الگوریتم یک مبدل یا فرمول ریاضی است. تعداد کمی الگوریتم قدرتمن وجود دارد که بیشتر آنها بعنوان استانداردها یا مقالات ریاضی منتشر شده اند. کلید یک رشته از ارقام دودویی(صفر و یک )است که بخودی خود بی معنی است.
دیتای اویله اغلب قبل از رمز شدن بازچینی می شود، این عمل عموما بعنوان scrambling شناخته می شود. بصورت مشخص تر ، hash function ها بلوکی از دیتا را که ( که می تواند هر اندازه ای داشته باشد) به طول از پیش مشخص شده کاهش می دهد. البته دیتای اولیه نمی تواند از hashed value بازسازی شود. hash function ها اغلب بعنوان بخشی از یک سیستم تایید هویت مورد نیاز هستند؛ خلاصه ای از پیغام (شامل مهم ترین قسمتها مانند شماره پیام ، تاریخ و ساعت، و نواحی مهم دیتا ) قبل از رمز نگاریخود پیام ،ساخته و hash می شود. یک چک تایید پیام (Message Authentication Check) یاMAC یک الگوریتم ثابت با تولید یک امضاء بر روی پیام با استفاده از یک کلید است. هدف آن نشان دادن این مطلب است که پیام بین ارسال و دریافت تغییر نکرده است . هنگامی که رمز نگاری توسط کلید عمومی برای تایید هویت فرستنده پیام استفاده می شود، منجر به ایجاد امضای دیچتال(digital signature) می شود. طراحی الگوریتمهای رمزنگاری مقوله ای برای متخصصان ریاضی است. طراحان سیستمهایی که در آنها از رمز نگاری استفاده می شود، باید از نقاط قوت و ضعف الگوریتمهای موجود مطلع باشندو برای تعییین الگوریتم مناسب قدرت تصمیم گیری داشته باشند. با وجود کثرت تعداد الگوریتمهای موجود، الگوریتمهای کمی هنوز با گذشت زمان ارزش خود را حفظ کرده اند. بنابراین تعداد الگوریتمهای استفاده شده در سیستمهای کامپیوتری عملی و در سیستمهای بر پایه کارت هوشمند بسیار کم است. از آنجا که بحث و بررسی در خصوص امضای دیجیتال بدون نگاهی هر چند کوتاه بر رمز نگاری و سیستم ها و الگوریتمها ی مختلف مرتبط با آن غیر ممکن به نظر می رسد.
تاریخچه رمزنگاری و امضای دیجیتال
رمزنگاری ، علم رمزخارج کردن اطلاعات به سالهای 1900 پیش از میلاد بر می گردد؛زمانیکه یکی از کاتبین در مصر با اقتباس از علم تصاویر و مفاهیم آنها در آن دوره توانست پیامهای ارتباطی خود را ایجاد کند. افراد قابل ذکر بسیاری هستند که می توان در تحول علم رمزنگاری از آنها نام برد.برای مثال Julius Caesar (100-44 پیش از میلاد) از یک چایگزینی ساده در حروف الفبا استفاده کرد( تنها حرو ف را تعداد ثابتی جایجا می کرد) و در ارتباطات دولتی و نظامی برای انتقال پیام های محرمانه به ژنرال های خود از این سیستم ابداعی استفاده می کرد.
بعدها Francis Bacon در 1623 روش رمز کردنی را که امروزه نام خود وی بر روی آن است را مورد بحث و بررسی قرار داد. یک روش کد کردن 2 حرفی که امروزه تحت عنوان رمزنگاری باینری5 بیتی شناخته می شود. بعدها خود وی این روش را به عنوان یک وسیله استگانوگرافی توسعه داد.
Thomas Jeffersin در دهه ی 1790 روش رمز کردن چرخشی ای را ارائه داد که در جنگ جهانی دوتوسط ارتش آمریکا مورد استفاده قرار می گرفت. در اواخر دهه 1920 واوایل دهه 1930، FBI گروهی را تشکیل داد تا به بررسی استفاده از رمزنگاری توسط مجرمین بپردازند. در دهه 1970 دکتر Horst Feistel روش رمزنگاری Feistel را ارائه داد که به عنوان مقدمه ای بر DES3 امروزی شناخته می شود. در سپتامبر 1977 Riverst Shamir و Adleman رمزنگاری جهانی RSA خود را معرفی کردند که قابل اعمال بر رمزنگاری کلید عمومی و امضای دیجیتال می باشد. در سال 1990 ابداعی که توسط Xuejia Lai و James Massey انجام شد، یک رمزنگاری128 بیتی خیلی قویتر را جایگزین استاندارد DES قدیمی کرد. در رو یارویی با افزایش رمزنگاری ، مجددا FBI تلاش خود برای دسترسی به پیا مهای ساکنین آمریکا را آغاز کرد. در پاسخ Phil Zimmerman اولین نسخه ازPGP را در سال 1991 به عنوان یک محصول رایگان ارائه که از الگوریتم IDEA استفاده می کند.PGP ، این برنامه رایگان که
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 20
الگوریتم
هر برنامه، می بایست دارای یک طرح و یا الگو بوده تا برنامه نویس بر اساس آن عملیات خود را دنبال نماید.از دیدگاه برنامه نویسان ، هر برنامه نیازمند یک الگوریتم است . بعبارت ساده ، الگوریتم ، بیانه ای روشمند بمنظور حل یک مسئله بخصوص است . از منظر برنامه نویسان ،الگوریتم بمنزله یک طرح کلی و یا مجموعه دستورالعمل هائی است که با دنبال نمودن آنان ، برنامه ای تولید می گردد.
الگوریتم های میکرو در مقابل ماکرو
الگوریتم ها دارای ویژگی های متفاوتی می باشند . ما می توانیم در رابطه با الگوریتم استفاده شده به منظور نوشتن یک برنامه مشخص صحبت نمائیم . از این زاویه ، ما صرفا" در رابطه با الگوریتم در سطح ماکرو(macro level) ، صحبت نموده ایم . در چنین مواردی ، الگوریتم ارائه شده ، سعی در بدست آوردن جنبه های عمومی برنامه از طریق یک مرور کلی به برنامه در مقابل درگیر شدن در جزئیات را دارد.ما می توانیم در رابطه با الگوریتم ها ، از سطح "میکرو" صحبت نمائیم . از این زاویه ، به سطوح پایین تر رفته و به عوامل اساسی ونگهدارنده ای که یک جنبه خاص از برنامه را با یکدیگر مرتبط می نماید، صحبت کرد. مثلا" در صورتیکه شما دارای داده هائی هستید که می بایست قبل از استفاده مرتب گردند ،الگوریتم های مرتب سازی متعددی در این زمینه وجود داشته و می توان یکی از آنها را بمنظور تامین اهداف مورد نظر خود انتخاب نمود. انتخاب یک الگوریتم مرتب سازی ، صرفا" باعث حل شدن یکی از جنبه های متفاوت برنامه می گردد . پس از مرتب سازی داده ها ،می بایست از یک الگوریتم میکرو دیگر بمنظور نمایش داده ها ی مرتب شده استفاده گردد .
همانگونه که احتمالا" حدس زده اید ، ما می توانیم تمام الگوریتم های میکرو را بمنظور ایجاد یک الگوریتم ماکرو ، جمع آوری نمائیم . اگر ما با الگوریتم های میکرو ، آغاز نمائیم ، و حرکت خود را بسمت نمایش ماکروی یک برنامه ، پیش ببریم ، کاری را انجام داده ایم که موسوم به طراحی " پایین به بالا" (buttom-up) ، است . اگر ما فعالیت خود را با یک الگوریتم ماکرو آعاز و حرکت خود را بسمت پائین و الگوریتم های میکرو ، ادامه دهیم ، طراحی از نوع " بالا به پایین " (top-down) را انجام داده ایم .
شاید این سوال مطرح گردد که کدام روش بهتر است ؟ اگر شما تمام مقالاتی را که تاکنون در این زمینه نوشته شده اند را دنبال نمائید ، هرگز به یک نتیجه قابل قبول دست نخواهید یافت . هر رویکرد، دارای نکات مثبت و منفی مربوط به خود است . صرفنظر از رویکرد طراحی استفاده شده ، می بایست دارای الگوئی (طرحی) مناسب برای برنامه باشیم .حداقل، نیازمند یک اعلامیه از مسئله برنامه نویسی و یک طرح ( الگو) برای برخورد با مسئله ، خواهیم بود . پس از شناخت مسئله ، می توان نحوه حل مسئله را ترسیم کرد. شناخت عمیق و مناسب نسبت به مسئله ای که قصد حل آن را داریم ، شرط اساسی و ضروری برای طراحی یک برنامه است .با توجه به اینکه این اعتقاد وجود دارد که شناخت جامع و کلی از مسئله ای که حل آن را داریم ، بخشی ضروری در اولین مرحله برنامه نویسی است ، ما در ادامه از رویکرد "بالا - پایین "، تبعیـت می نمائیم . فراموش نکنیم که رویکرد فوق ، امکان مشاهده مجازی از هر مسئله برنامه نویسی را فراهم خواهد نمود.
مراحل پنج گانه
هر برنامه را صرفنظر از میزان پیچیدگی آن ، می توان به پنج مرحله اساسی تجزیه کرد :
مقدار دهی اولیه
ورودی
پردازش
خروجی
پاکسازی
در ادامه به بررسی هریک از مراحل فوق ، خواهیم پرداخت .
مرحله مقداردهی اولیه
مرحله مقداردهی اولیه ، اولین مرحله ای است که می بایست در زمان طراحی یک برنامه در رابطه با آن فکر کرد . مرحله فوق ، شامل تمامی عملیات مورد نیازی است که برنامه می بایست قبل ازبرقراری ارتباط با کاربر ، انجام دهد . در ابتدا ممکن است این موضوع که عملیاتی را قبل از برقراری ارتباط با کاربر می بایست انجام داد ، تا اندازه ای عجیب بنظر رسد ولی احتمالا" برنامه های زیادی را مشاهده نموده اید که در این راستا عملیات مشابهی را انجام می دهند. مثلا" ، در زمان استفاده از برنامه هائی نظیر Word ، Excel و یا برنامه های مشابه دیگر ، با چنین مواردی برخورد نموده ایم . مثلا" با انتخاب گزینه منو File ، می توان لیستی از فایل هائی را که با آنها کار کرده ایم در بخش انتهائی منوفوق ، مشاهده کرد. ( مشاهده آخرین فایل های استفاده شده در یک برنامه خاص ، با استفاده از جادو! میسر نشده است ) . برنامه مورد نظر شاید ، لیست فایل های اخیر را از دیسک خوانده و آنها را به لیست مربوطه در منوی File ، اضافه کرده باشد . با توجه به اینکه لیست فایل های فوق ، می بایست قبل از اینکه برنامه هر چیز دیگر را برای کاربر نمایش دهد ، خوانده و نمایش داده شوند ، می توان انجام عملیات فوق را نمونه ای از مرحله مقداردهی اولیه، در نظر گرفت.یکی دیگر از عملیات متداول که به این مرحله مرتبط می باشد ، خواندن فایل های Setup است . چنین فایل هائی ممکن است حاوی اطلاعاتی در رابطه با نام مسیرهائی باشند که بانک ها ی اطلاعاتی خاصی و یا فایل های ذخیره شده دیگری را بر روی دیسک را مشخص می نمایند . با توجه به نوع برنامه ای که اجراء می گردد ، فایل های Setup می توانند شامل اطلاعاتی در رابطه با فونت های نمایش ، نام و محل چاپگر ، رنگ های زمینه و رویه ، وضوح تصویر صفحه نمایشگر و اطلاعات مشابهی دیگر باشند . سایر برنامه ها ممکن است مستلزم خواندن اطلاعاتی در رابطه با اتصالات شبکه ، مجوزهای امنیتی و دستیابی به اینترنت ، رمزهای عبور و سایر اطلاعات حساس دیگر باشند . در چنین مواردی فایل های Setup دارای نقشی مهم خواهند بود.