توفیش

در رمزنگاری، 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 تشکیل شده است.

جستارهای وابسته 
 Threefish
 استاندارد رمزنگاری پیشرفته
 استاندارد رمزنگاری داده‌ها

منابع 
 
 
 

رمزنگاری قطعه‌ای
رمزنگاری‌های فیستل
سایفرهای رایگان