در رمزنگاری، twofish یک نوع رمزنگاری کلید متقارن است؛ که از رمزنگاری بلوکی با اندازه بلوک ۱۲۸ بیت و اندازه کلید ۲۵۶ بیت استفاده می‌کند. آن یکی از پنج الگوریتم برتر مسابقه استاندارد رمزگذاری پیشرفته بود (Advanced Encryption Standard contest) اما به عنوان استاندارد پذیرفه نشد. Twofish از الگوریتم بادکنک‌ماهیان گرفته شده‌است.

ویژگی ممتاز twofish استفاده از پیش محاسبه کلید وابسته S-box و یک زمانبندی کلید پیچیده وابسته‌است. نیمی از یک کلید n بیتی به عنوان کلید رمزگذاری واقعی استفاده شده و نیمی دیگر از آن به عنوان اصلاح‌کننده الگوریتم رمزگذاری استفاده شده‌است (کلید وابسته S-box). Twofish برخی از عناصر دیگر طراحی‌ها را قرض گرفته‌است. برای مثال تبدیل شبه hadamard از خانواده SAFER از رمزها. Twofish از ساختار feistel به عنوان نمونه DES استفاده می‌کند.

در اکثر سطوح نرم‌افزاری Twofish کمی‌کند تر از استاندارد رمزنگاری پیشرفته (برگزیده مسابقات AES) برای کلیدهای ۱۲۸ بیتی عمل می‌کند. اما برای کلیدهای ۲۵۶ بیتی تا حدودی سریع تر است.[۱]

Twofish توسط بروس اشنایر، John Kelsey Doug Whiting, David Wagner, Chris Hall و Niels Ferguson طراحی شده‌است. تیم توسعه Twofish که مسئول انجام ورژن بعدی Twofish و داوطلب شرکت در مسابقه AES بودند شامل Stefan Lucks, Tadayoshi Kohno و Mike Stay بود.

الگوریتم Twofish ثبت اختراع نشده‌است و به عنوان منبع پیاده سازی در مالکیت عمومی قرار می‌گیرد. در نتیجه الگوریتم Twofish به صورت آزادانه در اختیار همه قرار دارد و هر کس می‌تواند بدون هیچ گونه محدودیت از آن استفاده کند. این الگوریتم یکی از معدود رمزنگاری‌های شامل استاندارد Open-PGP است(RFC4880). با این حال استفاده از توفیش به گستردگی استفاده از Blowfish نرسیده‌است با این که بادکنک‌ماهیان قدیمی تر است.

تحلیل رمز ویرایش

در سال ۱۹۹۹ Niels Ferguson یک حمله دیفرانسیلی غیر ممکن را منتشر کرد که شش مرحله از ۱۶ مرحله کلید ورژن ۲۵۶ بیتی را با استفاده از ۲۲۵۶ گام شکست.[۲]

از سال ۲۰۰۰ به بعد بهترین تحلیل رمز منتشر شده بر اساس رمز بلوک Twofish، تحلیل رمز کوتاه شده تفاضلی ورژن کامل ۱۶ مرحله‌ای است. مقاله ادعا می‌کند احتمال تفاضلی کوتاه شده ۲-۵۷٫۳ برای هر بلوک است و حدود ۲۵۱ متن آشکار انتخاب شده می‌گیرد تا جفت مناسبی برای تفاضلی کوتاه شده پیدا کند.[۳]

Bruce Schnier در سال ۲۰۰۵ اعلام کرد که این مقاله یک حمله تحلیل رمز کامل را ارائه نمی‌دهد به جز فقط برخی فرض‌های مشخصات تفاضلی. اما حتی از یک دیدگاه فرضیه‌ای، Twofish حتی از دور شکسته نمی‌شود.[۴]

CryptoCat ویرایش

کریپتو کت (CryptOCat) از همین روش برای ارسال داده‌های محرمانه و رمزنگاری شده استفاده می‌کند. این نرم افزار از ncat تشکیل شده است.

جستارهای وابسته ویرایش

منابع ویرایش

  • Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson (۱۹۹۸-۰۶-۱۵). "The Twofish Encryption Algorithm" (PDF/PostScript). Retrieved 2007-03-04. {{cite journal}}: Cite journal requires |journal= (help)نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  • Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson (۱۹۹۹-۰۳-۲۲). The Twofish Encryption Algorithm: A 128-Bit Block Cipher. New York City: John Wiley & Sons. ISBN 0-471-35381-7.{{cite book}}: نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)