رمزنگاری کلاسیک

در رمزنگاری، رمزنگاری کلاسیک نوعی رمزنگاری است که در گذشته مورد استفاده قرار می‌گرفت، اما اکنون در بیشتر مواقع از آن استفاده غلط می‌شود. برخلاف الگوریتم‌های رمزنگاری مدرن، اکثر رمزگذارهای کلاسیک می‌توانند دستی محاسبه و حل شوند. با این حال، آنها معمولاً بسیار ساده هستند که با تکنولوژی‌های جدید شکسته می‌شوند. این اصطلاح شامل سیستمهای ساده ای است که از زمان یونان و روم به کار رفته‌است و در رمزهای دقیق رنسانس، رمزنگاری جنگ جهانی دوم مانند دستگاه انیگما و فراتر از آن استفاده شده‌اند.

در مقابل آن، رمزنگاری قوی مدرن به الگوریتم‌ها و کامپیوترهای جدیدی که از سال ۱۹۷۰ توسعه یافته‌است متکی است.

انواع رمزنگاری‌های کلاسیک 
رمزهای کلاسیک اغلب به رمزهای انتقالی (جابه‌جا شده) و رمزهای جایگزینی (جایگزین شده) تقسیم می‌شوند.

رمزگذاریهای جایگزینی 
در رمزنگاری جایگزین، حروف (یا گروهی از حروف) بطور اصولی در سراسر پیام با حروفی دیگر (یا گروه‌هایی از حروف) جایگزین می‌شوند.

یکی از شناخته شده‌ترین مثال‌ها برای رمز جایگزینی، رمز سزار است. برای رمزگذاری یک پیام با رمز سزار، هر حرف از متن با حرف سوم بعد از آن در الفبا جایگزین می‌شود. از این رو، A با B , D با C , E با F و… جایگزین می‌شود. در نهایت، نهایت Z,Y,X به ترتیب با C,B,Aجایگزین می‌شوند؛ بنابراین، برای مثال، "WIKIPEDIA" به شکل "ZLNLSHGLD" رمزگذاری می‌شود. سزار هر حرف را با ۳ حرف بعدی خود جایگزین کرد، اما هر عدد به همان صورت نمایش می‌یافت.

یک روش دیگر رمزگذاری جایگزینی مبتنی بر یک کلمه کلیدی است. تمام فواصل و حروف تکراری از یک کلمه یا عبارت حذف می‌شوند، چیزی که رمزگذار بعنوان شروع رمز الفبایی از آن استفاده می‌کند. پایان الفبای رمزنگاری بقیه الفبای به ترتیب بدون تکرار حروف در کلمه کلیدی می‌آیند. برای مثال، اگر کلمه کلیدی CIPHER باشد، الفبای رمزگذاری به این شکل خواهد بود:

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

یکی دیگر از مثال‌های رمزنگاری جایگزینی چند الفبایی که رمزگشایی آن بسیار دشوارتر است، مربع ویژنر، یک روش رمزگذاری نوآورانه است. برای استفاده از مربع ویژنر، ۲۶ الفبای رمزنگاری مختلف وجود دارد که برای رمزگذاری متن استفاده می‌شود. در این حالت هر الفبای رمزنگاری به نوعی تعویض حروف اصلی با استفاده از همان جایگزینی سزار است. در واقع مربع ویژنر به این صورت است:
  ABCDEFGHIJKLMNOPQRSTU VWXYZ
  BCDEFGHIJKLMNOPQRSTUV WXYZA
  CDEFGHIJKLMNOPQRSTUVW XYZAB
  DEFGHIJKLMNOPQRSTUVWX YZABC
  EFGHIJKLMNOPQRSTUVWXY ZABCD
  FGHIJKLMNOPQRSTUVWXYZ ABCDE
  GHIJKLMNOPQRSTUVWXYZA BCDEF
  HIJKLMNOPQRSTUVWXYZAB CDEFG
  IJKLMNOPQRSTUVWXYZABC DEFGH
  JKLMNOPQRSTUVWXYZABCD EFGHI
  KLMNOPQRSTUVWXYZABCDE FGHIJ
  LMNOPQRSTUVWXYZABCDEF GHIJK
  MNOPQRSTUVWXYZABCDEFG HIJKL
  NOPQRSTUVWXYZABCDEFGH IJKLM
  OPQRSTUVWXYZABCDEFGHI JKLMN
  PQRSTUVWXYZABCDEFGHIJ KLMNO
  QRSTUVWXYZABCDEFGHIJK LMNOP
  RSTUVWXYZABCDEFGHIJKL MNOPQ
  STUVWXYZABCDEFGHIJKLM NOPQR
  TUVWXYZABCDEFGHIJKLMN OPQRS
  UVWXYZABCDEFGHIJKLMNO PQRST
  VWXYZABCDEFGHIJKLMNOP QRSTU
  WXYZABCDEFGHIJKLMNOPQ RSTUV
  XYZABCDEFGHIJKLMNOPQR STUVW
  YZABCDEFGHIJKLMNOPQRS TUVWX
  ZABCDEFGHIJKLMNOPQRST UVWXY
برای استفاده از مربع ویژنر برای رمزگذاری یک پیام، ابتدا هر کلمهٔ کلیدی را که می‌خواهید استفاده کنید،انتخاب می‌کنید و سپس آن را آنقدر تکرار می‌کنید تا طولش به طول پیغامی باشد که می‌خواهید رمزگذاری کنید، برسد. اینطور بگوییم که ما از LEMON به عنوان کلید واژه استفاده می‌کنیم. هر حرف از کلمه کلیدی تکرار شده به شما می‌گوید که از چه رمز (کد) برای رمزگذاری هر حرف استفاده کنید. الفبای رمزگذاری شده در ردیف دوم از B برای A و C برای B و… استفاده می‌کند. این الفبای رمزگذاری شده "B" باشد. هر الفبای رمزگذاری با اولین حرفی که در آن موجود است نامگذاری شده‌است. به عنوان مثال، اگر شما یک کلمه کلیدی LEMON را دارید و پیامی که می‌خواهید رمزگذاری کنید ATTACKATDAWN است شما باید اینگونه عمل کنید:

برخی از رمزگذاری‌های جایگزینی از اعداد به جای حروف استفاده می‌شود. نمونه ای از این رمزگذاری عالی است که در آن از اعداد برای جایگزینی حروف استفاده می‌شود. رمزگذاری جایگزینی عددی دیگری نیز وجود دارد که شامل چهار عدد مختلف، دو عدد انتخابی برای یک حرف وجود دارد که بر اساس یک کلمه کلیدی است.

به جای اعداد، از نمادها نیز می‌توان برای جایگزینی حروف یا هجا استفاده کرد. یک نمونه از این الفبای زودیاک است، که در آن از نمادهای زودیاک برای نشان دادن حروف مختلف استفاده شده‌است. به عنوان مثال، نمادهای خورشید برای A، مشتری برای B ایستاد، و کیوان برای C استفاده می‌شود. همچنین می‌توان از نقاط، خطوط یا خط تیره‌ها هم استفاده کرد، یکی از نمونه‌ها کد مورس است که در واقع نمی‌توان آن را رمزنگاری به حساب آورد، اما از نقاط و خطهای تیره به عنوان حروف استفاده می‌شود. رمزنگاری pigpen از یک سیستم شبکه ای یا خطوط و نقاط برای نمادگذاری حروف استفاده می‌شود. روش‌های مختلف دیگری نیز وجود دارد که شامل جایگزین کردن حروف الفبا با نمادها یا نقاط و خط تیره است.

رمزگذاری انتقالی (جابه جایی) 
در رمزنگاری انتقالی، حروف بدون تغییر باقی می‌مانند اما ترتیب آنها در داخل پیام مطابق با یک روش مشخص بهم می‌خورد. بسیاری از رمزگذاری‌های انتقالی براساس یک طرح هندسی انجام می‌شوند. یک رمزگذاری ساده (و البته بسیار آسان برای شکستن) نوشتن هر کلمه بصورت برعکس است. به عنوان مثال، "Hello my name is Alice "به صورت "olleH ym eman si ecilA" خواهد بود. scytale (اسکای تیل) یک ابزاری است که در روشهای جابه جایی به ما کمک می‌کند.

در رمزنگاری ستونی، پیام اصلی در یک مستطیل از چپ به راست و از بالا به پایین چیده شده‌است. در مرحله بعد، یک کلید انتخاب می‌شود و برای تعیین عدد به هر ستون در مستطیل برای تعیین ترتیب تنظیم مجدد از آن استفاده می‌شود. عدد متناظر با حروف موجود در کلید با توجه به جای آنها در الفبا مشخص می‌شوند، یعنی A برابر با ۱، Bبرابر۲، C برابر ۳ است و غیره. به عنوان مثال، اگر کلمه کلیدی CAT باشد و پیام SKY IS BLUE است، به این ترتیب می‌توانید پیام خود را ترتیب دهید:
  C A T
  ۲۰ ۱ ۳
  T H E
  S K Y
  I S B
  L U E

ابتدا باید حروف را به ترتیب عددیشان قرار دهید و به این شکل جابه جایی در پیام صورت می‌گیرد. حال ستون زیر A را می‌گذارید، سپس ستون زیرمجموعهٔ C را قرار می‌دهید و سپس ستون زیرمجموعهٔ T قرار می‌دهید، در نتیجه پیام شما "The sky is blue" اینگونه می‌شود: HKSUTSILEYBE

در روش رمزنگاری جابجایی چینی، حروف پیام از راست به چپ و ستون‌های از بالا به پایین شده نوشته می‌شوند تا متون را به هم ریخته کنند. سپس، با شروع از ردیف اول، حروف گرفته می‌شوند تا یک متن رمزنگاری شدهٔ جدید ی بدست آید. به عنوان مثال، اگر پمتن نیاز به رمزگذاری DOG RAN FAR باشد، رمزنگاری چینی شبیه به این شکل است:
  R R G T
  A A O H
  F N D E
متن رمزگذاری این چنین است: RRGT AAOH FNDE

بسیاری از رمزگذاری‌های جابه جایی شبیه به این دو مثال هستند که معمولاً شامل بازچینی مجدد حروف در سطرها یا ستونها می‌باشند که در مرحلهٔ بعدی حروف را با استفاده از یک روش سیستماتیک (منظم) جابجا می‌کنند. . نمونه‌های دیگر برای رمزگذاری جابه جایی عبارتند از: Vertical Parallel(عمودی، موازی) و Double Transposififor Cipher(جایگزینی دوگانه).

الگوریتم‌های پیچیده‌تر با ترکیب کردن جایگزینی و جابجایی در رمزنگاری محصول تشکیل شوند. رمزگذارهای بلوک مدرن مانند DES طی چند مرحله تعویض و انتقال انجام می‌شوند.

کشف نوشتهٔ رمزی در رمزنگاری کلاسیک 
شکستن رمزهای کلاسیک معمولاً بسیار آسان است. بسیاری از رمزنگاری‌های کلاسیک می‌توانند شکسته شوند حتی اگر مهاجم فقط متن کافی را بداند و از این رو مستعد حمله فقط به متن رمز شده باشد. برخی از رمزنگاری‌های کلاسیک (به عنوان مثال رمزهای سزار) از فضای کلیدی کوچکی برخوردار هستند. این رمزها را می‌توان با یک حمله نیروی بی رحمانه brute force attackشکست، یعنی به سادگی با امتحان کردن تمام کلیدها می‌توان نوشتهٔ رمز شده را بازیابی کرد. رمزگذاری‌های جایگزینی (Substitution ciphers)می‌توانند فضای کلیدی بزرگی داشته باشند، اما اغلب مستعد تجزیه و تحلیل فرکانس (frequency analysis)هستند، زیرا به عنوان مثال حروف مکرر در زبان ساده متن با حروف مکرر در رمزها مطابقت دارند. رمزگذارهای چندرسانه ای مانند رمزنگاری ویژنرVigenère cipher با استفاده از تعویض‌های متعدد مانع از تجزیه و تحلیل آنالیز متناوب می‌شوند. با این حال، تکنیک‌های پیشرفته تر مانند آزمایش Kasiski هنوز هم می‌تواند برای شکستن این رمزها استفاده شوند.

از طرف دیگر، رمزهای مدرن برای مقاومت در برابر حملات بسیار قوی تری نسبت به حملات ciphertext-only طراحی شده‌اند. یک رمز مدرن خوب باید در برابر طیف گسترده‌ای از حملات احتمالی از جمله حملات متن آشکار(known-plaintext attacks) و حملات انتخاب-متن(chosen-plaintext attacks) و همچنین حملات انتخاب-متن رمزی(chosen-ciphertext attacks) در امان باشد. برای این رمزها، یک مهاجم نباید بتواند کلید را پیدا کند حتی اگر او مقدارزیادی از پلین تکست‌ها و سایفر تکست‌های مربوطه را بشناسد و حتی اگر خودش بتواند پلین تکست‌ها و سایفر تکست هارا انتخاب کند. رمزگذاری‌های کلاسیک این معیارهای بسیار قوی را برآورده نمی‌کنند و از این رو دیگر برای بسیاری از برنامه‌ها مناسب نیستند.

برخی از تکنیک‌های رمزگذاری کلاسیک می‌توانند برای تقویت رمزگذاری‌های مدرن استفاده شوند. به عنوان مثال، مرحله MixColumns در AES رمزگذاری هیل است.

جستارهای وابسته 
 تاریخچه رمزنگاری

منابع 

 دست رمزهای رمزهای مداد و کاغذ در Ciphermachines و رمز
 گروه علوم کامپیوتر کامپیوتر ترینیتی: رمزنگاری تاریخی اطلاعات در مورد انواع مختلفی از الگوریتم‌های رمزگذاری از جمله رمزگذاری‌های جایگزینی و جابجایی
 سینگ، سیمون کتاب کد: علم رازداری از مصر باستان تا رمزنگاری کوانتومی. نیویورک: لنگر، ۲۰۰۰.
 D'Agapeyeff، الکساندر. کدها و رمزها آکسفورد UP، ۱۹۳۹.
 لافین، جان. رمزها و رمزها: نوشتن نامه پنهانی از قرون. آبلارد-شومان، ۱۹۶۴.
 Wrixon , Fred B. Codes، رمزها و زبانهای مخفی. نیویورک: کتاب Bonanza، ۱۹۸۹.
رمزهای کلاسیک