شنبه 2 بهمن 1395 | Saturday 21 st of January 2017 صفحه اصلی گروه الکترونیکی کامپیوتر
2-13 ملزومات طرح مؤثر و کارای نرم افزاری الگوریتم رمز

▪در الگوریتم از پرش های شرطی در حلقه درونی الگوریتم باید اجتناب شود . هر تغییر غیر قابل پیش بینی در جریان کنترل الگوریتم به طور طبیعی موجب اختلال در عملکرد مقاوم پردازش و در نتیجه افزایش تعداد سیکل های ساعت مورد نیاز ، خواهد شد . بنابراین به طور مشخص هر عملگر و یا دستور همانند if ، thenو یا elseدر زبان Cو یا اسمبلی موجب پرش در جریان اجرا خواهد شد . پرش ها همچنین اسیب پذیری رمز را در برابر حمله های زمانی که در اورده شده ، افزایش می دهد .

▪از عملگرهائی که طبیعتاً ساختارهای سنگینی دارند استفاده نشود . در این دسته بندی می توان عملگرهای ضرب و تقسیم و سایر عملگرهائی را که بر روی پردازنده ها به سختی اجرا می شوند، قرار دارند . به طور مثال یک عملگر چرخش/انتقال متغیر ، ( که مقدار چرخش و یا انتقال در مرحله اول مشخص نمی باشد ) بر روی پردازنده پنتیوم نیاز به ۴ سیکل ساعت برای اجرا خواهد داشت و در عین حال با هیچ عملگر دیگری نمی تواند به طور همزمان اجرا شود بنابراین به صورت چند زیر مجموعه از عملگرهای ساده انجام می شود و زمان مورد نیاز اجرای ان بیشتر از یک عملگر ساده تنها خواهد بود .

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

▪اندازه جداول بکار رفته تا حد ممکن باید کوچک باشد . هرچند که جداول بزرگتر از نظر رمزنگاری مناسبتر می باشند اما انواع کوچکتر انها برای اجرای سریعتر نرم افزاری مطلوب تر هستند . با توجه به پردازنده های کنونی جداول باید به گونه ای در نظر گرفته شوند که بیش از چهار کیلو بایت برای ذخیره سازی نیاز نداشته باشند .

در طرح عملگرهای بکار رفته باید تا حد ممکن از الگو های موازی بسیار استفاده شود . ایده عمومی بکارگیری عملگرهای مستقل از یکدیگر و اجرای همزمان و موازی با هم این عملگرها می باشد . این الگو می تواند تا حد بسیار زیادی در افزایش سرعت اجرا مؤثر باشد . نکاتی که بیان شد بسیار ساده می باشند اما با بهره گیری از انها می توان تا حد بسیار زیادی پیاده سازی مؤثر و سرعت اجرای بالای نرم افزاری را برای الگوریتم ایجاد نمود

Compatability by:
آخرین به روز رسانی سایت: سه شنبه, 22 اسفند 1391 - 00:26