توکن امضا دیجیتال

الگوریتم های رمزنگاری

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

سیستم های کلید متقارن

تصديق هويت به معني است که از ادعاي شخص در مورد هويتش اطمينان حاصل شود. معمولاً تصديق هويت به يکي از چهاریک الگوریتم متقارن از یک کلید برای رمزنگاری و رمزگشایی استفاده می کند. بیشترین شکل استفاده از رمزنگاری که در کارت های هوشمند و البته در بیشتر سیستم های امنیت اطلاعات وجود دارد Data Encryption Algorithm یا DEA است که بیشتر به عنوان DES شناخته می شود. DES یک محصول دولت ایالات متحده است که امروزه به طور وسیعی به عنوان یک استاندارد بین المللی شناخته می شود. بلوک های 64 بیتی دیتا توسط یک کلید تنها که معمولاً 56 بیت طول دارد، رمزنگاری و رمزگشایی می شوند.
DES از نظر محاسباتی ساده است و به راحتی می تواند توسط پردازنده های کند (به خصوص آنهایی که در کارت های هوشمند وجود دارند) انجام گیرد.
این روش بستگی به مخفی بودن کلید دارد. بنابراین برای استفاده در دو موقعیت مناسب است: هنگامی که کلیدها می توانند به یک روش قابل اعتماد و امن توزیع و ذخیره شوند یا جایی که کلید بین دو سیستم مبادله می شوند که قبلاً هویت یکدیگر را تایید کرده اند. عمر کلید ها بیشتر از مدت تراکنش طول نمی کشد.
رمزنگاری DES عموماً برای حفاظت دیتا از شنود در طول انتقال استفاده می شود.
کلید های DES 40 بیتی امروزه در عرض چندین ساعت توسط کامیتر های معمولی شکسته می شوند و بنابراین نباید برای محافظت از اطلاعات مهم و با مدت طولانی اعتبار، استفاده شود. کلید 56 بیتی عموماً توسط سخت افزار یا شبکه های به خصوصی شکسته می شوند. رمزنگاری DES سه تایی عبارتست از کد کردن دیتای اصلی با استفاده از الگوریتم DES که در سه مرتبه انجام می گیرد. (دو مرتبه با استفاده از یک کلید به سمت جلو (رمزنگاری) و یک مرتبه به سمت عقب (رمزگشایی) با یک کلید دیگر).
این عمل تاثیر دو برابر کردن طول موثر کلید را دارد و یک عامل مهم در قدرت رمز کنندگی است. الگوریتم های استاندارد جدید تر مختلفی پیشنهاد شده اند. الگوریتم هایی مانند Blowfish و IDEA برای زمانی مورد استفاده قرار گرفته اند اما هیچ کدام پیاده سازی سخت افزاری نشدند بنابراین به عنوان رقیبی برای DES برای استفاده در کاربردهای میکرکنترلی مطرح نبوده اند. پروژه استاندارد رمزنگاری پیشرفته دولتی ایالات متحده (AES) الگوریتم Rijndael را برای جایگزینی DES به عنوان الگوریتم رمزنگاری اولیه انتخاب کرده است. الگوریتم Towfish مشخصاً برای پیاده سازی در پردازنده های توان پایین مثلا در کارت های هوشمند طراحی شد.
در 1998 وزارت دفاع ایالات متحده تصمیم گرفت که الگوریتم ها Skipjack و مبادله کلید را که درکارتهای Fortezza استفاده شده بود، از محرمانگی خارج سازد. یکی از دلایل این امر تشویق برای پیاده سازی بیشتر کارتهای هوشمند بر پایه این الگوریتم ها بود.
برای رمزنگاری جریانی (که رمزنگاری دیتا در حین ارسال صورت می گیرد به جای اینکه دیتای کد شده در یک فایل مجزا قرار گیرد) الگوریتم RC4 سرعت بالا و دامنه ای از طول کلید ها از 40 تا 256 بیت فراهم می کند. RC4 که متعلق به امنیت دیتای RSA است، به صورت عادی برای رمزنگاری ارتباطات دو طرفه امن در اینترنت استفاده می شود.

سیستم های کلید نامتقارن

يکپارچگي به معني اطمينان از دست‌ نخوردگي است: داده ذخيره يا ارسال شده, تغيير نکرده باشد. قطعاً اينسیستم های کلید نامتقارن از کلید مختلفی برای رمزنگاری و رمزگشایی استفاده می کنند. بسیاری از سیستمها اجازه می دهند که یک جزء (کلید عمومی ) منتشر شود در حالیکه دیگری (کلید اختصاصی ) توسط صاحبش حفظ شود. فرستند پیام، متن را با کلید عمومی گیرنده کد می کند و گیرنده آن را با کلید اختصاصی خودش رمزنگاری می کند. به عبارتی تنها با کلید اختصاصی گیرنده می توان متن کد شده را به متن اولیه صحیح تبدلیل کرد. یعنی حتی فرستنده نیز اگرچه از محتوای اصلی پیام مطلع است اما نمی تواند ازمتن کد شده به متن اصلی دست یابد، بنابراین پیام کد شده برای هر گیرنده ای به جز گیرنده مورد نظر فرستنده بی معنی خواهد بود. معمول ترین سیستم نامتقارن به عنوان RSA شناخته می شود (حروف اول پدید آورندگان آن یعنی Rivest، Shamir و Adlemen است). اگرچه چندین طرح دیگر وجود دارند. می توان ازیک سیستم نامتقارن برای نشان دادن اینکه فرستند پیام همان شخصی است که ادعا می کند استفاده کرد که این عمل اصطلاحا امضا نام دارد. RSA شامل دو تبدیل است که هر کدام احتیاج به توان رسانی ماجولار با توانهای خیلی طولانی دارد:
امضاء، متن اصلی را با استفاده از کلید اختصاصی رمز می کند. رمزگشایی عملیات مشابهی روی متن رمز شده اما با استفاده از کلید عمومی است. برای تایید امضا بررسی می کنیم که آیا این نتیجه با دیتای اولیه یکسان است؟ اگر اینگونه است، امضا توسط کلید اختصاصی متناظر رمز شده است.
به بیان ساده تر چنانچه متنی از شخصی برای دیگران منتشر شود، این متن شامل متن اصلی و همان متن اما رمز شده توسط کلید اختصاصی همان شخص است. حال اگر متن رمز شده توسط کلید عمومی آن شخص که شما از آن مطلعید رمزگشایی شود، مطابقت متن حاصل و متن اصلی نشان دهنده صحت فرد فرستنده آن است، به این ترتیب امضاء فرد تصدیق می شود. افرادی که از کلید اختصاصی این فرد اطلاع ندارند قادر به ایجاد متن رمز شده نیستند به طوری که با رمزگشایی توسط کلید عمومی این فرد به متن اولیه تبدیل شود. براساس سیستم RSA این فرمول است: X = Y k (mod r) که X متن رمز شده، Y متن اصلی، K کلید اختصاصی و r حاصلضرب دو عدد اولیه بزرگ است که با دقت انتخاب شده اند. این شکل محاسبات روی پردازنده های بایتی به خصوص روی 8 بیتی ها که در کارت های هوشمند استفاده می شود بسیار کند است. بنابراین، اگرچه RSA هم تصدیق هویت و هم رمزنگاری را ممکن می سازد، در اصل برای تایید هویت منبع پیام از این الگوریتم در کارت های هوشمند استفاده می شود و برای نشان دادن عدم تغییر پیام در طول ارسال و رمزنگاری کلید های آتی استفاده می شود.
سایر سیستم های کلید نامتقارن شامل سیستم های لگاریتم گسسته می شوند مانند Diffie-Hellman، ElGamal و سایر طرحهای چند جمله ای و منحنی های بیضوی. بسیاری از این طرح ها عملکردهای یک-طرفه ای دارند که اجازه تایید هویت را می دهند اما رمزنگاری ندارند. یک رقیب جدیدتر الگوریتم RPK است که از یک تولید کننده مرکب برای تنظیم ترکیبی از کلید ها با مشخصات مورد نیاز استفاده می کند. RPK یک پروسه دو مرحله ای است: بعد از فاز آماده سازی در رمزنگاری و رمزگشایی (برای یک طرح کلید عمومی) رشته هایی از دیتا به طور استثنایی کاراست و می تواند به راحتی در سخت افزارهای رایج پیاده سازی شود. بنابراین به خوبی با رمزنگاری و تصدیق هویت در ارتباطات سازگار است.طول های کلید ها برای این طرح های جایگزین بسایر کوتاهتر از کلید های مورد استفاده در RSA است که آنها برای استفاده در چیپ کارتها مناسب تر است. اما RSA محکی برای ارزیابی سایر الگوریتم ها باقی مانده است. حضور و بقای نزدیک به سه دهه از این الگوریتم، تضمینی در برابر ضعف های عمده به شمار می رود.

توکن K3