Substitution Cipher
១. ការណែនាំ
ពាក្យ substitution គឺ “ជាការជំនួស” ដែលមានន័យថាតួអក្សរមួយត្រូវបានជំនួសដោយតួអក្សរមួយផ្សេងទៀត។ ចំណែកឯក cipher គឺជា Algorithm សម្រាប់ធ្វើការ encrypt ឬ decrypt មកវិញ។
ដូចនេះ substitution cipher គឺជា algorithm encryption ដែលយកតួអក្សរណាមួយផ្សេង មកដាក់ជំនួសតួអក្សរដើម ដើម្បីកុំឲ្យមើលយល់ ។ ឧទាហរណ៍ a ត្រូវបានជំនួសដោយ x ។
substitution cipher ត្រូវបានប្រើប្រាស់ជាច្រើនពាន់ឆ្នាំមកហើយ មិនមែនទើបតែមានក្នុងសម័យកុំព្យូទ័រនេះនោះទេ។ វាខុសគ្នាពី Caesar cipher ដែល Caesar គឺគ្រាន់តែផ្លាស់ប្តូរតួអក្សរតែប៉ុណ្ណោះ (shifted) ដែលមានន័យថា ប្រសិនបើ A ត្រូវបានជំនួសដោយ B នោះ B និងត្រូវបានជំនួសបន្តដោយ C និងធ្វើរបៀបនេះបន្តបន្ទាប់ទៅ និងម្យ៉ាងទៀត Caesar គឺមានលក្ខណៈ fixed ជានិច្ច។
ឧទាហរណ៍
ខាងក្រោមនេះគឺជាឧទាហរណ៍នៃរបៀប encrypt និង decrypt នៅក្នុង Substitution cipher ហើយឃ្លាដែលយើងនឹងធ្វើការ encrypt នោះគឺ ‘defend the east wall of the castle’ ។
ជាទូទៅ Keys ដែលប្រើសម្រាប់ substitution cipher គឺមាន 26 តួ:
plain alphabet : abcdefghijklmnopqrstuvwxyz
cipher alphabet: phqgiumeaylnofdxjkrcvstzwb
ឧទាហរណ៍ខាងក្រោមគឺប្រើ keys ខាងលើៈ
plain text: defend the east wall of the castle
cipher text: giuifg cei iprc tpnn du cei qprcni
អក្សរ d ត្រូវបានជំនួសដោយ g និងត្រូវបានផ្លាស់ប្តូរបន្តបន្ទាប់ដូចដែលបានឃើញនៅលើ key របស់ cipher alphabet នៅខាងលើ។
ដើម្បីធ្វើការ decrypt មកវិញ គឺមិនមានអ្វីជាពិបាកនោះទេ ព្រោះយើងបានដឹងពី Key របស់វារួចទៅហើយ ដោយគ្រាន់តែធ្វើការផ្ទៀងផ្ទាត់នូវអក្សរដែលបានជំនួសជាមួយនឹងអក្សរដើមគឺជាការស្រេច។
២. Cryptanalysis (របៀបក្នុងការវិភាគ)
Substitution cipher អាចនឹងងាយបំបែកបាន បើទោះបីជាចំនួននៃ keys មានរហូតដល់ 2 ស្វ័យគុណ 88.4 ក៏ដោយ(ជាចំនួនដ៏ច្រើនមួយ) ក៏មាន text ភាគច្រើនមិនត្រូវបានប្រើប្រាស់ និងមួយចំនួនទៀតអាចនឹងងាយស្រួលក្នុងការទស្សន៍ទាយនូវ keys របស់វាផងដែរ។ មុនដំបូងគេត្រូវគិតពីតួអក្សរដែលនឹងត្រូវប្រើញឹកញាប់ជាងគេនៅក្នុង cipher text ដែលមានន័យថា តើតួអក្សរណាមួយដែលនឹងត្រូវលេចចេញមកញឹកញាប់ជាងគេ។ យើងអាចមើលតារាងនៃតួអក្សរដែលគេឃើញនៅក្នុង English text ញឹកញាប់បានៈ
អក្សរអង់គ្លេសដែលប្រើច្រើននៅក្នុង text គឺមានក្រាបសសរខ្ពស់ជាងគេ។
នេះជាការរៀបតាមលំដាប់ចាប់ពីច្រើនបំផុតដល់តិចបំផុត
គឺមានន័យថាអក្សរ e ត្រូវបានប្រើប្រាស់ច្រើនជាងគេ បើធៀបនឹងអក្សរដទៃផ្សេងទៀត ហើយត្រូវឃើញញឹកញាប់ស្ទើរតែ 13% ខណៈដែល z អាចមាននៅក្នុងពាក្យផ្សេងៗមិនដល់ 1% ផង។ cryptanalyst ត្រូវរកឲ្យឃើញនូវ keys ដែលគេយកមក encrypt message ដែលមានន័យថាស្វែងរកយើងត្រូវស្វែងរកតួអក្សរដែលត្រូវគ្នា (mapping for each character)។ ឧទាហរណ៍ នៅក្នុងរូបទីមួយ តួដំបូងគឺអក្សរ a បន្ទាប់មកត្រូវបាន enciphered ទៅជា e (រូបទី២) ដែលនេះគឺជាការ map ពីអក្សរមួយជាមួយអក្សរមួយផ្សេងទៀត។
សម្រាប់ពពួក text មានលក្ខណៈវែងអន្លាយ និងច្រើន (ខ្ទង់ពាន់អក្សរ) យើងអាចជំនួសតួអក្សរ ciphertext លើតួអក្សរណាមួលដែលគិតថាលេខមុខច្រើនជាងគេក្នុងmessage ជំនួសដោយអក្សរ e (ព្រោះវាត្រូវបានគេទាយថាអាចនឹងមានច្រើនជាងគេក្នុងពាក្យភាសាអង់គ្លេស -មើលតារាង) បន្ទាប់មកគឺតួអក្សរដែលឃើញច្រើនជាងគេទី២ គឺជំនួសដោយ t និងតួអក្សរផ្សេងទៀត ធ្វើដូចនេះបន្តបន្ទាប់ទៅតាមលំដាប់ពីច្រើនទៅតិច។ យើងនឹងទទួលបានលទ្ធផលដូចដែលយើងចង់បានជាលក្ខណៈ plain text (អក្សរមើលយល់ដោយមនុស្ស)។
សម្រាប់តួអក្សរតិច យើងត្រូវការជំនាញជាងនេះបន្តិច ព្រោះយើងត្រូវការទស្សន៍ទាយទៅលើពាក្យច្រើន។ ឧទាហរណ៍អក្សរដែលមានចំនួនពីរតួដូចខាងក្រោម