លោក Sergey Panasenko,
ប្រធានផ្នែកអភិវឌ្ឍន៍ កម្មវិធីក្រុមហ៊ុន "Ankad"
[អ៊ីមែលការពារ]
គំនិតជាមូលដ្ឋាន
ដំណើរការនៃការបំប្លែងទិន្នន័យបើកចំហទៅជាទិន្នន័យដែលបានអ៊ិនគ្រីប ហើយផ្ទុយទៅវិញជាធម្មតាត្រូវបានគេហៅថាការអ៊ិនគ្រីប ហើយធាតុផ្សំពីរនៃដំណើរការនេះត្រូវបានគេហៅថា ការអ៊ិនគ្រីប និងការឌិគ្រីបរៀងៗខ្លួន។ តាមគណិតវិទ្យា ការផ្លាស់ប្តូរនេះត្រូវបានតំណាង ភាពអាស្រ័យដូចខាងក្រោមពិពណ៌នាអំពីសកម្មភាពជាមួយនឹងព័ត៌មានដំបូង៖
C=Ek1(M)
M" = Dk2(C),
កន្លែងដែល M (សារ) - ព័ត៌មានបើកចំហ(នៅក្នុងអក្សរសិល្ប៍ស្តីពីសុវត្ថិភាពព័ត៌មាន វាត្រូវបានគេហៅថា " ប្រភព");
C (អក្សរសម្ងាត់) - អត្ថបទសម្ងាត់ (ឬគ្រីបគ្រីប) ដែលទទួលបានជាលទ្ធផលនៃការអ៊ិនគ្រីប។
អ៊ី (ការអ៊ិនគ្រីប) - មុខងារអ៊ិនគ្រីបដែលធ្វើការផ្លាស់ប្តូរគ្រីបគ្រីបនៅលើអត្ថបទប្រភព។
k1 (កូនសោ) - ប៉ារ៉ាម៉ែត្រនៃមុខងារ E ដែលហៅថាសោអ៊ិនគ្រីប។
M" - ព័ត៌មានដែលទទួលបានជាលទ្ធផលនៃការឌិគ្រីប;
ឃ (ការឌិគ្រីប) - មុខងារឌិគ្រីបដែលធ្វើការផ្លាស់ប្តូរគ្រីបគ្រីបបញ្ច្រាសនៅលើអក្សរសម្ងាត់;
k2 ជាសោដែលប្រើសម្រាប់ឌិគ្រីបព័ត៌មាន។
គំនិតនៃ "គន្លឹះ" នៅក្នុងស្តង់ដារ GOST 28147-89 (ក្បួនដោះស្រាយ ការអ៊ិនគ្រីបស៊ីមេទ្រី) ត្រូវបានកំណត់ដូចខាងក្រោម៖ "ស្ថានភាពសម្ងាត់ជាក់លាក់នៃប៉ារ៉ាម៉ែត្រមួយចំនួននៃក្បួនដោះស្រាយការផ្លាស់ប្តូរគ្រីបគ្រីប ដែលធានានូវការជ្រើសរើសការផ្លាស់ប្តូរមួយពីសំណុំដែលអាចធ្វើទៅបានសម្រាប់ នៃក្បួនដោះស្រាយនេះ។ការបំប្លែង។" និយាយម្យ៉ាងទៀត សោគឺជាធាតុតែមួយគត់ដែលអ្នកអាចផ្លាស់ប្តូរលទ្ធផលនៃក្បួនដោះស្រាយការអ៊ិនគ្រីប៖ អត្ថបទប្រភពដូចគ្នានៅពេលប្រើ។ គ្រាប់ចុចផ្សេងគ្នានឹងត្រូវបានអ៊ិនគ្រីបខុសគ្នា។
ដើម្បីឱ្យលទ្ធផលនៃការឌិគ្រីបត្រូវគ្នានឹងសារដើម (ឧ. សម្រាប់ M" = M) លក្ខខណ្ឌពីរត្រូវតែបំពេញក្នុងពេលដំណាលគ្នា។ ទីមួយ មុខងារឌិគ្រីប D ត្រូវតែផ្គូផ្គងនឹងមុខងារអ៊ិនគ្រីប E. ទីពីរ គ្រាប់ចុចឌិគ្រីប k2 ត្រូវតែផ្គូផ្គងការអ៊ិនគ្រីប កូនសោ k1 ។
ប្រសិនបើក្បួនដោះស្រាយការអ៊ិនគ្រីបដ៏រឹងមាំមួយត្រូវបានប្រើប្រាស់សម្រាប់ការអ៊ិនគ្រីប នោះក្នុងករណីដែលគ្មានកូនសោត្រឹមត្រូវ k2 វាមិនអាចទៅរួចទេក្នុងការទទួលបាន M" = M. ភាពខ្លាំងនៃការសរសេរកូដគឺជាលក្ខណៈសំខាន់នៃក្បួនដោះស្រាយការអ៊ិនគ្រីប ហើយជាចម្បងបង្ហាញពីកម្រិតនៃភាពស្មុគស្មាញនៃការទទួលបានដើម។ អត្ថបទពីអត្ថបទដែលបានអ៊ិនគ្រីបដោយគ្មានសោ k2 ។
ក្បួនដោះស្រាយការអ៊ិនគ្រីបអាចបែងចែកជាពីរប្រភេទ៖ ស៊ីមេទ្រី និង ការអ៊ិនគ្រីប asymmetric. សម្រាប់អតីត សមាមាត្រនៃការអ៊ិនគ្រីប និងការឌិគ្រីបសោត្រូវបានកំណត់ជា k1 = k2 = k (ឧ. មុខងារ E និង D ប្រើសោអ៊ិនគ្រីបដូចគ្នា)។ នៅក្នុងការអ៊ិនគ្រីប asymmetric key encryption k1 ត្រូវបានគណនាពី key k2 តាមរបៀបដែល ការបម្លែងបញ្ច្រាសមិនអាចទៅរួច ជាឧទាហរណ៍ ដោយប្រើរូបមន្ត k1 = ak2 mod p (a និង p គឺជាប៉ារ៉ាម៉ែត្រនៃក្បួនដោះស្រាយដែលបានប្រើ)។
ការអ៊ិនគ្រីបស៊ីមេទ្រី
ក្បួនដោះស្រាយការអ៊ិនគ្រីបស៊ីមេទ្រីមានតាំងពីបុរាណកាលមក៖ វាគឺជាវិធីសាស្រ្តនៃការលាក់ព័ត៌មានដែលត្រូវបានប្រើដោយអធិរាជរ៉ូម៉ាំង Gaius Julius Caesar នៅសតវត្សទី 1 មុនគ។ e. ហើយក្បួនដោះស្រាយដែលគាត់បានបង្កើតត្រូវបានគេស្គាល់ថាជា "Caesar cryptosystem"។
បច្ចុប្បន្ននេះ ក្បួនដោះស្រាយការអ៊ិនគ្រីបស៊ីមេទ្រីដែលគេស្គាល់ថាល្អបំផុតគឺ DES (ស្តង់ដារការអ៊ិនគ្រីបទិន្នន័យ) ដែលត្រូវបានបង្កើតឡើងក្នុងឆ្នាំ 1977។ រហូតមកដល់ពេលថ្មីៗនេះ វាគឺជា "ស្តង់ដារសហរដ្ឋអាមេរិក" ចាប់តាំងពីរដ្ឋាភិបាលនៃប្រទេសនេះបានណែនាំការប្រើប្រាស់របស់វាសម្រាប់ការអនុវត្ត។ ប្រព័ន្ធផ្សេងៗការអ៊ិនគ្រីបទិន្នន័យ។ ទោះបីជាការពិតដែលថា DES ត្រូវបានគ្រោងទុកដំបូងដើម្បីប្រើមិនលើសពី 10-15 ឆ្នាំក៏ដោយក៏ការព្យាយាមជំនួសវាបានចាប់ផ្តើមតែនៅក្នុងឆ្នាំ 1997 ប៉ុណ្ណោះ។
យើងនឹងមិនគ្របដណ្តប់ DES លម្អិតទេ (សៀវភៅស្ទើរតែទាំងអស់នៅក្នុងបញ្ជីនៃសម្ភារៈបន្ថែមមានវា។ ការពិពណ៌នាលម្អិត) ហើយសូមងាកទៅរកក្បួនដោះស្រាយការអ៊ិនគ្រីបទំនើបបន្ថែមទៀត។ វាគួរឱ្យកត់សម្គាល់ថាហេតុផលចម្បងសម្រាប់ការផ្លាស់ប្តូរស្តង់ដារការអ៊ិនគ្រីបគឺកម្លាំងគ្រីបគ្រីបខ្សោយរបស់វា ហេតុផលសម្រាប់ប្រវែងសោ DES គឺត្រឹមតែ 56 ប៉ុណ្ណោះ។ ប៊ីតសំខាន់ៗ. វាត្រូវបានគេដឹងថាក្បួនដោះស្រាយការអ៊ិនគ្រីបខ្លាំងណាមួយអាចត្រូវបានបំបែកដោយព្យាយាមប្រើសោអ៊ិនគ្រីបដែលអាចធ្វើបានទាំងអស់ (វិធីដែលហៅថា កម្លាំងសាហាវ- ការវាយប្រហារដោយកម្លាំងសាហាវ) ។ វាងាយស្រួលក្នុងការគណនាថា ចង្កោមនៃ 1 លាន processors ដែលនីមួយៗគណនា 1 លាន keys ក្នុងមួយវិនាទី នឹងពិនិត្យមើល 256 វ៉ារ្យ៉ង់នៃ DES keys ក្នុងរយៈពេលជិត 20 ម៉ោង ហើយចាប់តាំងពីថ្ងៃនេះ ថាមពលកុំព្យូទ័រជាការពិត វាច្បាស់ណាស់ថា គ្រាប់ចុច 56 ប៊ីតគឺខ្លីពេក ហើយក្បួនដោះស្រាយ DES ត្រូវការជំនួសដោយគ្រាប់ចុចខ្លាំងជាង។
សព្វថ្ងៃនេះ ក្បួនដោះស្រាយការអ៊ិនគ្រីបដ៏រឹងមាំទំនើបចំនួនពីរត្រូវបានប្រើប្រាស់កាន់តែខ្លាំងឡើង៖ ស្តង់ដារក្នុងស្រុក GOST 28147-89 និងស្តង់ដារគ្រីបតូថ្មីរបស់សហរដ្ឋអាមេរិក - AES (ស្តង់ដារការអ៊ិនគ្រីបកម្រិតខ្ពស់)។
ស្តង់ដារ GOST 28147-89
ក្បួនដោះស្រាយដែលកំណត់ដោយ GOST 28147-89 (រូបភាពទី 1) មានប្រវែងសោអ៊ិនគ្រីប 256 ប៊ីត។ វាអ៊ិនគ្រីបព័ត៌មាននៅក្នុងប្លុកនៃ 64 ប៊ីត (ក្បួនដោះស្រាយបែបនេះត្រូវបានគេហៅថាប្លុក algorithms) ដែលបន្ទាប់មកត្រូវបានបែងចែកជាពីរប្លុករងនៃ 32 ប៊ីត (N1 និង N2) ។ Subblock N1 ត្រូវបានដំណើរការតាមរបៀបជាក់លាក់មួយ បន្ទាប់ពីនោះតម្លៃរបស់វាត្រូវបានបន្ថែមទៅតម្លៃនៃ subblock N2 (ការបន្ថែមត្រូវបានអនុវត្ត modulo 2 ពោលគឺឡូជីខល ប្រតិបត្តិការ XOR- "ផ្តាច់មុខឬ") ហើយបន្ទាប់មកប្លុករងត្រូវបានផ្លាស់ប្តូរ។ ការផ្លាស់ប្តូរនេះ។កំពុងរត់ ចំនួនជាក់លាក់ដង ("ជុំ"): 16 ឬ 32 អាស្រ័យលើរបៀបប្រតិបត្តិការនៃក្បួនដោះស្រាយ។ នៅក្នុងជុំនីមួយៗ ប្រតិបត្តិការពីរត្រូវបានអនុវត្ត។
ទីមួយគឺការចាក់សោ។ ខ្លឹមសារនៃប្លុករង N1 ត្រូវបានបន្ថែមម៉ូឌុល 2 ជាមួយនឹងផ្នែក 32 ប៊ីតនៃគន្លឹះ Kx ។ សោពេញការអ៊ិនគ្រីបត្រូវបានតំណាងថាជាការភ្ជាប់នៃកូនសោរង 32 ប៊ីត៖ K0, K1, K2, K3, K4, K5, K6, K7 ។ កំឡុងពេលដំណើរការអ៊ិនគ្រីប គ្រាប់ចុចរងមួយក្នុងចំនោមកូនសោទាំងនេះត្រូវបានប្រើប្រាស់ អាស្រ័យលើចំនួនជុំ និងរបៀបប្រតិបត្តិការនៃក្បួនដោះស្រាយ។
ប្រតិបត្តិការទីពីរ - ការជំនួសតារាង. បន្ទាប់ពីការចុចគ្រាប់ចុច ប្លុករង N1 ត្រូវបានបែងចែកទៅជា 8 ផ្នែកនៃ 4 ប៊ីត ដែលតម្លៃនីមួយៗត្រូវបានជំនួសដោយអនុលោមតាមតារាងជំនួសសម្រាប់ផ្នែកនៃប្លុករងនេះ។ បន្ទាប់មកប្លុករងត្រូវបានបង្វិលប៊ីតទៅខាងឆ្វេងដោយ 11 ប៊ីត។
ការជំនួសតារាង(ប្រអប់ជំនួស - S-box) ត្រូវបានគេប្រើជាញឹកញាប់នៅក្នុងក្បួនដោះស្រាយការអ៊ិនគ្រីបទំនើប ដូច្នេះវាមានតម្លៃពន្យល់ពីរបៀបដែលប្រតិបត្តិការបែបនេះត្រូវបានរៀបចំ។
តម្លៃលទ្ធផលនៃប្លុកត្រូវបានកត់ត្រាក្នុងតារាង។ ប្លុកទិន្នន័យនៃវិមាត្រជាក់លាក់មួយ (ក្នុងករណីរបស់យើង 4 ប៊ីត) មានតំណាងជាលេខផ្ទាល់របស់វា ដែលកំណត់ចំនួននៃតម្លៃលទ្ធផល។ ឧទាហរណ៍ ប្រសិនបើប្រអប់ S មើលទៅដូចជា 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 និងប្លុក 4 ប៊ីត “0100” បានមកដល់ធាតុបញ្ចូល (តម្លៃ 4) បន្ទាប់មកយោងទៅតាមតារាងតម្លៃលទ្ធផលនឹងមាន 15 ពោលគឺ "1111" (0 a 4, 1 a 11, 2 a 2 ... ) ។ ក្បួនដោះស្រាយដែលកំណត់ដោយ GOST 28147-89 ផ្តល់នូវរបៀបប្រតិបត្តិការចំនួនបួន៖ ការជំនួសសាមញ្ញ ការលេងហ្គេម ការលេងហ្គេមជាមួយមតិកែលម្អ
និងការបង្កើតបុព្វបទក្លែងបន្លំ។ ពួកគេប្រើការបំប្លែងការអ៊ិនគ្រីបដូចគ្នាដែលបានពិពណ៌នាខាងលើ ប៉ុន្តែដោយសារគោលបំណងនៃរបៀបខុសគ្នា ការបំប្លែងនេះត្រូវបានអនុវត្តខុសគ្នានៅក្នុងពួកវានីមួយៗ។ នៅក្នុងរបៀបការជំនួសងាយស្រួល
ដើម្បីអ៊ិនគ្រីបប្លុកព័ត៌មាន 64 ប៊ីតនីមួយៗ 32 ជុំដែលបានពិពណ៌នាខាងលើត្រូវបានអនុវត្ត។ ក្នុងករណីនេះ គ្រាប់ចុចរង 32 ប៊ីត ត្រូវបានប្រើក្នុងលំដាប់ដូចខាងក្រោមៈ
K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 ជាដើម - ក្នុងជុំទី 1 ដល់ 24;
K7, K6, K5, K4, K3, K2, K1, K0 - នៅក្នុងជុំទី 25 ដល់ 32 ។ របៀបនេះ។ត្រូវបានអនុវត្តតាមវិធីដូចគ្នា ប៉ុន្តែជាមួយនឹងលំដាប់ផ្សេងគ្នាបន្តិចនៃការប្រើគ្រាប់ចុចរង៖
K0, K1, K2, K3, K4, K5, K6, K7 - ក្នុងជុំទី 1 ដល់ទី 8;
K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 ជាដើម - នៅក្នុងជុំទី 9 ដល់ 32 ។
ប្លុកទាំងអស់ត្រូវបានអ៊ិនគ្រីបដោយឯករាជ្យពីគ្នាទៅវិញទៅមក ពោលគឺលទ្ធផលនៃការអ៊ិនគ្រីបនៃប្លុកនីមួយៗអាស្រ័យតែលើខ្លឹមសាររបស់វាប៉ុណ្ណោះ (ប្លុកដែលត្រូវគ្នានៃអត្ថបទដើម)។ ប្រសិនបើមានប្លុកស្រដៀងគ្នាជាច្រើននៃអត្ថបទដើម (ធម្មតា) នោះប្លុកអក្សរសម្ងាត់ដែលត្រូវគ្នាក៏នឹងដូចគ្នាដែរ ដែលផ្តល់បន្ថែម ព័ត៌មានមានប្រយោជន៍សម្រាប់ cryptanalyst ដែលកំពុងព្យាយាមបំបែកកូដសម្ងាត់។ ដូច្នេះ របៀបនេះត្រូវបានប្រើជាចម្បងសម្រាប់ការអ៊ិនគ្រីបកូនសោការអ៊ិនគ្រីបដោយខ្លួនឯង (គ្រោងការណ៍ពហុគ្រាប់ចុចត្រូវបានអនុវត្តជាញឹកញាប់ ដែលក្នុងនោះសម្រាប់ហេតុផលមួយចំនួន សោត្រូវបានអ៊ិនគ្រីបគ្នាទៅវិញទៅមក) ។ របៀបប្រតិបត្តិការពីរផ្សេងទៀតត្រូវបានបម្រុងទុកសម្រាប់ការអ៊ិនគ្រីបព័ត៌មានដោយខ្លួនវា - ហ្គាម៉ា និងហ្គាម៉ាជាមួយនឹងមតិកែលម្អ។
IN របៀបហ្គាម៉ារាល់ប្លុក អត្ថបទធម្មតាប៊ីតបានបន្ថែមម៉ូឌុល 2 ជាមួយនឹងប្លុកហ្គាម៉ាស៊ីប 64 ប៊ីត។ gamma cipher គឺជាលំដាប់ពិសេសមួយដែលត្រូវបានទទួលជាលទ្ធផលនៃប្រតិបត្តិការជាក់លាក់ជាមួយនឹងការចុះឈ្មោះ N1 និង N2 (សូមមើលរូបទី 1)។
1. ការបំពេញដំបូងរបស់ពួកគេត្រូវបានសរសេរដើម្បីចុះឈ្មោះ N1 និង N2 - តម្លៃ 64 ប៊ីតហៅថាសារធ្វើសមកាលកម្ម។
2. ខ្លឹមសារនៃការចុះឈ្មោះ N1 និង N2 ត្រូវបានអ៊ិនគ្រីប (in ក្នុងករណីនេះ- ធ្វើសមកាលកម្មសារ) នៅក្នុងរបៀបជំនួសសាមញ្ញ។
3. ខ្លឹមសារនៃការចុះឈ្មោះ N1 ត្រូវបានបន្ថែមម៉ូឌុល (232 - 1) ជាមួយ C1 ថេរ = 224 + 216 + 28 + 24 ហើយលទ្ធផលនៃការបន្ថែមត្រូវបានសរសេរដើម្បីចុះឈ្មោះ N1 ។
4. ខ្លឹមសារនៃការចុះឈ្មោះ N2 ត្រូវបានបន្ថែម modulo 232 ជាមួយនឹង C2 ថេរ = 224 + 216 + 28 + 1 ហើយលទ្ធផលនៃការបន្ថែមត្រូវបានសរសេរដើម្បីចុះឈ្មោះ N2 ។
5. ខ្លឹមសារនៃការចុះឈ្មោះ N1 និង N2 គឺជាលទ្ធផលជាប្លុកហ្គាម៉ា 64 ប៊ីតនៃស៊ីបភឺរ (ក្នុងករណីនេះ N1 និង N2 បង្កើតជាប្លុកហ្គាម៉ាដំបូង) ។
ប្រសិនបើប្លុកហ្គាម៉ាបន្ទាប់គឺចាំបាច់ (ឧ. ការអ៊ិនគ្រីប ឬការឌិគ្រីបត្រូវបន្ត) វាត្រឡប់ទៅជំហានទី 2 វិញ។
សម្រាប់ការឌិគ្រីប ហ្គាម៉ាត្រូវបានបង្កើតក្នុងលក្ខណៈស្រដៀងគ្នា ហើយបន្ទាប់មកលេខសម្ងាត់និងហ្គាម៉ាប៊ីតត្រូវបាន XORed ម្ដងទៀត។ ដោយសារប្រតិបត្តិការនេះអាចបញ្ច្រាស់បាន ក្នុងករណីមាត្រដ្ឋានដែលបានអភិវឌ្ឍត្រឹមត្រូវ អត្ថបទដើម (តារាង) ត្រូវបានទទួល។
ការអ៊ិនគ្រីប និងការឌិគ្រីបនៅក្នុងរបៀបហ្គាម៉ា
ដើម្បីបង្កើតលេខកូដសម្ងាត់ដែលត្រូវការដើម្បីឌិគ្រីបហ្គាម៉ា អ្នកប្រើប្រាស់ដែលឌិគ្រីបគ្រីបគ្រីបត្រូវតែមានសោដូចគ្នា និងតម្លៃសារនៃការធ្វើសមកាលកម្មដូចគ្នាដែលត្រូវបានប្រើនៅពេលអ៊ិនគ្រីបព័ត៌មាន។ បើមិនដូច្នោះទេ វានឹងមិនអាចទទួលបានអត្ថបទដើមពីអត្ថបទដែលបានអ៊ិនគ្រីបនោះទេ។
នៅក្នុងការអនុវត្តភាគច្រើននៃក្បួនដោះស្រាយ GOST 28147-89 សារធ្វើសមកាលកម្មគឺមិនសម្ងាត់ទេ ទោះយ៉ាងណាក៏ដោយមានប្រព័ន្ធដែលសារធ្វើសមកាលកម្មគឺជាធាតុសម្ងាត់ដូចគ្នានឹងសោអ៊ិនគ្រីបដែរ។ សម្រាប់ប្រព័ន្ធបែបនេះ ប្រវែងគន្លឹះដ៏មានប្រសិទ្ធភាពនៃក្បួនដោះស្រាយ (256 ប៊ីត) ត្រូវបានកើនឡើងដោយ 64 ប៊ីតផ្សេងទៀតនៃសារធ្វើសមកាលកម្មសម្ងាត់ ដែលអាចត្រូវបានចាត់ទុកថាជាធាតុសំខាន់ផងដែរ។
នៅក្នុងរបៀបហ្គាម៉ា មតិត្រឡប់ ដើម្បីបំពេញការចុះឈ្មោះ N1 និង N2 ដោយចាប់ផ្តើមពីប្លុកទី 2 វាមិនមែនជាប្លុកហ្គាម៉ាមុនដែលត្រូវបានប្រើទេ ប៉ុន្តែជាលទ្ធផលនៃការអ៊ិនគ្រីបប្លុកអត្ថបទធម្មតាពីមុន (រូបភាពទី 2)។ ប្លុកទីមួយនៅក្នុងរបៀបនេះត្រូវបានបង្កើតទាំងស្រុងស្រដៀងទៅនឹងប្លុកមុន។
អង្ករ។ 2. ការអភិវឌ្ឍន៍នៃហ្គាម៉ាស៊ីបនៅក្នុងរបៀបហ្គាម៉ាជាមួយនឹងមតិកែលម្អ។ |
ពិចារណារបៀប ជំនាន់នៃបុព្វបទក្លែងបន្លំគំនិតនៃប្រធានបទនៃជំនាន់គួរតែត្រូវបានកំណត់។ បុព្វបទក្លែងបន្លំគឺជាអក្សរសម្ងាត់ ឆេកសាំគណនាដោយប្រើសោអ៊ិនគ្រីប និងត្រូវបានរចនាឡើងដើម្បីផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវនៃសារ។ នៅពេលបង្កើតបុព្វបទក្លែងបន្លំ ប្រតិបត្តិការខាងក្រោមត្រូវបានអនុវត្ត៖ ប្លុក 64 ប៊ីតដំបូងនៃអារេព័ត៌មាន ដែលបុព្វបទក្លែងបន្លំត្រូវបានគណនាត្រូវបានសរសេរដើម្បីចុះឈ្មោះ N1 និង N2 និងអ៊ិនគ្រីបក្នុងរបៀបជំនួសសាមញ្ញកាត់បន្ថយ (។ 16 ជុំដំបូងក្នុងចំណោម 32 ត្រូវបានអនុវត្ត) ។ លទ្ធផលដែលទទួលបានគឺត្រូវបានសង្ខេបម៉ូឌុល 2 ជាមួយនឹងប្លុកព័ត៌មានបន្ទាប់ ហើយលទ្ធផលត្រូវបានរក្សាទុកក្នុង N1 និង N2 ។
វដ្តនេះធ្វើម្តងទៀតរហូតដល់ប្លុកព័ត៌មានចុងក្រោយ។ លទ្ធផលនៃមាតិកា 64 ប៊ីតនៃការចុះឈ្មោះ N1 និង N2 ឬផ្នែកនៃពួកវាដែលជាលទ្ធផលនៃការបំប្លែងទាំងនេះត្រូវបានគេហៅថាបុព្វបទក្លែងបន្លំ។ ទំហំនៃបុព្វបទក្លែងបន្លំត្រូវបានជ្រើសរើសដោយផ្អែកលើភាពជឿជាក់នៃសារដែលត្រូវការ៖ ជាមួយនឹងប្រវែងនៃបុព្វបទក្លែងបន្លំ r ប៊ីត ប្រូបាប៊ីលីតេដែលការផ្លាស់ប្តូរសារនឹងមិនមាននរណាកត់សម្គាល់គឺ 2-r ជាញឹកញាប់បំផុត a 32-។ បុព្វបទក្លែងបន្លំប៊ីតត្រូវបានប្រើ ពោលគឺពាក់កណ្តាលមាតិកានៃការចុះឈ្មោះ។ នេះគឺគ្រប់គ្រាន់ហើយ ព្រោះថា ឯកសារភ្ជាប់ដែលក្លែងបន្លំមានគោលបំណងជាចម្បងដើម្បីការពារប្រឆាំងនឹងការបង្ខូចទ្រង់ទ្រាយដោយចៃដន្យនៃព័ត៌មាន។ ដើម្បីការពារប្រឆាំងនឹងការកែប្រែទិន្នន័យដោយចេតនា ផ្សេងទៀត។ វិធីសាស្រ្តគ្រីប- ហត្ថលេខាឌីជីថលអេឡិចត្រូនិចជាចម្បង។
នៅពេលផ្លាស់ប្តូរព័ត៌មាន បុព្វបទក្លែងបន្លំបម្រើជាប្រភេទមួយ។ មធ្យោបាយបន្ថែមគ្រប់គ្រង។ វាត្រូវបានគណនាសម្រាប់អត្ថបទធម្មតា នៅពេលដែលព័ត៌មានណាមួយត្រូវបានអ៊ិនគ្រីប និងត្រូវបានផ្ញើជាមួយនឹងអត្ថបទសម្ងាត់។ បន្ទាប់ពីការឌិគ្រីប តម្លៃថ្មីនៃបុព្វបទក្លែងបន្លំត្រូវបានគណនា និងប្រៀបធៀបជាមួយនឹងតម្លៃដែលបានផ្ញើ។ ប្រសិនបើតម្លៃមិនត្រូវគ្នា វាមានន័យថាអក្សរសម្ងាត់ត្រូវបានខូចកំឡុងពេលបញ្ជូន ឬកូនសោមិនត្រឹមត្រូវត្រូវបានប្រើកំឡុងពេលឌិគ្រីប។ បុព្វបទក្លែងបន្លំគឺមានប្រយោជន៍ជាពិសេសសម្រាប់ពិនិត្យមើលភាពត្រឹមត្រូវនៃការឌិគ្រីប ព័ត៌មានសំខាន់នៅពេលប្រើគ្រោងការណ៍ពហុគន្លឹះ។
ក្បួនដោះស្រាយ GOST 28147-89 ត្រូវបានចាត់ទុកថាជាក្បួនដោះស្រាយដ៏ខ្លាំងមួយ - បច្ចុប្បន្នមិនត្រូវបានស្នើឡើងសម្រាប់ការបង្ហាញរបស់វាទៀតទេ វិធីសាស្រ្តមានប្រសិទ្ធភាពជាងវិធីសាស្រ្ត "brute force" ដែលបានរៀបរាប់ខាងលើ។ ភាពធន់ខ្ពស់របស់វាត្រូវបានសម្រេចជាចម្បងដោយសារតែ ប្រវែងវែងគន្លឹះ - 256 ប៊ីត។ នៅពេលប្រើសារធ្វើសមកាលកម្មសម្ងាត់ ប្រវែងសោដែលមានប្រសិទ្ធភាពកើនឡើងដល់ 320 ប៊ីត ហើយការអ៊ិនគ្រីបតារាងជំនួសនឹងកើនឡើង។ ប៊ីតបន្ថែម. លើសពីនេះទៀតភាពរឹងមាំនៃគ្រីបគឺអាស្រ័យលើចំនួននៃការផ្លាស់ប្តូរជុំដែលយោងទៅតាម GOST 28147-89 គួរតែមាន 32 (ឥទ្ធិពលពេញលេញនៃការបំបែកទិន្នន័យបញ្ចូលត្រូវបានសម្រេចបន្ទាប់ពី 8 ជុំ) ។
ស្តង់ដារ AES
មិនដូចក្បួនដោះស្រាយ GOST 28147-89 ដែល សម្រាប់រយៈពេលដ៏យូរមួយ។នៅតែសម្ងាត់ ស្តង់ដារអាមេរិក ការអ៊ិនគ្រីប AESដែលមានបំណងជំនួស DES ត្រូវបានជ្រើសរើសតាមរយៈការប្រកួតប្រជែងបើកចំហ ដែលស្ថាប័ន និងបុគ្គលដែលចាប់អារម្មណ៍ទាំងអស់អាចសិក្សា និងផ្តល់យោបល់លើក្បួនដោះស្រាយបេក្ខជន។
ការប្រកួតប្រជែងដើម្បីជំនួស DES ត្រូវបានប្រកាសនៅឆ្នាំ 1997 ដោយវិទ្យាស្ថានស្តង់ដារ និងបច្ចេកវិទ្យាជាតិសហរដ្ឋអាមេរិក (NIST - National Institute of Standards and Technology)។ ក្បួនដោះស្រាយបេក្ខជនចំនួន 15 ត្រូវបានដាក់ជូនក្នុងការប្រកួតប្រជែង ដែលបង្កើតឡើងដោយស្ថាប័នល្បីទាំងពីរក្នុងវិស័យគ្រីបគ្រីប (RSA Security, Counterpane ។ល។) និងបុគ្គល។ លទ្ធផលនៃការប្រកួតប្រជែងត្រូវបានប្រកាសក្នុងខែតុលា ឆ្នាំ 2000៖ អ្នកឈ្នះគឺជាក្បួនដោះស្រាយ Rijndael ដែលបង្កើតឡើងដោយអ្នកសរសេរកូដពីររូបមកពីបែលហ្ស៊ិក Vincent Rijmen និង Joan Daemen ។
ក្បួនដោះស្រាយ Rijndael មិនស្រដៀងនឹងក្បួនដោះស្រាយការអ៊ិនគ្រីបស៊ីមេទ្រីដែលគេស្គាល់ភាគច្រើនទេ រចនាសម្ព័ន្ធដែលត្រូវបានគេហៅថា "បណ្តាញ Feistel" និងស្រដៀងទៅនឹង GOST 28147-89 របស់រុស្ស៊ី។ ភាពប្លែកនៃបណ្តាញ Feistel គឺថាតម្លៃបញ្ចូលត្រូវបានបែងចែកទៅជា subblocks ពីរ ឬច្រើន ដែលផ្នែកត្រូវបានដំណើរការក្នុងជុំនីមួយៗ។ ច្បាប់ជាក់លាក់បន្ទាប់ពីនោះវាត្រូវបានដាក់លើប្លុករងដែលមិនទាន់កែច្នៃ (សូមមើលរូបទី 1)។
មិនដូចស្តង់ដារអ៊ិនគ្រីបក្នុងស្រុកទេ ក្បួនដោះស្រាយ Rijndael តំណាងឱ្យប្លុកទិន្នន័យក្នុងទម្រង់ជាអារេបៃទំហំពីរនៃទំហំ 4X4, 4X6 ឬ 4X8 (ការប្រើប្រាស់ច្រើនត្រូវបានអនុញ្ញាត។ ទំហំថេរប្លុកព័ត៌មានដែលបានអ៊ិនគ្រីប) ។ ប្រតិបត្តិការទាំងអស់ត្រូវបានអនុវត្តលើបៃនីមួយៗនៃអារេ ក៏ដូចជានៅលើ ជួរឈរឯករាជ្យនិងបន្ទាត់។
ក្បួនដោះស្រាយ Rijndael អនុវត្តការបំប្លែងចំនួនបួន៖ BS (ByteSub) - ការជំនួសតារាងនៃបៃនីមួយៗនៃអារេ (រូបភាពទី 3); SR (ShiftRow) - ការផ្លាស់ប្តូរជួរអារេ (រូបភាពទី 4) ។ ជាមួយនឹងប្រតិបត្តិការនេះ បន្ទាត់ទីមួយនៅតែមិនផ្លាស់ប្តូរ ហើយនៅសល់ត្រូវបានផ្លាស់ប្តូរជារង្វង់ដោយបៃបៃបៃទៅខាងឆ្វេងដោយចំនួនបៃថេរ អាស្រ័យលើទំហំនៃអារេ។ ឧទាហរណ៍ សម្រាប់អារេ 4X4 បន្ទាត់ 2, 3 និង 4 ត្រូវបានផ្លាស់ប្តូរដោយ 1, 2 និង 3 បៃរៀងគ្នា។ បន្ទាប់មក MC (MixColumn) - ប្រតិបត្តិការលើជួរឈរអារេឯករាជ្យ (រូបភាពទី 5) នៅពេលដែលជួរឈរនីមួយៗត្រូវបានគុណដោយម៉ាទ្រីសថេរ c(x) យោងទៅតាមច្បាប់ជាក់លាក់មួយ។ ហើយចុងក្រោយ AK (AddRoundKey) - បន្ថែមសោ។ ប៊ីតនីមួយៗនៃអារេត្រូវបានបន្ថែមម៉ូឌុល 2 ជាមួយនឹងប៊ីតដែលត្រូវគ្នានៃគ្រាប់ចុចមូល ដែលតាមវិធីមួយយ៉ាងជាក់លាក់ពីសោអ៊ិនគ្រីប (រូបភាព 6) ។
អង្ករ។ 3. ប្រតិបត្តិការ BS ។ |
អង្ករ។ 4. ប្រតិបត្តិការ SR ។ |
អង្ករ។ 5. ប្រតិបត្តិការ MC ។ |
ចំនួននៃជុំនៃការអ៊ិនគ្រីប (R) នៅក្នុងក្បួនដោះស្រាយ Rijndael គឺអថេរ (10, 12 ឬ 14 ជុំ) ហើយអាស្រ័យលើទំហំប្លុក និងសោអ៊ិនគ្រីប (វាមានទំហំថេរជាច្រើនសម្រាប់សោ)។
ការឌិគ្រីបត្រូវបានអនុវត្តដោយប្រើប្រតិបត្តិការបញ្ច្រាសខាងក្រោម។ តារាងត្រូវបានដាក់បញ្ច្រាស ហើយតារាងត្រូវបានជំនួសដោយតារាងច្រាស (ទាក់ទងនឹងតារាងដែលប្រើសម្រាប់ការអ៊ិនគ្រីប)។ ប្រតិបត្តិការបញ្ច្រាសទៅ SR គឺបង្វិលជួរដេកទៅខាងស្តាំជាជាងទៅខាងឆ្វេង។ ប្រតិបត្តិការបញ្ច្រាសសម្រាប់ MC គឺការគុណដោយប្រើច្បាប់ដូចគ្នាដោយម៉ាទ្រីសមួយទៀត d(x) ដែលបំពេញលក្ខខណ្ឌ៖ c(x) * d(x) = 1. ការបន្ថែមកូនសោ AK គឺការបញ្ច្រាសរបស់វា ដោយសារវាប្រើតែ XOR ប៉ុណ្ណោះ។ ប្រតិបត្តិការ។ ប្រតិបត្តិការបញ្ច្រាសទាំងនេះត្រូវបានអនុវត្តកំឡុងពេលឌិគ្រីបនៅក្នុងលំដាប់បញ្ច្រាសទៅនឹងអ្វីដែលបានប្រើកំឡុងពេលអ៊ិនគ្រីប។
Rijndael បានក្លាយជាស្តង់ដារថ្មីសម្រាប់ការអ៊ិនគ្រីបទិន្នន័យ ដោយសារគុណសម្បត្តិមួយចំនួនលើក្បួនដោះស្រាយផ្សេងទៀត។ ដំបូងបង្អស់វាផ្តល់ ល្បឿនលឿនការអ៊ិនគ្រីបនៅលើវេទិកាទាំងអស់៖ ទាំងនៅក្នុងការអនុវត្តផ្នែកទន់ និងផ្នែករឹង។ វាត្រូវបានសម្គាល់ដោយមិនអាចប្រៀបផ្ទឹមបាន។ ឱកាសល្អបំផុតការគណនាប៉ារ៉ាឡែលធៀបនឹងក្បួនដោះស្រាយផ្សេងទៀតដែលបានដាក់ជូនការប្រកួត។ លើសពីនេះទៀត តម្រូវការធនធានសម្រាប់ប្រតិបត្តិការរបស់វាមានតិចតួច ដែលមានសារៈសំខាន់នៅពេលប្រើក្នុងឧបករណ៍ដែលមានសមត្ថភាពកុំព្យូទ័រមានកម្រិត។
គុណវិបត្តិតែមួយគត់នៃក្បួនដោះស្រាយអាចត្រូវបានចាត់ទុកថាជាគ្រោងការណ៍មិនធម្មតារបស់វា។ ការពិតគឺថាលក្ខណៈសម្បត្តិនៃក្បួនដោះស្រាយដែលមានមូលដ្ឋានលើបណ្តាញ Feistel ត្រូវបានសិក្សាយ៉ាងល្អ ហើយ Rijndael មិនដូចពួកវាទេ អាចមាន ភាពងាយរងគ្រោះដែលលាក់ដែលអាចត្រូវបានរកឃើញបន្ទាប់ពីពេលខ្លះបានកន្លងផុតទៅ ចាប់តាំងពីការចាប់ផ្តើមនៃការចែកចាយដ៏ទូលំទូលាយរបស់វា។
ការអ៊ិនគ្រីបមិនស៊ីមេទ្រី
ក្បួនដោះស្រាយការអ៊ិនគ្រីបមិនស៊ីមេទ្រី ដូចដែលបានកត់សម្គាល់រួចហើយ ប្រើសោពីរ៖ k1 - សោអ៊ិនគ្រីប ឬសាធារណៈ និង k2 - សោរឌិគ្រីប ឬសម្ងាត់។ សោសាធារណៈគណនាពីអាថ៌កំបាំង៖ k1 = f(k2) ។
ក្បួនដោះស្រាយការអ៊ិនគ្រីប asymmetric គឺផ្អែកលើការប្រើប្រាស់មុខងារមួយផ្លូវ។ យោងតាមនិយមន័យ អនុគមន៍ y = f(x) គឺឯកទិស ប្រសិនបើ៖ វាងាយស្រួលគណនាសម្រាប់ទាំងអស់គ្នា។ ជម្រើសដែលអាចធ្វើបាន x និងសម្រាប់តម្លៃដែលអាចធ្វើបានភាគច្រើននៃ y វាពិបាកណាស់ក្នុងការគណនាតម្លៃនៃ x ដែល y = f (x) ។
ឧទាហរណ៍នៃអនុគមន៍មួយផ្លូវគឺការគុណនៃចំនួនធំពីរ៖ N = P*Q ។ គុណនេះឯង ប្រតិបត្តិការសាមញ្ញ. ទោះយ៉ាងណាក៏ដោយ មុខងារបញ្ច្រាស (ការបំបែក N ទៅជាកត្តាធំពីរ) ដែលហៅថា កត្តាកត្តា យោងទៅតាមការប៉ាន់ប្រមាណសម័យទំនើបគឺស្មុគស្មាញណាស់។ បញ្ហាគណិតវិទ្យា. ឧទាហរណ៍ កត្តា N ជាមួយនឹងវិមាត្រ 664 ប៊ីតនៅ P ? Q នឹងត្រូវការប្រតិបត្តិការប្រហែល 1023 ហើយដើម្បីគណនាបញ្ច្រាស x សម្រាប់និទស្សន្តម៉ូឌុល y = ax mod p ដែលស្គាល់ a, p និង y (ជាមួយនឹងវិមាត្រដូចគ្នានៃ a និង p) អ្នកត្រូវធ្វើប្រតិបត្តិការប្រហែល 1026 ។ ឧទាហរណ៍ចុងក្រោយដែលផ្តល់ឱ្យត្រូវបានគេហៅថា Discrete Logarithm Problem (DLP) ហើយមុខងារនេះច្រើនតែប្រើក្នុងក្បួនដោះស្រាយការអ៊ិនគ្រីបមិនស៊ីមេទ្រី ក៏ដូចជានៅក្នុងក្បួនដោះស្រាយដែលប្រើដើម្បីបង្កើតហត្ថលេខាឌីជីថលអេឡិចត្រូនិច។
មុខងារសំខាន់មួយទៀតដែលប្រើក្នុងការអ៊ិនគ្រីប asymmetric គឺមុខងារ backdoor មួយផ្លូវ។ និយមន័យរបស់ពួកគេចែងថាមុខងារមួយគឺ unidirectional ជាមួយ backdoor ប្រសិនបើវាជា unidirectional ហើយវាអាចត្រូវបានគណនាយ៉ាងមានប្រសិទ្ធភាព។ មុខងារបញ្ច្រាស x = f-1(y) ពោលគឺប្រសិនបើ "ការអនុម័តសម្ងាត់" ត្រូវបានគេស្គាល់ (ចំនួនសម្ងាត់ជាក់លាក់មួយនៅក្នុងកម្មវិធីចំពោះក្បួនដោះស្រាយការអ៊ិនគ្រីបមិនស៊ីមេទ្រី - តម្លៃនៃសោសម្ងាត់) ។
មុខងារ backdoor មួយផ្លូវត្រូវបានប្រើនៅក្នុងក្បួនដោះស្រាយការអ៊ិនគ្រីប asymmetric ដែលត្រូវបានប្រើប្រាស់យ៉ាងទូលំទូលាយ RSA ។
ក្បួនដោះស្រាយ RSA
បង្កើតឡើងក្នុងឆ្នាំ 1978 ដោយអ្នកនិពន្ធបីនាក់ (Rivest, Shamir, Adleman) វាបានទទួលឈ្មោះរបស់វាពីអក្សរដំបូងនៃនាមត្រកូលរបស់អ្នកអភិវឌ្ឍន៍។ ភាពជឿជាក់នៃក្បួនដោះស្រាយគឺផ្អែកលើភាពលំបាកនៃកត្តាលេខធំ និងការគណនាលោការីតដាច់។ ប៉ារ៉ាម៉ែត្រចំបងនៃក្បួនដោះស្រាយ RSA គឺម៉ូឌុលប្រព័ន្ធ N យោងទៅតាមការគណនាទាំងអស់នៅក្នុងប្រព័ន្ធត្រូវបានអនុវត្ត ហើយ N = P * Q (P និង Q គឺសាមញ្ញចៃដន្យសម្ងាត់។ លេខធំជាធម្មតាមានទំហំដូចគ្នា) ។
សោសម្ងាត់ k2 ត្រូវបានជ្រើសរើសដោយចៃដន្យ ហើយត្រូវតែបំពេញតាមលក្ខខណ្ឌដូចខាងក្រោម៖
1 ដែល GCD គឺជាអ្នកចែកទូទៅធំបំផុត ពោលគឺ k1 ត្រូវតែជា coprime ទៅតម្លៃនៃអនុគមន៍អយល័រ F(N) ដែលក្រោយមកគឺស្មើនឹងចំនួនគត់វិជ្ជមានក្នុងចន្លោះពី 1 ដល់ N coprime ទៅ N ហើយត្រូវបានគណនាជា F(N) = (P - 1)*(Q - 1). សោសាធារណៈ k1 ត្រូវបានគណនាពីទំនាក់ទំនង (k2*k1) = 1 mod F(N)ហើយសម្រាប់គោលបំណងនេះ ក្បួនដោះស្រាយ Euclidean ទូទៅ (ក្បួនដោះស្រាយសម្រាប់គណនាផ្នែកទូទៅធំបំផុត) ត្រូវបានប្រើ។ ការអ៊ិនគ្រីបនៃប្លុកទិន្នន័យ M ដោយប្រើក្បួនដោះស្រាយ RSA ត្រូវបានអនុវត្តដូចខាងក្រោម: C=M [ទៅថាមពល k1]ម៉ូដ N. ចំណាំថាចាប់តាំងពីនៅក្នុងប្រព័ន្ធគ្រីបតូពិតប្រាកដដោយប្រើ RSA លេខ k1 មានទំហំធំណាស់ (បច្ចុប្បន្នវិមាត្ររបស់វាអាចឡើងដល់ 2048 ប៊ីត) ការគណនាដោយផ្ទាល់នៃ M [ទៅថាមពល k1]មិនប្រាកដនិយម។ ដើម្បីទទួលបានវា ការរួមបញ្ចូលគ្នានៃការការ៉េម្តងហើយម្តងទៀតនៃ M និងការគុណនៃលទ្ធផលត្រូវបានប្រើ។ ការបញ្ច្រាសមុខងារនេះសម្រាប់វិមាត្រធំគឺមិនអាចធ្វើទៅបានទេ។ និយាយម្យ៉ាងទៀតវាមិនអាចទៅរួចទេក្នុងការស្វែងរក M ដែលបានផ្តល់ឱ្យ C, N និង k1 ដែលគេស្គាល់។ ទោះយ៉ាងណាក៏ដោយ ការមានកូនសោសម្ងាត់ k2 ដោយប្រើការបំប្លែងដ៏សាមញ្ញ គេអាចគណនា M = Ck2 mod N. ជាក់ស្តែង បន្ថែមពីលើសោសម្ងាត់ខ្លួនវា ចាំបាច់ត្រូវធានានូវភាពសម្ងាត់នៃប៉ារ៉ាម៉ែត្រ P និង Q។ ប្រសិនបើអ្នកវាយប្រហារទទួលបានតម្លៃរបស់ពួកគេ។ គាត់នឹងអាចគណនាសោសម្ងាត់ k2 ។ គុណវិបត្តិចម្បងនៃការអ៊ិនគ្រីបស៊ីមេទ្រីគឺតម្រូវការផ្ទេរសោ "ពីដៃមួយទៅដៃ" ។ គុណវិបត្តិនេះគឺធ្ងន់ធ្ងរណាស់ព្រោះវាធ្វើឱ្យវាមិនអាចប្រើការអ៊ិនគ្រីបស៊ីមេទ្រីនៅក្នុងប្រព័ន្ធដែលមានចំនួនអ្នកចូលរួមគ្មានដែនកំណត់។ ទោះជាយ៉ាងណាក៏ដោយ បើមិនដូច្នេះទេ ការអ៊ិនគ្រីបស៊ីមេទ្រីមានគុណសម្បត្តិមួយចំនួនដែលអាចមើលឃើញយ៉ាងច្បាស់ប្រឆាំងនឹងផ្ទៃខាងក្រោយនៃគុណវិបត្តិធ្ងន់ធ្ងរនៃការអ៊ិនគ្រីបមិនស៊ីមេទ្រី។ ទីមួយក្នុងចំនោមពួកគេគឺល្បឿនទាបនៃប្រតិបត្តិការអ៊ិនគ្រីប និងឌិគ្រីប ដោយសារតែវត្តមាននៃប្រតិបត្តិការដែលពឹងផ្អែកខ្លាំងលើធនធាន។ គុណវិបត្តិមួយទៀតគឺ "ទ្រឹស្តី" - ភាពខ្លាំងនៃគ្រីបគ្រីបនៃក្បួនដោះស្រាយការអ៊ិនគ្រីប asymmetric មិនត្រូវបានបញ្ជាក់ដោយគណិតវិទ្យាទេ។ នេះជាចម្បងដោយសារតែបញ្ហានៃលោការីតដាច់ពីគ្នា - វាមិនទាន់ត្រូវបានគេបង្ហាញថាដំណោះស្រាយរបស់វានៅក្នុងពេលវេលាដែលអាចទទួលយកបានគឺមិនអាចទៅរួចនោះទេ។ ការលំបាកដែលមិនចាំបាច់ក៏ត្រូវបានបង្កើតឡើងដោយតម្រូវការដើម្បីការពារសោសាធារណៈពីការជំនួស - ដោយការជំនួសសោសាធារណៈរបស់អ្នកប្រើប្រាស់ស្របច្បាប់ អ្នកវាយប្រហារនឹងអាចអ៊ិនគ្រីបសារសំខាន់ជាមួយនឹងសោសាធារណៈរបស់គាត់ ហើយក្រោយមកអាចឌិគ្រីបវាយ៉ាងងាយស្រួលដោយប្រើសោឯកជនរបស់គាត់។ ទោះជាយ៉ាងណាក៏ដោយ គុណវិបត្តិទាំងនេះមិនការពារការប្រើប្រាស់យ៉ាងទូលំទូលាយនៃក្បួនដោះស្រាយការអ៊ិនគ្រីប asymmetric នោះទេ។ សព្វថ្ងៃនេះមានប្រព័ន្ធគ្រីបតូដែលគាំទ្រការបញ្ជាក់នៃសោសាធារណៈ ក៏ដូចជាការរួមបញ្ចូលក្បួនដោះស្រាយការអ៊ិនគ្រីបស៊ីមេទ្រី និងអសមមាត្រ។ ប៉ុន្តែនេះគឺជាប្រធានបទសម្រាប់អត្ថបទដាច់ដោយឡែកមួយ។ សម្រាប់អ្នកអានទាំងនោះដែលចាប់អារម្មណ៍យ៉ាងខ្លាំងលើការអ៊ិនគ្រីប អ្នកនិពន្ធសូមផ្តល់អនុសាសន៍ឱ្យពង្រីកការយល់ដឹងរបស់ពួកគេ ដោយមានជំនួយពីសៀវភៅខាងក្រោម។ ការពិពណ៌នាពេញលេញនៃក្បួនដោះស្រាយការអ៊ិនគ្រីបអាចរកបាននៅក្នុងឯកសារខាងក្រោម៖ ក្បួនដោះស្រាយ RSA៖ http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1 ។ ការអ៊ិនគ្រីបទិន្នន័យមានសារៈសំខាន់ខ្លាំងណាស់ដើម្បីការពារឯកជនភាព។ នៅក្នុងអត្ថបទនេះ ខ្ញុំនឹងពិភាក្សាអំពីប្រភេទផ្សេងគ្នា និងវិធីសាស្រ្តនៃការអ៊ិនគ្រីបដែលត្រូវបានប្រើដើម្បីការពារទិន្នន័យសព្វថ្ងៃនេះ។ នៅពេលដែលសមត្ថភាពនៃអ៊ីនធឺណិតបន្តកើនឡើង អាជីវកម្មរបស់យើងកាន់តែច្រើនកំពុងត្រូវបានធ្វើឡើងតាមអ៊ីនធឺណិត។ ក្នុងចំណោមនោះ អ្វីដែលសំខាន់បំផុតគឺសេវាធនាគារតាមអ៊ីនធឺណិត ការទូទាត់តាមអ៊ីនធឺណិត អ៊ីមែល ការផ្លាស់ប្តូរសារឯកជន និងផ្លូវការ។ល។ ដែលពាក់ព័ន្ធនឹងការផ្លាស់ប្តូរទិន្នន័យ និងព័ត៌មានសម្ងាត់។ ប្រសិនបើទិន្នន័យនេះធ្លាក់ចូលទៅក្នុងដៃខុស វាអាចបង្កគ្រោះថ្នាក់មិនត្រឹមតែអ្នកប្រើប្រាស់ម្នាក់ៗប៉ុណ្ណោះទេ ប៉ុន្តែថែមទាំងប្រព័ន្ធអាជីវកម្មអនឡាញទាំងមូលផងដែរ។ ដើម្បីការពារកុំឱ្យវាកើតឡើង វិធានការសុវត្ថិភាពបណ្តាញជាច្រើនត្រូវបានគេយកទៅការពារការបញ្ជូនទិន្នន័យផ្ទាល់ខ្លួន។ ចំណុចសំខាន់ក្នុងចំណោមទាំងនេះគឺជាដំណើរការនៃការអ៊ិនគ្រីប និងឌិគ្រីបទិន្នន័យ ដែលត្រូវបានគេស្គាល់ថាជាគ្រីបគ្រីប។ មានវិធីសាស្រ្តអ៊ិនគ្រីបសំខាន់ៗចំនួនបីដែលត្រូវបានប្រើនៅក្នុងប្រព័ន្ធភាគច្រើននាពេលបច្ចុប្បន្ននេះ៖ ការអ៊ិនគ្រីប hashing ស៊ីមេទ្រី និង asymmetric ។ នៅក្នុងបន្ទាត់ខាងក្រោម ខ្ញុំនឹងនិយាយអំពីប្រភេទការអ៊ិនគ្រីបនីមួយៗដោយលម្អិតបន្ថែមទៀត។ នៅក្នុងការអ៊ិនគ្រីបស៊ីមេទ្រី ទិន្នន័យធម្មតាដែលអាចអានបាន ដែលគេស្គាល់ថាជាអត្ថបទធម្មតា ត្រូវបានអ៊ិនគ្រីប ដូច្នេះវាមិនអាចអានបាន។ ការច្របូកច្របល់ទិន្នន័យនេះត្រូវបានធ្វើដោយប្រើសោ។ នៅពេលដែលទិន្នន័យត្រូវបានអ៊ិនគ្រីប វាអាចត្រូវបានផ្ញើដោយសុវត្ថិភាពទៅកាន់អ្នកទទួល។ នៅឯអ្នកទទួល ទិន្នន័យដែលបានអ៊ិនគ្រីបត្រូវបានឌិកូដដោយប្រើសោដូចគ្នាដែលត្រូវបានប្រើសម្រាប់ការអ៊ិនកូដ។ ដូច្នេះវាច្បាស់ណាស់ថាសោគឺជាផ្នែកសំខាន់បំផុតនៃការអ៊ិនគ្រីបស៊ីមេទ្រី។ វាត្រូវតែត្រូវបានលាក់ពីអ្នកខាងក្រៅ ព្រោះអ្នកដែលមានសិទ្ធិចូលប្រើវានឹងអាចឌិគ្រីបទិន្នន័យឯកជនបាន។ នេះជាមូលហេតុដែលការអ៊ិនគ្រីបប្រភេទនេះត្រូវបានគេស្គាល់ថាជា "សោសម្ងាត់"។ នៅក្នុងប្រព័ន្ធទំនើប គន្លឹះជាធម្មតាគឺជាខ្សែទិន្នន័យដែលចេញមកពីពាក្យសម្ងាត់ខ្លាំង ឬពីប្រភពចៃដន្យទាំងស្រុង។ វាត្រូវបានបញ្ចូលទៅក្នុងកម្មវិធីអ៊ិនគ្រីបស៊ីមេទ្រី ដែលប្រើវាដើម្បីរក្សាទិន្នន័យបញ្ចូលជាសម្ងាត់។ ការច្របូកច្របល់ទិន្នន័យត្រូវបានសម្រេចដោយប្រើក្បួនដោះស្រាយការអ៊ិនគ្រីបស៊ីមេទ្រី ដូចជាស្តង់ដារការអ៊ិនគ្រីបទិន្នន័យ (DES) ស្តង់ដារការអ៊ិនគ្រីបកម្រិតខ្ពស់ (AES) ឬក្បួនដោះស្រាយការអ៊ិនគ្រីបទិន្នន័យអន្តរជាតិ (IDEA)។ ការរឹតបន្តឹង តំណភ្ជាប់ខ្សោយបំផុតនៅក្នុងប្រភេទនៃការអ៊ិនគ្រីបនេះគឺសុវត្ថិភាពនៃសោ ទាំងនៅក្នុងលក្ខខណ្ឌនៃការផ្ទុក និងការបញ្ជូនទៅកាន់អ្នកប្រើប្រាស់ដែលបានផ្ទៀងផ្ទាត់។ ប្រសិនបើហេគឃ័រអាចទទួលបានសោនេះ គាត់អាចឌិគ្រីបទិន្នន័យដែលបានអ៊ិនគ្រីបបានយ៉ាងងាយស្រួល ដោយកម្ចាត់ចោលនូវគោលបំណងទាំងមូលនៃការអ៊ិនគ្រីប។ គុណវិបត្តិមួយទៀតគឺថាកម្មវិធីដែលដំណើរការទិន្នន័យមិនអាចដំណើរការជាមួយទិន្នន័យដែលបានអ៊ិនគ្រីបបានទេ។ ដូច្នេះ ដើម្បីអាចប្រើកម្មវិធីនេះបាន ទិន្នន័យត្រូវតែត្រូវបានឌិកូដជាមុនសិន។ ប្រសិនបើកម្មវិធីខ្លួនឯងត្រូវបានសម្របសម្រួល នោះអ្នកវាយប្រហារអាចទទួលបានទិន្នន័យយ៉ាងងាយស្រួល។ ការអ៊ិនគ្រីបកូនសោ asymmetric ដំណើរការស្រដៀងទៅនឹងកូនសោស៊ីមេទ្រី ដែលវាប្រើសោដើម្បីអ៊ិនគ្រីបសារដែលកំពុងបញ្ជូន។ ទោះយ៉ាងណាក៏ដោយ ជំនួសឱ្យការប្រើសោដូចគ្នា គាត់ប្រើលេខខុសគ្នាទាំងស្រុង ដើម្បីឌិគ្រីបសារនេះ។ សោដែលប្រើសម្រាប់ការអ៊ិនកូដគឺអាចរកបានសម្រាប់អ្នកប្រើប្រាស់បណ្តាញណាមួយ និងទាំងអស់។ ដូច្នេះវាត្រូវបានគេស្គាល់ថាជាសោ "សាធារណៈ" ។ ម្យ៉ាងវិញទៀត សោដែលប្រើសម្រាប់ការឌិគ្រីបត្រូវបានរក្សាទុកជាសម្ងាត់ និងត្រូវបានបម្រុងទុកសម្រាប់ការប្រើប្រាស់ឯកជនដោយអ្នកប្រើប្រាស់ផ្ទាល់។ ដូច្នេះវាត្រូវបានគេស្គាល់ថាជា "កូនសោឯកជន" ។ ការអ៊ិនគ្រីប asymmetric ត្រូវបានគេស្គាល់ផងដែរថាជាការអ៊ិនគ្រីបសោសាធារណៈ។ ដោយសារវិធីសាស្រ្តនេះ សោសម្ងាត់ដែលត្រូវការដើម្បីឌិគ្រីបសារមិនចាំបាច់ត្រូវបានបញ្ជូនរាល់ពេលនោះទេ ហើយជាធម្មតាវាត្រូវបានគេស្គាល់តែចំពោះអ្នកប្រើប្រាស់ (អ្នកទទួល) លទ្ធភាពដែលពួក Hacker នឹងអាចឌិគ្រីបសារមានច្រើន ទាបជាង។ Diffie-Hellman និង RSA គឺជាឧទាហរណ៍នៃក្បួនដោះស្រាយដែលប្រើការអ៊ិនគ្រីបសោសាធារណៈ។ ការរឹតបន្តឹង ពួក Hacker ជាច្រើនប្រើ man-in-the-middle ជាទម្រង់នៃការវាយប្រហារ ដើម្បីចៀសវៀងការអ៊ិនគ្រីបប្រភេទនេះ។ នៅក្នុងការអ៊ិនគ្រីបមិនស៊ីមេទ្រី អ្នកត្រូវបានផ្តល់សោសាធារណៈដែលត្រូវបានប្រើដើម្បីផ្លាស់ប្តូរទិន្នន័យដោយសុវត្ថិភាពជាមួយបុគ្គល ឬសេវាកម្មផ្សេងទៀត។ ទោះជាយ៉ាងណាក៏ដោយ ពួក Hacker ប្រើការបោកបញ្ឆោតបណ្តាញដើម្បីបញ្ឆោតអ្នកឱ្យទាក់ទងជាមួយពួកគេ ខណៈពេលដែលអ្នកត្រូវបាននាំឱ្យជឿថាអ្នកស្ថិតនៅលើបណ្តាញសុវត្ថិភាព។ ដើម្បីយល់កាន់តែច្បាស់អំពីប្រភេទនៃការលួចចូលនេះ សូមពិចារណាភាគីអន្តរកម្មពីរគឺ Sasha និង Natasha និងហេកឃឺម្នាក់ឈ្មោះ Sergei ដែលមានចេតនាស្ទាក់ចាប់ការសន្ទនារបស់ពួកគេ។ ដំបូង Sasha ផ្ញើសារតាមបណ្តាញដែលមានបំណងសម្រាប់ Natasha ដោយស្នើសុំសោសាធារណៈរបស់នាង។ Sergei ស្ទាក់យកសារនេះ និងទទួលបានសោសាធារណៈដែលទាក់ទងនឹងនាង ហើយប្រើវាដើម្បីអ៊ិនគ្រីប និងផ្ញើសារមិនពិតទៅ Natasha ដែលមានសោសាធារណៈជំនួសឱ្យ Sasha's ។ Natasha ដោយគិតថាសារនេះមកពី Sasha ឥឡូវបានអ៊ិនគ្រីបវាជាមួយនឹងសោសាធារណៈរបស់ Sergei ហើយផ្ញើវាមកវិញ។ សារនេះត្រូវបានស្ទាក់ចាប់ដោយ Sergei ម្តងទៀត ឌិគ្រីប កែប្រែ (ប្រសិនបើចង់បាន) អ៊ិនគ្រីបម្តងទៀតដោយប្រើសោសាធារណៈដែល Sasha បានផ្ញើដំបូង ហើយផ្ញើត្រឡប់ទៅ Sasha វិញ។ ដូច្នេះនៅពេលដែល Sasha ទទួលបានសារនេះ គាត់ត្រូវបានគេនាំឱ្យជឿថាវាមកពី Natasha ហើយនៅតែមិនដឹងពីការលេងខុស។ បច្ចេកទេស hashing ប្រើក្បួនដោះស្រាយដែលគេស្គាល់ថាជាមុខងារ hash ដើម្បីបង្កើតខ្សែអក្សរពិសេសពីទិន្នន័យដែលបានផ្តល់ឱ្យ ដែលគេស្គាល់ថាជា hash ។ hash នេះមានលក្ខណៈសម្បត្តិដូចខាងក្រោមៈ ដូច្នេះ ភាពខុសគ្នាសំខាន់រវាង hashing និងទម្រង់ពីរផ្សេងទៀតនៃការអ៊ិនគ្រីបទិន្នន័យគឺថានៅពេលដែលទិន្នន័យត្រូវបានអ៊ិនគ្រីប (hashed) វាមិនអាចទាញយកមកវិញក្នុងទម្រង់ដើមរបស់វា (ឌិគ្រីប) បានទេ។ ការពិតនេះធានាថា ទោះបីជា hacker យកដៃរបស់គាត់នៅលើ hash ក៏ដោយ វានឹងគ្មានប្រយោជន៍សម្រាប់គាត់ទេ ព្រោះគាត់នឹងមិនអាចឌិគ្រីបខ្លឹមសារនៃសារបានទេ។ Message Digest 5 (MD5) និង Secure Hashing Algorithm (SHA) គឺជាក្បួនដោះស្រាយ hashing ពីរដែលត្រូវបានប្រើប្រាស់យ៉ាងទូលំទូលាយ។ ការរឹតបន្តឹង ដូចដែលបានរៀបរាប់ខាងលើ វាស្ទើរតែមិនអាចទៅរួចទេក្នុងការឌិគ្រីបទិន្នន័យពីសញ្ញាដែលបានផ្តល់ឱ្យ។ ទោះជាយ៉ាងណាក៏ដោយ នេះជាការពិតតែក្នុងករណីដែលការ hashing ខ្លាំងត្រូវបានអនុវត្ត។ នៅក្នុងករណីនៃការអនុវត្តខ្សោយនៃបច្ចេកទេស hashing ដោយប្រើធនធានគ្រប់គ្រាន់ និងការវាយប្រហារដោយកម្លាំង brute នោះ hacker ជាប់លាប់អាចស្វែងរកទិន្នន័យដែលត្រូវនឹង hash ។ ដូចដែលបានពិភាក្សាខាងលើ វិធីសាស្ត្រអ៊ិនគ្រីបទាំងបីនេះនីមួយៗទទួលរងនូវគុណវិបត្តិមួយចំនួន។ ទោះជាយ៉ាងណាក៏ដោយ នៅពេលដែលការរួមបញ្ចូលគ្នានៃវិធីសាស្រ្តទាំងនេះត្រូវបានប្រើប្រាស់ ពួកវាបង្កើតបានជាប្រព័ន្ធអ៊ីនគ្រីបដែលមានសុវត្ថិភាព និងមានប្រសិទ្ធភាពខ្ពស់។ ភាគច្រើនជាញឹកញាប់ បច្ចេកទេសសោឯកជន និងសាធារណៈត្រូវបានបញ្ចូលគ្នា និងប្រើប្រាស់ជាមួយគ្នា។ វិធីសាស្ត្រសោឯកជនអនុញ្ញាតឱ្យមានការឌិគ្រីបរហ័ស ខណៈពេលដែលវិធីសាស្ត្រសោសាធារណៈផ្តល់នូវវិធីសុវត្ថិភាព និងងាយស្រួលជាងមុនក្នុងការបញ្ជូនសោសម្ងាត់។ ការរួមបញ្ចូលគ្នានៃវិធីសាស្រ្តនេះត្រូវបានគេស្គាល់ថាជា "ស្រោមសំបុត្រឌីជីថល" ។ កម្មវិធីអ៊ិនគ្រីបអ៊ីមែល PGP គឺផ្អែកលើបច្ចេកទេស "ស្រោមសំបុត្រឌីជីថល" ។ Hashing ត្រូវបានប្រើជាមធ្យោបាយពិនិត្យភាពខ្លាំងនៃពាក្យសម្ងាត់។ ប្រសិនបើប្រព័ន្ធរក្សាទុកលេខសម្ងាត់ជំនួសឲ្យពាក្យសម្ងាត់ខ្លួនឯង វានឹងកាន់តែមានសុវត្ថិភាព ព្រោះថាទោះបីជា Hacker ចាប់ដៃគាត់នៅលើ hash នេះក៏ដោយ គាត់នឹងមិនអាចយល់ (អាន) វាបានឡើយ។ កំឡុងពេលផ្ទៀងផ្ទាត់ ប្រព័ន្ធនឹងពិនិត្យលេខសម្ងាត់ចូល ហើយមើលថាតើលទ្ធផលត្រូវនឹងអ្វីដែលត្រូវបានរក្សាទុកឬអត់។ វិធីនេះ ពាក្យសម្ងាត់ពិតប្រាកដនឹងអាចមើលឃើញតែក្នុងរយៈពេលខ្លីប៉ុណ្ណោះ នៅពេលដែលវាត្រូវការផ្លាស់ប្តូរ ឬផ្ទៀងផ្ទាត់ ដោយកាត់បន្ថយលទ្ធភាពនៃការធ្លាក់ចូលទៅក្នុងដៃខុស។ Hashing ក៏ត្រូវបានប្រើដើម្បីផ្ទៀងផ្ទាត់ទិន្នន័យដោយប្រើសោសម្ងាត់ផងដែរ។ សញ្ញាត្រូវបានបង្កើតដោយប្រើទិន្នន័យ និងសោនេះ។ ដូច្នេះ មានតែទិន្នន័យ និងសញ្ញាប៉ុណ្ណោះដែលអាចមើលឃើញ ហើយសោរខ្លួនឯងមិនត្រូវបានបញ្ជូនទេ។ វិធីនេះ ប្រសិនបើការផ្លាស់ប្តូរត្រូវបានធ្វើឡើងចំពោះទិន្នន័យ ឬសញ្ញា ពួកវានឹងត្រូវបានរកឃើញយ៉ាងងាយស្រួល។ សរុបសេចក្តីមក បច្ចេកទេសទាំងនេះអាចត្រូវបានប្រើដើម្បីបំប្លែងទិន្នន័យប្រកបដោយប្រសិទ្ធភាពទៅជាទម្រង់ដែលមិនអាចអានបាន ដែលអាចធានាថាវានៅតែមានសុវត្ថិភាព។ ប្រព័ន្ធទំនើបភាគច្រើនជាធម្មតាប្រើការរួមបញ្ចូលគ្នានៃវិធីសាស្ត្រអ៊ិនគ្រីបទាំងនេះ រួមជាមួយនឹងការអនុវត្តក្បួនដោះស្រាយដ៏រឹងមាំ ដើម្បីបង្កើនសុវត្ថិភាព។ បន្ថែមពីលើសុវត្ថិភាព ប្រព័ន្ធទាំងនេះក៏ផ្តល់អត្ថប្រយោជន៍បន្ថែមជាច្រើនផងដែរ ដូចជាការផ្ទៀងផ្ទាត់អត្តសញ្ញាណរបស់អ្នកប្រើប្រាស់ និងធានាថាទិន្នន័យដែលទទួលបានមិនអាចត្រូវបានរំខាន។ ដូចដែលអ្នកចងចាំ ការផ្លាស់ប្តូរ ការជំនួស លេខសម្ងាត់អនុញ្ញាត និងលេខសម្ងាត់ Vernam អនុវត្តប្រតិបត្តិការទៅតួអក្សរជាក់លាក់នីមួយៗនៃអត្ថបទ។ យើងត្រូវប្តូរ - យើងប្តូរតួអក្សរ អនុវត្តគន្លឹះ - អនុវត្តវាទៅតួអក្សរ បន្ទាប់មកទៅតួអក្សរបន្ទាប់ ហើយបន្តរហូតដល់យើងអ៊ិនគ្រីបតួអក្សរអត្ថបទធម្មតាទាំងអស់។ វិធីសាស្រ្តអ៊ិនគ្រីបនេះត្រូវបានគេហៅថាការអ៊ិនគ្រីបស្ទ្រីម - យើងអ៊ិនគ្រីបតួអក្សរនីមួយៗដោយឡែកពីគ្នា។ វិធីសាស្រ្តមួយផ្សេងទៀតគឺដើម្បីបំបែកអត្ថបទធម្មតាដើមទៅជាក្រុមនៃតួអក្សរជាច្រើន (ប្លុក) និងអនុវត្តប្រតិបត្តិការអ៊ិនគ្រីបនៅលើប្លុកនីមួយៗ។ នេះគឺជាវិធីសាស្ត្រអ៊ិនគ្រីបប្លុក។ ដើម្បីធ្វើឱ្យភាពខុសគ្នារវាង block និង stream ciphers កាន់តែច្បាស់ យើងនឹងផ្តល់ឧទាហរណ៍មួយដោយប្រើ cipher ជំនួសដ៏សាមញ្ញមួយ។ ចូរអ៊ិនគ្រីបពាក្យ CIPHER ដោយប្រើកូដស្ទ្រីមជំនួស៖ យើងបានអ៊ិនគ្រីបតួអក្សរនីមួយៗ ហើយទទួលបានអក្សរសម្ងាត់។ វាមិនអាចសាមញ្ញជាងនេះទេ។ ចូរយើងអ៊ិនគ្រីបពាក្យ AVADAKEDAVRA ។ ដោយសារអក្សរសម្ងាត់គឺជាប្លុកមួយ យើងនឹងបែងចែកអត្ថបទធម្មតាទៅជាប្លុកនៃតួអក្សរបួន៖ AVAD | AKED | AVRA (នៅក្នុងការអនុវត្តប្លុកអត្ថបទមាន 64-256 ប៊ីត) ។ សម្រាប់ប្លុកនីមួយៗ យើងនឹងបង្កើតតារាងជំនួសរបស់យើង៖ ឥឡូវនេះយើងអ៊ិនគ្រីបប្លុកនីមួយៗដោយអក្សរដែលត្រូវគ្នា៖ ឥឡូវនេះ យើងត្រៀមខ្លួនរួចជាស្រេចដើម្បីបន្តទៅកាន់ប្រធានបទដ៏សំខាន់មួយដែលបើកទ្វារទៅកាន់ពិភពគ្មានទីបញ្ចប់នៃប្រព័ន្ធអ៊ិនគ្រីបទំនើប។ បណ្តាញ Feistel គឺជាវិធីសាស្រ្តអ៊ិនគ្រីបប្លុកដែលត្រូវបានបង្កើតឡើងដោយ Horst Feistel នៅមន្ទីរពិសោធន៍ IBM ក្នុងឆ្នាំ 1971 ។ សព្វថ្ងៃនេះបណ្តាញ Feistel បង្កប់នូវពិធីការគ្រីបគ្រីបមួយចំនួនធំ។ តោះព្យាយាមស្វែងយល់ថា "នៅលើម្រាមដៃ" វាជាអ្វី។ បណ្តាញ Feistel ដំណើរការលើប្លុកនៃអត្ថបទធម្មតា ដូច្នេះយើងនឹងពិនិត្យមើលយន្តការនៃប្រតិបត្តិការរបស់វានៅលើប្លុកមួយក្នុងចំណោមប្លុក។ សកម្មភាពសម្រាប់ប្លុកដែលនៅសល់នឹងស្រដៀងគ្នា។ ដូចដែលអ្នកអាចឃើញអ្វីគ្រប់យ៉ាងគឺសាមញ្ញណាស់។ ដើម្បីយល់ពីរបៀបដែលវាដំណើរការសូមមើលដ្យាក្រាម: ការរៀបចំនេះត្រូវបានគេហៅថាកោសិកា Feistel ។ បណ្តាញ Feistel ខ្លួនវាមានកោសិកាជាច្រើន។ ប្លុករងដែលទទួលបាននៅលទ្ធផលនៃក្រឡាទីមួយទៅកាន់ធាតុបញ្ចូលនៃក្រឡាទីពីរ ប្លុករងលទ្ធផលពីក្រឡាទីពីរទៅកាន់ធាតុបញ្ចូលនៃក្រឡាទីបី ហើយដូច្នេះនៅលើ អាស្រ័យលើចំនួនជុំនៃបណ្តាញ Feistel ។ នៅក្នុងជុំនីមួយៗ គ្រាប់ចុចមូលដែលបានកំណត់ទុកជាមុនត្រូវបានប្រើ។ ភាគច្រើនជាញឹកញាប់ គ្រាប់ចុចមូលត្រូវបានបង្កើតចេញពីគន្លឹះសម្ងាត់សំខាន់ K. នៅពេលដែលការជុំទាំងអស់ត្រូវបានបញ្ចប់ ប្លុករងនៃអត្ថបទត្រូវបានស្អិតជាប់គ្នា ហើយអត្ថបទសម្ងាត់ធម្មតាត្រូវបានទទួល។ ឥឡូវនេះសូមក្រឡេកមើលប្រតិបត្តិការនៃបណ្តាញ Feistel ដោយប្រើឧទាហរណ៍មួយ។ ចូរយកពាក្យ AVADAKEDAVRA មកចែកជាពីរប្លុកនៃតួអក្សរប្រាំមួយ - AVADAKEDAVRA | អេដាវរ៉ា។ សម្រាប់មុខងារ យើងយក shift cipher ដោយចំនួនទីតាំងកំណត់ដោយគ្រាប់ចុចមូល។ សូមឱ្យគន្លឹះសម្ងាត់ K = ។ ជាគ្រាប់ចុចមូល យើងយក K = 1, K = 2 ។ សម្រាប់បន្ថែមម៉ូឌុល 2 យើងបំប្លែងអត្ថបទទៅជាកូដគោលពីរតាមអក្ខរក្រមតេឡេក្រាម ដែលស្ទើរតែគ្មាននរណាប្រើទាល់តែសោះ។ នេះជាអ្វីដែលបានកើតឡើង៖ ឥឡូវនេះសូមដំណើរការប្លុកទីមួយតាមរយៈបណ្តាញ Feistel ជាពីរជុំ៖ ព្យាយាមអ៊ិនគ្រីបប្លុកទីពីរដោយខ្លួនឯងខ្ញុំទទួលបាន MOSSTR ។ ការឌិគ្រីបត្រូវបានអនុវត្តតាមរបៀបដូចគ្នា៖ ciphertext ត្រូវបានបែងចែកទៅជាប្លុក ហើយបន្ទាប់មកប្លុករង ប្លុករងខាងឆ្វេងចូលមុខងារ ត្រូវបានបន្ថែមម៉ូឌុល 2 ជាមួយខាងស្តាំ ហើយបន្ទាប់មកប្លុករងត្រូវបានប្តូរ។ ភាពខុសគ្នានោះគឺថា គ្រាប់ចុចជុំត្រូវបានដាក់ក្នុងលំដាប់បញ្ច្រាស នោះគឺក្នុងករណីរបស់យើង ក្នុងជុំទីមួយ យើងនឹងប្រើគ្រាប់ចុច K = 2 ហើយបន្ទាប់មកនៅជុំទីពីរ K = 1 ។ ការស្រាវជ្រាវលើបណ្តាញ Feistel បានបង្ហាញថាជាមួយនឹងគ្រាប់ចុចមូលឯករាជ្យ និងមុខងារ pseudo-random f ដែលអាចធន់ទ្រាំនឹង crypto-f, បីជុំនៃបណ្តាញ Feistel នឹងគ្រប់គ្រាន់សម្រាប់ ciphertext ទៅជា pseudo-random ។ នេះបង្ហាញថាអ្នកសរសេរកូដដែលមានមូលដ្ឋានលើបណ្តាញ Feistel បច្ចុប្បន្នមានសុវត្ថិភាពណាស់។ យើងមានគំនិតចាំបាច់ស្ទើរតែទាំងអស់នៅក្នុងឃ្លាំងអាវុធរបស់យើងរួចហើយ ដូច្នេះយើងត្រៀមខ្លួនដើម្បីបន្តទៅប្រធានបទសំខាន់ដំបូងនៃការគ្រីបក្នុងស្រុក - GOST 28147-89 ។ វាគឺមានតំលៃនិយាយថាមានតែមនុស្សខ្ជិលដែលមិនបានសរសេរអំពីស្តង់ដារនេះទេ ដូច្នេះខ្ញុំនឹងព្យាយាមរាប់លាន និងជាលើកដំបូងក្នុងរយៈពេលខ្លី និងដោយគ្មានពពកនៃរូបមន្តបង្ហាញពីខ្លឹមសារនៃរបៀបអ៊ិនគ្រីបនៃ Magma ដ៏អស្ចារ្យ និងដ៏គួរឱ្យភ័យខ្លាច។ ប្រសិនបើអ្នកសម្រេចចិត្តអានស្តង់ដារដោយខ្លួនឯង អ្នកគួរតែស្តុកទុកលើពេលវេលា ថាមពល ភាពអត់ធ្មត់ និងអាហារ ព្រោះដូចដែលអ្នកដឹងស្រាប់ ការសរសេរស្តង់ដារជាភាសាមនុស្សត្រូវបានហាមឃាត់យ៉ាងតឹងរ៉ឹង។ មុនពេលវិភាគ Magma អ្នកត្រូវរៀនគំនិតថ្មី - តារាងជំនួសឬ S-box ។ នេះជាប្រភេទតារាងដូចគ្នានឹងតារាងក្នុងលេខកូដជំនួស។ រចនាឡើងដើម្បីជំនួសនិមិត្តសញ្ញាប្លុករងជាមួយនឹងនិមិត្តសញ្ញាដែលបានកត់ត្រាក្នុងតារាង។ កុំគិតថា S-box គឺជាលេខចៃដន្យដែលបង្កើតដោយអនុគមន៍ rand()។ S-boxes គឺជាលទ្ធផលនៃលំដាប់ដែលបានបង្កើតដោយគិត ពីព្រោះកម្លាំងគ្រីបគ្រីបនៃកូដសម្ងាត់ទាំងមូលស្ថិតនៅលើពួកវា។ GOST 28147 ពិពណ៌នាអំពីតារាងជំនួសរបស់វាយ៉ាងតិច។ វាគ្រាន់តែនិយាយថាពួកវាជាធាតុសម្ងាត់បន្ថែម (រួមជាមួយនឹងសោសម្ងាត់) ហើយត្រូវបាន "ចែកចាយតាមលក្ខណៈដែលបានកំណត់"។ គ្មានអ្វីទៀតទេ។ ចាប់តាំងពីការអនុម័ត GOST 28147 ភាពមិនច្បាស់លាស់ខាងវិទ្យាសាស្ត្រនិងបច្ចេកទេសដែលទាក់ទងនឹងជម្រើសនៃប្រអប់ S បានបង្កើតឱ្យមានពាក្យចចាមអារ៉ាមនិងការរំពឹងទុក។ មានការនិយាយអំពីលក្ខណៈវិនិច្ឆ័យសម្ងាត់ដែលស្គាល់តែចំពោះអ្នកអភិវឌ្ឍន៍ GOST ប៉ុណ្ណោះ។ តាមធម្មជាតិ ភាពមិនប្រាកដប្រជានេះបានកាត់បន្ថយទំនុកចិត្តលើប្រព័ន្ធគ្រីបតូ។ កង្វះខាតនេះបានផ្តល់ហេតុផលដ៏ល្អសម្រាប់ការរិះគន់លើស្តង់ដារ។ អ្នកសរសេរកូដជនជាតិបារាំង Nicolas Courtois បានបោះពុម្ពអត្ថបទជាច្រើនដែលមានបទប្បញ្ញត្តិដ៏ចម្រូងចម្រាសមួយចំនួនទាក់ទងនឹងកម្លាំងរបស់ GOST ។ Courtois ជឿជាក់ថាស្តង់ដាររុស្ស៊ីគឺងាយស្រួលវាយលុក ហើយមិនអាចចាត់ទុកជាអន្តរជាតិបានទេ។ ទោះជាយ៉ាងណាក៏ដោយ Courtois ធ្វើការវិភាគរបស់គាត់សម្រាប់ S-boxes ខុសពីការពិត ដូច្នេះអ្នកមិនគួរពឹងផ្អែកលើគំនិតរបស់គាត់ទេ។ នៅក្នុងរបៀបជំនួសសាមញ្ញសម្រាប់ 32 ជុំយោងទៅតាមស្តង់ដារយើងត្រូវការគ្រាប់ចុចជុំចំនួន 32 ។ ដើម្បីបង្កើតសោមូល គន្លឹះដើម 256 ប៊ីតត្រូវបានបែងចែកទៅជាប្លុក 32 ប៊ីតចំនួនប្រាំបី៖ K1…K8 ។ គ្រាប់ចុច K9...K24 គឺជាពាក្យដដែលៗនៃគ្រាប់ចុច K1...K8 ។ សោ K25…K32 គឺជាសោ K8…K1។ គ្រាន់តែជាឧទាហរណ៍មួយជុំប៉ុណ្ណោះ។ គន្លឹះ ២៥៦ ប៊ីត៖ arvadek adava arvadek adava arvadek adava arvadek adava arva 00011
01010
11110
00011
01001
00001
01111
00011
01001
00011
11110
00011...
.
.
.
00011
01010
11110
0
បន្ទាប់មកគ្រាប់ចុចមូល K1 = 00011 01010 11110 00011 01001 00001 01 K2 = 111 00011 01001 00011 11110 00011 0001 K3 = ។ . . S - ប្រអប់ = [ 1 , 15 , 13 , 0 , 5 , 7 , 10 , 4 , 9 , 2 , 3 , 14 , 6 , 11 , 8 , 12 ] តើត្រូវប្រើ S-box នេះដោយរបៀបណា? សាមញ្ញណាស់! ប្រសិនបើការបញ្ចូលរបស់ S-box គឺ 0 នោះលទ្ធផលនឹងជា 1 (យកនិមិត្តសញ្ញាទី 0 នៃ S-box) ប្រសិនបើ 4 បន្ទាប់មកលទ្ធផលនឹងមាន 5 (យកនិមិត្តសញ្ញាទី 4) ប្រសិនបើការបញ្ចូលគឺ 7 បន្ទាប់មកលទ្ធផលនឹងមាន 4 ហើយដូច្នេះនៅលើ។ អត្ថបទធម្មតា៖ បែងចែកជាពីរប្លុក 32 ប៊ីតនៃប៊ីតខ្ពស់ និងទាប៖ ជាការពិតណាស់ឧទាហរណ៍បានប្រែទៅជាព្រៃពីព្រោះ GOST នៅតែមិនមែនជាស្តង់ដារដែលមនុស្សគ្រប់គ្នាអាចឆ្លងកាត់វាដោយដៃរបស់ពួកគេផ្ទាល់។ របៀបជំនួសធម្មតាគឺសាមញ្ញពេក ហើយមានគុណវិបត្តិសំខាន់ៗ៖ ដូច្នេះ គួរប្រើ GOST 28147-89 ក្នុងរបៀបជំនួសសាមញ្ញសម្រាប់តែការអ៊ិនគ្រីបទិន្នន័យគន្លឹះប៉ុណ្ណោះ។ របៀបនេះមិនមានគុណវិបត្តិនៃរបៀបជំនួសសាមញ្ញទេ។ របៀបហ្គាម៉ាត្រូវបានគេហៅថា ព្រោះវាប្រើហ្គាម៉ា ដែលជាលំដាប់ចៃដន្យ ដែលត្រូវបានបន្ថែមម៉ូឌុល 2 ទៅអត្ថបទធម្មតាក្នុងជុំនីមួយៗ។ ហ្គាម៉ាត្រូវបានបង្កើតឡើងពីសារធ្វើសមកាលកម្ម S - លំដាប់ចៃដន្យដែលផ្លាស់ប្តូរជាមួយនឹងការធ្វើម្តងទៀតនីមួយៗ ហើយត្រូវបានអ៊ិនគ្រីបក្នុងរបៀបជំនួសសាមញ្ញ បន្ទាប់មកវាប្រែទៅជាហ្គាម៉ា និងត្រូវបានដាក់លើអត្ថបទធម្មតា។ ហើយឥឡូវនេះអ្វីគ្រប់យ៉ាងគឺស្ថិតនៅក្នុងលំដាប់។ ជំហាន 3-5 ត្រូវបានធ្វើម្តងទៀតសម្រាប់ប្លុកនីមួយៗ។ ឧបាយកលទាំងអស់នេះអាចមើលឃើញនៅក្នុងដ្យាក្រាម។ ចូរយើងកាន់តែស្មុគស្មាញ។ ក្បួនដោះស្រាយគឺស្រដៀងទៅនឹងរបៀបហ្គាម៉ា ប៉ុន្តែហ្គាម៉ាត្រូវបានបង្កើតឡើងដោយផ្អែកលើប្លុកមុននៃទិន្នន័យដែលបានអ៊ិនគ្រីប ដូច្នេះលទ្ធផលនៃការអ៊ិនគ្រីបនៃប្លុកបច្ចុប្បន្នក៏អាស្រ័យលើប្លុកពីមុនផងដែរ។ 1. ការធ្វើសមកាលកម្មសារ S - 64-bit pseudo-random sequence ។ 2. S ត្រូវបានអ៊ិនគ្រីបក្នុងរបៀបជំនួសសាមញ្ញ។ នៅក្នុងរបៀបនេះ ការបញ្ចូលក្លែងធ្វើត្រូវបានបង្កើត - ប្លុកបន្ថែមនៃប្រវែងថេរ អាស្រ័យលើអត្ថបទប្រភព និងគ្រាប់ចុច។ ប្លុកតូចមួយបែបនេះគឺចាំបាច់ដើម្បីបញ្ជាក់ថាគ្មានការបង្ខូចទ្រង់ទ្រាយណាមួយត្រូវបានណែនាំដោយចៃដន្យ ឬដោយចេតនាចូលទៅក្នុងអត្ថបទសម្ងាត់នោះទេ ពោលគឺដើម្បីពិនិត្យមើលភាពត្រឹមត្រូវ។ របៀបនេះដំណើរការដូចនេះ៖ 1. ប្លុកនៃអត្ថបទធម្មតាឆ្លងកាត់ 16 ជុំក្នុងរបៀបជំនួសសាមញ្ញ។ ដើម្បីផ្ទៀងផ្ទាត់ អ្នកទទួល បន្ទាប់ពីឌិគ្រីបអត្ថបទ អនុវត្តនីតិវិធីស្រដៀងនឹងអ្វីដែលបានពិពណ៌នា។ ប្រសិនបើលទ្ធផលមិនត្រូវគ្នានឹងការបញ្ចូលត្រាប់តាមដែលបានបញ្ជូននោះ ប្លុក M ដែលត្រូវគ្នាទាំងអស់ត្រូវបានចាត់ទុកថាមិនពិត។ មនុស្សជាច្រើនចាត់ទុកថា GOST 28147-89 ហួសសម័យហើយមិនរឹងមាំគ្រប់គ្រាន់ទេបើប្រៀបធៀបទៅនឹងក្បួនដោះស្រាយបរទេស។ ដើម្បីជំនួសវា អ្នកសរសេរកូដក្នុងស្រុកបានចេញផ្សាយស្តង់ដារអ៊ិនគ្រីបថ្មី។ ពួកគេនិយាយថាវាកើតឡើងដោយសារតែចំនួនច្រើននៃការវាយប្រហារលើ GOST ចាស់ ឬដោយសារតែប្រវែងប្លុកនេះគឺហួសសម័យហើយ និងតូចពេកសម្រាប់សំណុំទិន្នន័យទំនើប។ គ្មានអ្នកណាផ្សាយពីមូលហេតុពិតទេ។ ជាការពិតណាស់មានការផ្លាស់ប្តូរមួយចំនួនចំពោះលក្ខណៈសំខាន់ៗ។ វាក៏មានតម្លៃផងដែរក្នុងការនិយាយថានៅក្នុងស្តង់ដារថ្មី ប្រអប់ S ត្រូវបានជួសជុល និងគិតគូរ ដូច្នេះមិនចាំបាច់បង្កើតការជំនួសដោយអព្ភូតហេតុផ្ទាល់ខ្លួនរបស់អ្នកទេ។ GOST ថ្មីមានរបៀបអ៊ិនគ្រីបជាច្រើនទៀត៖ ដូចដែលត្រូវបានគេមើលឃើញនៅក្នុងស្តង់ដារមុន របៀបជំនួសដ៏សាមញ្ញគឺជាម៉ូដដែលខ្សោយបំផុត ដូច្នេះនៅក្នុងស្តង់ដារថ្មីឥឡូវនេះវាលាតសន្ធឹងជាមួយនឹងការចូលរួម ហើយបានក្លាយទៅជាមិនសាមញ្ញទាល់តែសោះ។ នៅពេលដែលអ្នកក្រឡេកមើលដ្យាក្រាម អ្វីៗនឹងច្បាស់ភ្លាមៗ។ ជាការពិតណាស់ វ៉ិចទ័រការចាប់ផ្តើមគឺមិនសាមញ្ញនោះទេ៖ វាឆ្លងកាត់ស៊េរីនៃការផ្លាស់ប្តូរលីនេអ៊ែរ (ដោយប្រើការចុះឈ្មោះការផ្លាស់ប្តូរលីនេអ៊ែរ) មុនពេលវាចាប់ផ្តើមអ៊ិនគ្រីបប្លុកថ្មី។ ប៉ុន្តែដើម្បីស្គាល់ស៊ីហ្វឺរវាគ្រប់គ្រាន់ដើម្បីស្រមៃមើលគ្រោងការណ៍បែបនេះ។ ការឌិគ្រីបក្នុងរបៀបនេះក៏មិនច្បាស់ទាំងស្រុងដែរ ដូច្នេះវាល្អប្រសើរក្នុងការមើលដ្យាក្រាម។ សម្រាប់ pluses - ការអ៊ិនគ្រីប។ ក្នុងចំណោមការអភិវឌ្ឍន៍ក្នុងស្រុកគឺអ្នកផ្តល់សេវាគ្រីបតូ CryptoPro CSP ។ ពាក្យពីរបីអំពីភាពខ្លាំងនៃរបៀបអ៊ិនគ្រីប។ អ្នកសរសេរកូដបរទេសជាច្រើនបានព្យាយាមលើកដៃប្រឆាំងនឹងស្តង់ដាររបស់យើង ប៉ុន្តែនៅពេលនេះមិនមានការវាយប្រហារតែមួយដែលគេដឹងថាអាចត្រូវបានអនុវត្តនៅកម្រិតនៃការអភិវឌ្ឍន៍បច្ចេកវិទ្យាបច្ចុប្បន្ននោះទេ។ អស់រយៈពេលជាយូរមកហើយស្តង់ដារនេះមិនមានប្រជាប្រិយភាពខ្លាំងក្នុងចំណោមអ្នកសរសេរកម្មវិធីទេព្រោះវាពិបាកក្នុងការយល់ពីក្បួនដោះស្រាយប្រតិបត្តិការពីអត្ថបទរបស់វាហើយមិនមានការពិពណ៌នាច្បាស់លាស់គ្រប់គ្រាន់ទេ។ ប៉ុន្តែឥឡូវនេះមានការអនុវត្តជាច្រើនរួចទៅហើយនៅក្នុងភាសាសរសេរកម្មវិធីជាច្រើន។ ដូច្នេះឥឡូវនេះការប្រើប្រាស់ GOST គឺអាចធ្វើទៅបានហើយក្នុងការគោរពជាច្រើនវាលើសពីស្តង់ដារបរទេស។ ទីបំផុតស្នេហាជាតិនៅឯណា?! សេចក្តីផ្តើម បញ្ហានៃការការពារព័ត៌មានដោយការបំប្លែងវាដើម្បីកុំឱ្យមានការអានដោយអ្នកខាងក្រៅបានធ្វើឱ្យចិត្តមនុស្សមានការព្រួយបារម្ភតាំងពីបុរាណកាលមក។ ប្រវត្តិនៃការគ្រីបគ្រីប គឺជាប្រវតិ្តសាស្រ្តនៃភាសាមនុស្ស។ ជាងនេះទៅទៀត ការសរសេរដោយខ្លួនវាគឺដើមឡើយជាប្រព័ន្ធគ្រីបគ្រីប ព្រោះនៅក្នុងសង្គមបុរាណមានតែមនុស្សមួយចំនួនប៉ុណ្ណោះដែលស្ទាត់ជំនាញវា។ សៀវភៅពិសិដ្ឋនៃប្រទេសអេហ្ស៊ីបបុរាណ និងឥណ្ឌាបុរាណគឺជាឧទាហរណ៍នៃរឿងនេះ។ ជាមួយនឹងការប្រើប្រាស់យ៉ាងទូលំទូលាយនៃការសរសេរ ការគ្រីបគ្រីបបានចាប់ផ្តើមលេចចេញជាវិទ្យាសាស្ត្រឯករាជ្យ។ ប្រព័ន្ធគ្រីបតូដំបូងគេត្រូវបានរកឃើញរួចហើយនៅដើមយុគសម័យរបស់យើង។ ដូច្នេះ សេសារនៅក្នុងការឆ្លើយឆ្លងរបស់គាត់បានប្រើលេខកូដប្រព័ន្ធច្រើនឬតិច ដែលទទួលបានឈ្មោះរបស់គាត់។ ប្រព័ន្ធ Cryptographic បានអភិវឌ្ឍយ៉ាងឆាប់រហ័សក្នុងកំឡុងឆ្នាំនៃសង្គ្រាមលោកលើកទីមួយ និងលើកទីពីរ។ ចាប់ពីសម័យក្រោយសង្គ្រាមរហូតដល់បច្ចុប្បន្ន ការមកដល់នៃកុំព្យូទ័របានពន្លឿនការអភិវឌ្ឍន៍ និងការកែលម្អវិធីសាស្ត្រគ្រីបគ្រីប។ ហេតុអ្វីបានជាបញ្ហានៃការប្រើវិធីគ្រីបក្នុងប្រព័ន្ធព័ត៌មាន (IS) មានការពាក់ព័ន្ធជាពិសេសនៅពេលនេះ? ម៉្យាងវិញទៀត ការប្រើប្រាស់បណ្តាញកុំព្យូទ័របានរីកធំឡើង ជាពិសេសអ៊ីនធឺណែតសកល ដែលតាមរយៈនោះបរិមាណដ៏ធំនៃព័ត៌មានរបស់រដ្ឋ យោធា ពាណិជ្ជកម្ម និងឯកជនត្រូវបានបញ្ជូន រារាំងអ្នកដែលគ្មានការអនុញ្ញាតពីការចូលប្រើវា។ ម៉្យាងវិញទៀត ការលេចចេញនូវកុំព្យូទ័រដ៏មានឥទ្ធិពលថ្មី បណ្តាញ និងបច្ចេកវិទ្យាកុំព្យូទ័រសរសៃប្រសាទបានធ្វើឱ្យវាអាចធ្វើទៅបានដើម្បីបង្ខូចប្រព័ន្ធគ្រីបគ្រីបដែលរហូតមកដល់ពេលថ្មីៗនេះត្រូវបានគេចាត់ទុកថាមិនអាចបំបែកបាន។ នៅក្នុងជំពូកដំបូងនៃការងារនេះ អ្នកអាចស្គាល់ពីគោលគំនិតជាមូលដ្ឋាននៃការគ្រីបទំនើប តម្រូវការសម្រាប់ពួកគេ និងលទ្ធភាពនៃការអនុវត្តជាក់ស្តែងរបស់វា។ នៅក្នុងជំពូកទីពីរ យើងធ្វើការជាមួយពិធីការចែកចាយសោគ្រីប គំនិតនៃហត្ថលេខាអេឡិចត្រូនិក និងពិធីការហត្ថលេខាអេឡិចត្រូនិក។ ជំពូកទីបីនៃការងារនេះនិយាយអំពីមុខងារ hash និង (វិធីសាស្រ្តនៃ) algorithms សម្រាប់ការសាងសង់របស់ពួកគេ។ ជំពូកទីបួននឹងនិយាយអំពីការធ្វើទំនើបកម្មនៃហត្ថលេខាអេឡិចត្រូនិក El Gamal និងបញ្ហាលោការីតដាច់ដោយឡែក។ ជំពូកទី 1. គោលគំនិតជាមូលដ្ឋាននៃការគ្រីបទំនើប Cryptology (kryptos - secret, logos - science) ដោះស្រាយបញ្ហានៃការការពារព័ត៌មានដោយការបំប្លែងវា។ គ្រីបវិទ្យាត្រូវបានបែងចែកជាពីរផ្នែក - គ្រីបគ្រីប និងការវិភាគគ្រីប។ គោលដៅនៃទិសដៅទាំងនេះគឺផ្ទុយដោយផ្ទាល់។ Cryptography ទាក់ទងនឹងការស្វែងរក និងសិក្សាវិធីសាស្ត្រគណិតវិទ្យាសម្រាប់បំប្លែងព័ត៌មាន។ តំបន់ចាប់អារម្មណ៍នៃ cryptanalysis គឺជាការសិក្សាអំពីលទ្ធភាពនៃការឌិគ្រីបព័ត៌មានដោយមិនស្គាល់សោ។ ការងារនេះនឹងផ្តោតលើវិធីសាស្រ្តគ្រីប។ ការគ្រីបគ្រីបសម័យទំនើបរួមមានផ្នែកសំខាន់ៗចំនួនបួន៖ ប្រព័ន្ធគ្រីបតូស៊ីមេទ្រី។ ប្រព័ន្ធគ្រីបសោសាធារណៈ។ ប្រព័ន្ធហត្ថលេខាអេឡិចត្រូនិក។ ការគ្រប់គ្រងគន្លឹះ។ ផ្នែកសំខាន់នៃការប្រើប្រាស់វិធីសាស្ត្រគ្រីបគ្រីបគឺការផ្ទេរព័ត៌មានសម្ងាត់តាមរយៈបណ្តាញទំនាក់ទំនង (ឧទាហរណ៍ អ៊ីមែល) បង្កើតភាពត្រឹមត្រូវនៃសារដែលបានបញ្ជូន រក្សាទុកព័ត៌មាន (ឯកសារ មូលដ្ឋានទិន្នន័យ) នៅលើប្រព័ន្ធផ្សព្វផ្សាយក្នុងទម្រង់ដែលបានអ៊ិនគ្រីប។ ការសរសេរកូដសម្ងាត់ធ្វើឱ្យវាអាចបំប្លែងព័ត៌មានក្នុងរបៀបដែលការអានរបស់វា (ការស្ដារ)គឺអាចធ្វើទៅបានលុះត្រាតែស្គាល់សោរ។ អត្ថបទផ្អែកលើអក្ខរក្រមជាក់លាក់មួយនឹងត្រូវបានចាត់ទុកថាជាព័ត៌មានដែលត្រូវអ៊ិនគ្រីប និងឌិគ្រីប។ ពាក្យទាំងនេះមានន័យដូចខាងក្រោម។ អក្ខរក្រមគឺជាសំណុំសញ្ញាកំណត់ដែលប្រើដើម្បីអ៊ិនកូដព័ត៌មាន។ អត្ថបទគឺជាសំណុំនៃធាតុអក្ខរក្រមតាមលំដាប់។ ខាងក្រោមនេះជាឧទាហរណ៍នៃអក្ខរក្រមដែលប្រើក្នុងប្រព័ន្ធព័ត៌មានទំនើប៖ អក្ខរក្រម Z33 - អក្សរ 32 នៃអក្ខរក្រមរុស្ស៊ីនិងចន្លោះមួយ; អក្ខរក្រម Z256 - តួអក្សររួមបញ្ចូលនៅក្នុងកូដស្តង់ដារ ASCII និង KOI-8; អក្ខរក្រមគោលពីរ - Z2 = (0,1); អក្ខរក្រមគោលប្រាំបី ឬអក្ខរក្រមគោលដប់ប្រាំមួយ; ការអ៊ិនគ្រីបគឺជាដំណើរការបំប្លែង៖ អត្ថបទដើម ដែលហៅថា អត្ថបទធម្មតា ត្រូវបានជំនួសដោយអក្សរសម្ងាត់។ ការឌិគ្រីបគឺជាដំណើរការបញ្ច្រាសនៃការអ៊ិនគ្រីប។ ដោយផ្អែកលើគន្លឹះ អត្ថបទសម្ងាត់ត្រូវបានបំប្លែងទៅជាអក្សរដើម។ គន្លឹះគឺជាព័ត៌មានចាំបាច់សម្រាប់ការអ៊ិនគ្រីប និងការឌិគ្រីបអត្ថបទដោយរលូន។ ប្រព័ន្ធគ្រីបគ្រីបគឺជាក្រុមគ្រួសារនៃការផ្លាស់ប្តូរអត្ថបទធម្មតា T ។ សមាជិកនៃគ្រួសារនេះត្រូវបានធ្វើលិបិក្រម ឬកំណត់ដោយនិមិត្តសញ្ញា k; ប៉ារ៉ាម៉ែត្រ k គឺជាគន្លឹះ។ ចន្លោះគន្លឹះ K គឺជាសំណុំនៃតម្លៃគន្លឹះដែលអាចធ្វើបាន។ ជាធម្មតា គ្រាប់ចុចគឺជាស៊េរីបន្តបន្ទាប់នៃអក្សរនៃអក្ខរក្រម។ ប្រព័ន្ធគ្រីបតូត្រូវបានបែងចែកទៅជាស៊ីមេទ្រី និងសោសាធារណៈ។ នៅក្នុងប្រព័ន្ធគ្រីបតូស៊ីមេទ្រី សោដូចគ្នាត្រូវបានប្រើសម្រាប់ទាំងការអ៊ិនគ្រីប និងការឌិគ្រីប។ ប្រព័ន្ធសោសាធារណៈប្រើសោពីរ គឺសាធារណៈ និងឯកជន ដែលទាក់ទងគ្នាតាមគណិតវិទ្យា។ ព័ត៌មានត្រូវបានអ៊ិនគ្រីបដោយប្រើសោសាធារណៈ ដែលមានសម្រាប់មនុស្សគ្រប់គ្នា ហើយត្រូវបានឌិគ្រីបដោយប្រើសោឯកជន ដែលស្គាល់តែអ្នកទទួលសារប៉ុណ្ណោះ។ លក្ខខណ្ឌនៃការចែកចាយកូនសោ និងការគ្រប់គ្រងសោ សំដៅលើដំណើរការនៃប្រព័ន្ធដំណើរការព័ត៌មាន ដែលជាខ្លឹមសារនៃការចងក្រង និងការចែកចាយកូនសោរវាងអ្នកប្រើប្រាស់។ ហត្ថលេខាអេឡិចត្រូនិក (ឌីជីថល) គឺជាការបំប្លែងកូដសម្ងាត់ដែលភ្ជាប់ទៅនឹងអត្ថបទ ដែលអនុញ្ញាតឱ្យនៅពេលអត្ថបទត្រូវបានទទួលដោយអ្នកប្រើប្រាស់ផ្សេងទៀត ដើម្បីផ្ទៀងផ្ទាត់ភាពជាអ្នកនិពន្ធ និងភាពត្រឹមត្រូវនៃសារ។ ភាពខ្លាំងនៃការគ្រីបគ្រីបគឺជាលក្ខណៈនៃលេខកូដសម្ងាត់ដែលកំណត់ភាពធន់របស់វាចំពោះការឌិគ្រីបដោយមិនដឹងពីគន្លឹះ (ឧ. ការវិភាគគ្រីប)។ មានសូចនាករជាច្រើននៃកម្លាំងគ្រីប រួមមាន: ចំនួនគ្រាប់ចុចដែលអាចធ្វើបានទាំងអស់; ពេលវេលាជាមធ្យមដែលត្រូវការសម្រាប់ការវិភាគគ្រីប។ ការបំលែង Tk ត្រូវបានកំណត់ដោយក្បួនដោះស្រាយដែលត្រូវគ្នានិងតម្លៃនៃប៉ារ៉ាម៉ែត្រ k ។ ប្រសិទ្ធភាពនៃការអ៊ិនគ្រីបដើម្បីការពារព័ត៌មានគឺអាស្រ័យលើការរក្សាភាពសម្ងាត់នៃសោរ និងកម្លាំងគ្រីបគ្រីបរបស់ស៊ីបភឺរ។ ដំណើរការនៃការបិទទិន្នន័យគ្រីបអាចត្រូវបានអនុវត្តទាំងនៅក្នុងផ្នែកទន់ ឬផ្នែករឹង។ ការអនុវត្តផ្នែករឹងមានតម្លៃថ្លៃជាង ប៉ុន្តែវាមានគុណសម្បត្តិផងដែរ៖ ដំណើរការខ្ពស់ ភាពសាមញ្ញ សុវត្ថិភាព។ល។ ការអនុវត្តកម្មវិធីគឺជាក់ស្តែងជាង និងអនុញ្ញាតឱ្យមានភាពបត់បែនជាក់លាក់ក្នុងការប្រើប្រាស់។ តម្រូវការដែលទទួលយកជាទូទៅខាងក្រោមត្រូវបានបង្កើតឡើងសម្រាប់ប្រព័ន្ធសុវត្ថិភាពព័ត៌មានសម្ងាត់ទំនើប៖ សារដែលបានអ៊ិនគ្រីបត្រូវតែអាចអានបានលុះត្រាតែមានសោ។ ចំនួននៃប្រតិបត្តិការដែលត្រូវការដើម្បីកំណត់សោអ៊ិនគ្រីបដែលបានប្រើពីបំណែកនៃសារដែលបានអ៊ិនគ្រីប ហើយអត្ថបទធម្មតាដែលត្រូវគ្នាត្រូវតែមិនតិចជាងចំនួនសរុបនៃសោដែលអាចធ្វើបាន។ ចំនួននៃប្រតិបត្តិការដែលត្រូវការដើម្បីឌិគ្រីបព័ត៌មានដោយការស្វែងរកតាមរយៈគ្រាប់ចុចដែលអាចធ្វើបានទាំងអស់ត្រូវតែមានដែនកំណត់ទាបជាងយ៉ាងតឹងរឹង និងហួសពីសមត្ថភាពរបស់កុំព្យូទ័រទំនើប (ដោយគិតគូរពីលទ្ធភាពនៃការប្រើប្រាស់កុំព្យូទ័របណ្តាញ); ចំណេះដឹងនៃក្បួនដោះស្រាយការអ៊ិនគ្រីបមិនគួរប៉ះពាល់ដល់ភាពជឿជាក់នៃការការពារនោះទេ។ ការផ្លាស់ប្តូរបន្តិចនៃសោគួរតែនាំទៅរកការផ្លាស់ប្តូរយ៉ាងសំខាន់នៅក្នុងរូបរាងនៃសារដែលបានអ៊ិនគ្រីប សូម្បីតែនៅពេលប្រើសោដូចគ្នាក៏ដោយ។ ធាតុរចនាសម្ព័ន្ធនៃក្បួនដោះស្រាយការអ៊ិនគ្រីបត្រូវតែមិនផ្លាស់ប្តូរ។ ប៊ីតបន្ថែមដែលបានណែនាំទៅក្នុងសារកំឡុងពេលដំណើរការអ៊ិនគ្រីបត្រូវតែលាក់ទាំងស្រុង និងដោយសុវត្ថិភាពនៅក្នុងអត្ថបទសម្ងាត់។ ប្រវែងនៃអត្ថបទសម្ងាត់ត្រូវតែស្មើនឹងប្រវែងនៃអត្ថបទដើម។ មិនគួរមានភាពអាស្រ័យសាមញ្ញ និងងាយស្រួលបង្កើតរវាងសោដែលប្រើជាបន្តបន្ទាប់ក្នុងដំណើរការអ៊ិនគ្រីបនោះទេ។ គ្រាប់ចុចណាមួយដែលអាចធ្វើទៅបានត្រូវតែផ្តល់ការការពារព័ត៌មានដែលអាចទុកចិត្តបាន។ ក្បួនដោះស្រាយត្រូវតែអនុញ្ញាតឱ្យអនុវត្តទាំងផ្នែកទន់ និងផ្នែករឹង ខណៈពេលដែលការផ្លាស់ប្តូរប្រវែងសោមិនគួរនាំឱ្យមានការខ្សោះជីវជាតិនៃក្បួនដោះស្រាយការអ៊ិនគ្រីបនោះទេ។ ជំពូកទី 2. ពិធីការចែកចាយសោគ្រីប និងពិធីការហត្ថលេខាអេឡិចត្រូនិក។ មិនថាប្រព័ន្ធគ្រីបគ្រីបមានភាពស្មុគ្រស្មាញ និងអាចទុកចិត្តបានយ៉ាងណានោះទេ ចំណុចខ្សោយរបស់ពួកគេក្នុងការអនុវត្តជាក់ស្តែងគឺបញ្ហានៃការចែកចាយគន្លឹះ។ ដើម្បីឱ្យការផ្លាស់ប្តូរព័ត៌មានសម្ងាត់រវាងមុខវិជ្ជា IP ពីរអាចធ្វើទៅបាន គន្លឹះត្រូវតែត្រូវបានបង្កើតដោយមួយក្នុងចំណោមពួកគេ ហើយបន្ទាប់មកដោយវិធីណាមួយ ផ្ទេរការសម្ងាត់ទៅឱ្យមួយផ្សេងទៀត។ ទាំងនោះ។ ជាទូទៅ ការផ្ទេរសោម្តងទៀតតម្រូវឱ្យប្រើប្រព័ន្ធគ្រីបតូមួយចំនួន។ ដើម្បីដោះស្រាយបញ្ហានេះ ប្រព័ន្ធសោសាធារណៈត្រូវបានស្នើឡើងដោយផ្អែកលើលទ្ធផលដែលទទួលបានពីពិជគណិតបុរាណ និងទំនើប។ ខ្លឹមសាររបស់ពួកគេគឺថាអ្នកទទួលអាសយដ្ឋាន IP នីមួយៗបង្កើតកូនសោពីរដែលត្រូវបានភ្ជាប់ទៅគ្នាទៅវិញទៅមកយោងទៅតាមច្បាប់ជាក់លាក់មួយ។ សោមួយត្រូវបានប្រកាសជាសាធារណៈ និងមួយទៀតជាឯកជន។ សោសាធារណៈត្រូវបានបោះពុម្ព ហើយមានសម្រាប់អ្នកដែលចង់ផ្ញើសារទៅកាន់អ្នកទទួល។ គន្លឹះសម្ងាត់ត្រូវបានរក្សាទុកជាសម្ងាត់។ អត្ថបទដើមត្រូវបានអ៊ិនគ្រីបដោយប្រើសោសាធារណៈរបស់អ្នកទទួល ហើយបញ្ជូនទៅគាត់។ ជាគោលការណ៍ អត្ថបទដែលបានអ៊ិនគ្រីបមិនអាចត្រូវបានឌិគ្រីបដោយអត្ថបទធម្មតាដូចគ្នា។ ប្រព័ន្ធគ្រីបគ្រីបសោសាធារណៈប្រើមុខងារដែលមិនអាចត្រឡប់វិញបាន ឬមុខងារមួយផ្លូវ ដែលមានលក្ខណៈដូចខាងក្រោម៖ ផ្តល់តម្លៃ x វាងាយស្រួលគណនាតម្លៃ f(x) ប៉ុន្តែប្រសិនបើ y=f(x) ដូច្នេះមិនមានវិធីងាយស្រួលក្នុងការគណនាតម្លៃ x ។ សំណុំនៃថ្នាក់នៃមុខងារដែលមិនអាចត្រឡប់វិញបានផ្តល់នូវការកើនឡើងដល់ភាពខុសគ្នានៃប្រព័ន្ធសោសាធារណៈទាំងអស់។ ទោះយ៉ាងណាក៏ដោយ មិនមែនគ្រប់មុខងារដែលមិនអាចត្រឡប់វិញបានគឺសមរម្យសម្រាប់ការប្រើប្រាស់នៅក្នុង ICs ពិតប្រាកដនោះទេ។ 09.07.2003
ការអ៊ិនគ្រីបត្រូវបានប្រើប្រាស់ដោយមនុស្សជាតិចាប់តាំងពីពេលដែលព័ត៌មានសម្ងាត់ដំបូងបានលេចចេញមក ពោលគឺព័ត៌មានបែបនេះដែលការចូលប្រើគួរតែត្រូវបានកំណត់។ នេះគឺយូរណាស់មកហើយ - ឧទាហរណ៍ វិធីសាស្ត្រអ៊ិនគ្រីបដ៏ល្បីបំផុតមួយត្រូវបានដាក់ឈ្មោះតាម Caesar ដែលប្រសិនបើគាត់មិនបានបង្កើតវាដោយខ្លួនឯងទេ បន្ទាប់មកប្រើវាយ៉ាងសកម្ម (សូមមើលរបារចំហៀង) ។ ការសរសេរកូដសម្ងាត់ធានាថាអត្ថន័យនៃសារត្រូវបានលាក់ ហើយត្រូវបានបង្ហាញដោយការឌិគ្រីបដោយប្រើក្បួនដោះស្រាយ និងសោពិសេស។ យើងយល់ពីគន្លឹះជាស្ថានភាពសម្ងាត់ជាក់លាក់នៃប៉ារ៉ាម៉ែត្រនៃក្បួនដោះស្រាយការអ៊ិនគ្រីប និងឌិគ្រីប។ ការដឹងពីគន្លឹះធ្វើឱ្យវាអាចអានសារសម្ងាត់បាន។ ទោះយ៉ាងណាក៏ដោយ ដូចដែលអ្នកនឹងឃើញខាងក្រោម ភាពល្ងង់ខ្លៅនៃគន្លឹះមិនតែងតែធានាថាសារនោះមិនអាចអានដោយមនុស្សចម្លែកបានទេ។ ដំណើរការនៃការបំបែកកូដសម្ងាត់ដោយមិនស្គាល់សោត្រូវបានគេហៅថា cryptanalysis ។ ពេលវេលាដែលត្រូវការដើម្បីបំបែកកូដសម្ងាត់ត្រូវបានកំណត់ដោយកម្លាំងគ្រីបគ្រីបរបស់វា។ វាកាន់តែធំ ក្បួនដោះស្រាយការអ៊ិនគ្រីបគឺ "ខ្លាំងជាង" ។ វារឹតតែប្រសើរជាងនេះទៅទៀត ប្រសិនបើដំបូងវាមិនអាចរកឱ្យឃើញទាល់តែសោះថាតើលទ្ធផលនៃការលួចចូលអាចសម្រេចបាន។ ក្នុងចំណោមវិធីសាស្រ្តអ៊ិនគ្រីបផ្សេងៗ វិធីសាស្ត្រសំខាន់ៗខាងក្រោមអាចត្រូវបានសម្គាល់៖ នៅពេលដែលអ្នកប្រើប្រាស់បញ្ចូលពាក្យសម្ងាត់របស់ពួកគេនៅពេលចូលទៅក្នុង Windows 95 ហ្គាម៉ា (តែងតែដូចគ្នា) ត្រូវបានបង្កើតពីវាដោយប្រើក្បួនដោះស្រាយការអ៊ិនគ្រីប RC4 ដែលត្រូវបានប្រើដើម្បីអ៊ិនគ្រីបពាក្យសម្ងាត់បណ្តាញ។ ភាពសាមញ្ញនៃការជ្រើសរើសពាក្យសម្ងាត់ក្នុងករណីនេះគឺដោយសារតែ Windows តែងតែចូលចិត្តពណ៌ចម្រុះដូចគ្នា។ មុននឹងបន្តទៅក្បួនដោះស្រាយនីមួយៗ ចូរយើងពិចារណាដោយសង្ខេបអំពីគោលគំនិតនៃប្រព័ន្ធគ្រីបតូស៊ីមេទ្រី និងស៊ីមេទ្រី។ ការបង្កើតកូនសោសម្ងាត់ និងអ៊ិនគ្រីបសារជាមួយវាគឺគ្រាន់តែជាសមរភូមិពាក់កណ្តាលប៉ុណ្ណោះ។ ប៉ុន្តែតើសោបែបនេះអាចផ្ញើទៅអ្នកដែលត្រូវប្រើវាដើម្បីឌិគ្រីបសារដើមដោយរបៀបណា? ការបញ្ជូនកូនសោអ៊ិនគ្រីបត្រូវបានចាត់ទុកថាជាបញ្ហាចម្បងមួយនៃការគ្រីបគ្រីប។ ខណៈពេលដែលនៅសល់នៅក្នុងក្របខ័ណ្ឌនៃប្រព័ន្ធស៊ីមេទ្រីមួយ (ដូច្នេះមានឈ្មោះដោយសារតែសោដូចគ្នាត្រូវបានប្រើសម្រាប់ការអ៊ិនគ្រីប និងការឌិគ្រីប) ចាំបាច់ត្រូវមានបណ្តាញទំនាក់ទំនងដែលអាចទុកចិត្តបានសម្រាប់ការបញ្ជូនសោសម្ងាត់។ ប៉ុន្តែប៉ុស្តិ៍បែបនេះមិនតែងតែមាននោះទេ ហេតុដូច្នេះហើយគណិតវិទូជនជាតិអាមេរិក Diffie, Hellman និង Merkle បានបង្កើតគំនិតនៃសោសាធារណៈ និងការអ៊ិនគ្រីបមិនស៊ីមេទ្រីនៅឆ្នាំ 1976 ។ នៅក្នុងប្រព័ន្ធគ្រីបតូបែបនេះ មានតែកូនសោសម្រាប់ដំណើរការអ៊ិនគ្រីបប៉ុណ្ណោះដែលមានជាសាធារណៈ ហើយនីតិវិធីនៃការឌិគ្រីបត្រូវបានដឹងតែចំពោះម្ចាស់សោសម្ងាត់ប៉ុណ្ណោះ។ ជាឧទាហរណ៍ នៅពេលដែលខ្ញុំចង់ផ្ញើសារមកខ្ញុំ ខ្ញុំបង្កើតសោសាធារណៈ និងឯកជន។ ខ្ញុំផ្ញើវាទៅអ្នក អ្នកអ៊ិនគ្រីបសារ ហើយផ្ញើមកខ្ញុំ។ មានតែខ្ញុំទេដែលអាចឌិគ្រីបសារបាន ព្រោះខ្ញុំមិនបានផ្តល់សោសម្ងាត់ដល់នរណាម្នាក់ ជាការពិតណាស់ គ្រាប់ចុចទាំងពីរត្រូវបានភ្ជាប់គ្នាតាមរបៀបពិសេសមួយ (តាមវិធីផ្សេងគ្នានៅក្នុងប្រព័ន្ធគ្រីបតូនីមួយៗ) ហើយការចែកចាយសោសាធារណៈមិនបំផ្លាញភាពរឹងមាំនៃគ្រីបតូរបស់ប្រព័ន្ធនោះទេ។ នៅក្នុងប្រព័ន្ធ asymmetric តម្រូវការខាងក្រោមត្រូវតែពេញចិត្ត៖ មិនមានក្បួនដោះស្រាយ (ឬវាមិនទាន់ដឹង) ដែលនឹងទាញយកអត្ថបទដើមពី cryptotext និងសោសាធារណៈ។ ឧទាហរណ៏នៃប្រព័ន្ធបែបនេះគឺប្រព័ន្ធគ្រីប RSA ដ៏ល្បីល្បាញ។ ក្បួនដោះស្រាយ RSA (បន្ទាប់ពីអក្សរដំបូងនៃនាមត្រកូលរបស់អ្នកបង្កើត Rivest-Shamir-Adleman) គឺផ្អែកលើលក្ខណៈសម្បត្តិនៃលេខសំខាន់ៗ (និងលេខធំ)។ លេខបឋមគឺជាលេខដែលមិនមានការបែងចែកក្រៅពីខ្លួនគេ និងលេខមួយ។ ហើយលេខ coprime គឺជាលេខដែលមិនមានការបែងចែកធម្មតាក្រៅពី 1 ។ ដំបូងយើងជ្រើសរើសបឋមធំពីរ (បឋមធំគឺត្រូវការដើម្បីបង្កើតកូនសោធំ និងខ្លាំង។ ឧទាហរណ៍ កម្មវិធី Unix ssh-keygen បង្កើតកូនសោប្រវែង 1024 ប៊ីតតាមលំនាំដើម)។ ចូរយើងកំណត់ប៉ារ៉ាម៉ែត្រ នជាលទ្ធផលនៃការគុណ ទំនិង q. ចូរយើងជ្រើសរើសលេខចៃដន្យធំមួយ ហើយហៅទៅវា។ ឃហើយវាត្រូវតែជា coprime ជាមួយនឹងលទ្ធផលនៃគុណ (ទំ -1)*(q -1). ចូរយើងស្វែងរកលេខ e ដែលទំនាក់ទំនងពិត (e*d) mod ((p -1)*(q -1)) = 1 (ម៉ូដ- នៅសល់នៃការបែងចែកពោលគឺប្រសិនបើ e គុណនឹង d ត្រូវបានចែកដោយ ((p -1)*(q -1))បន្ទាប់មកនៅសល់គឺ 1) ។ សោសាធារណៈគឺជាលេខគូ អ៊ី និង ននិងបិទ - d និង n. នៅពេលអ៊ិនគ្រីប អត្ថបទប្រភពត្រូវបានចាត់ទុកជាស៊េរីលេខ ហើយយើងធ្វើប្រតិបត្តិការលើលេខនីមួយៗ C(i)= (M(i) e) mod n. លទ្ធផលគឺជាលំដាប់ C(i)ដែលនឹងបង្កើតជា cryptotext ។ ការឌិកូដព័ត៌មានកើតឡើងតាមរូបមន្ត M(i) = (C(i) d) mod n. ដូចដែលអ្នកអាចឃើញ ការឌិគ្រីបទាមទារចំណេះដឹងអំពីសោសម្ងាត់។ តោះសាកល្បងវាតាមលេខតូច។ តោះដំឡើង p=3, q=7. បន្ទាប់មក n=p*q=21.ជ្រើសរើស ឃដូច 5. ពីរូបមន្ត (e*5) mod 12=1គណនា e=17. សោសាធារណៈ 17, 21
, សម្ងាត់ - 5, 21
. ចូរយើងអ៊ិនគ្រីបលំដាប់ "12345"៖ C(1)= 1 17 mod 21= 1 C(2)= 2 17 mod 21 =11 C(3)= 3 17 mod 21= 12 C(4)= 4 17 mod 21= 16 C(5)= 5 17 mod 21= 17 Cryptotext - 1 11 12 16 17 . តោះពិនិត្យមើលការឌិគ្រីប៖ M(1)= 1 5 mod 21= 1 M(2)= 11 5 mod 21= 2 M(3)= 12 5 mod 21= 3 M(4)= 16 5 mod 21= 4 M(5)= 17 5 mod 21= 5 ដូចដែលអ្នកអាចឃើញលទ្ធផលស្របគ្នា។ ប្រព័ន្ធគ្រីបតូ RSA ត្រូវបានប្រើប្រាស់យ៉ាងទូលំទូលាយនៅលើអ៊ីនធឺណិត។ នៅពេលអ្នកភ្ជាប់ទៅម៉ាស៊ីនមេដែលមានសុវត្ថិភាពតាមរយៈ SSL ដំឡើងវិញ្ញាបនបត្រ WebMoney នៅលើកុំព្យូទ័ររបស់អ្នក ឬភ្ជាប់ទៅម៉ាស៊ីនមេពីចម្ងាយដោយប្រើ Open SSH ឬ SecureShell កម្មវិធីទាំងអស់នេះប្រើការអ៊ិនគ្រីបសោសាធារណៈដោយប្រើគំនិតពីក្បួនដោះស្រាយ RSA ។ តើប្រព័ន្ធនេះពិតជាអាចទុកចិត្តបានមែនទេ? ចាប់តាំងពីការបង្កើតរបស់ខ្លួនមក RSA តែងតែទទួលរងការវាយប្រហារដោយ Brute-force ។ នៅឆ្នាំ 1978 អ្នកនិពន្ធនៃក្បួនដោះស្រាយបានបោះពុម្ពអត្ថបទមួយដែលពួកគេបានបង្ហាញពីខ្សែអក្សរដែលត្រូវបានអ៊ិនគ្រីបដោយប្រើវិធីសាស្ត្រដែលពួកគេទើបតែបានបង្កើត។ អ្នកដំបូងដែលឌិគ្រីបសារត្រូវបានផ្តល់រង្វាន់ 100 ដុល្លារ ប៉ុន្តែនេះតម្រូវឱ្យបែងចែកលេខ 129 ខ្ទង់ជាកត្តាពីរ។ នេះជាការប្រកួតដំបូងគេក្នុងការបំបែក RSA។ បញ្ហានេះត្រូវបានដោះស្រាយត្រឹមតែ 17 ឆ្នាំបន្ទាប់ពីការបោះពុម្ពអត្ថបទ។ ភាពខ្លាំងនៃគ្រីបគ្រីបរបស់ RSA គឺផ្អែកលើការសន្មត់ថាវាជាការលំបាកខ្លាំងណាស់ ប្រសិនបើមិនអាចកំណត់សោឯកជនពីសោសាធារណៈ។ ដើម្បីធ្វើដូចនេះវាចាំបាច់ក្នុងការដោះស្រាយបញ្ហានៃអត្ថិភាពនៃការបែងចែកនៃចំនួនគត់ដ៏ធំ។ រហូតមកដល់ពេលនេះ គ្មាននរណាម្នាក់បានដោះស្រាយវាដោយប្រើវិធីសាស្ត្រវិភាគទេ ហើយក្បួនដោះស្រាយ RSA អាចត្រូវបានបំបែកដោយកម្លាំង brute ប៉ុណ្ណោះ។ និយាយយ៉ាងតឹងរឹង ការអះអាងថាបញ្ហាកត្តាកត្តាគឺពិបាក ហើយការបំបែកប្រព័ន្ធ RSA គឺពិបាកក៏មិនត្រូវបានបញ្ជាក់ដែរ។ លេខដែលទទួលបានជាលទ្ធផលនៃការដំណើរការអត្ថបទសារដោយមុខងារ hash ត្រូវបានអ៊ិនគ្រីបដោយប្រើ RSA algorithm នៅលើ private key របស់អ្នកប្រើប្រាស់ ហើយផ្ញើទៅកាន់អ្នកទទួល រួមជាមួយនឹងសំបុត្រ និងច្បាប់ចម្លងនៃ public key។ អ្នកទទួល ដោយប្រើសោសាធារណៈរបស់អ្នកផ្ញើ អនុវត្តមុខងារ hash ដូចគ្នានៅលើសារចូល។ ប្រសិនបើលេខទាំងពីរស្មើគ្នា នេះមានន័យថាសារគឺពិតប្រាកដ ប៉ុន្តែប្រសិនបើយ៉ាងហោចណាស់តួអក្សរមួយត្រូវបានផ្លាស់ប្តូរ នោះលេខនឹងមិនត្រូវគ្នាទេ។ កម្មវិធីអ៊ីមែលទូទៅបំផុតមួយនៅក្នុងប្រទេសរុស្ស៊ី កម្មវិធី The Bat! សូមអានបន្ថែមអំពីបច្ចេកទេសនេះនៅក្នុងអត្ថបទ (សូមមើល “PC World” លេខ 3/02)។ ការសរសេរកូដសម្ងាត់គឺជាវិទ្យាសាស្ត្រនៃគោលការណ៍ មធ្យោបាយ និងវិធីសាស្រ្តនៃការបំប្លែងព័ត៌មាន ដើម្បីការពារវាពីការចូលប្រើប្រាស់ និងការបង្ខូចទ្រង់ទ្រាយដោយគ្មានការអនុញ្ញាត។ ថ្មីៗនេះ វាបាននិងកំពុងអភិវឌ្ឍយ៉ាងលឿន។ វាជាការប្រណាំងដ៏គួរឱ្យរំភើបដែលមិនចេះចប់ដែលត្រូវការពេលវេលានិងការខំប្រឹងប្រែងជាច្រើន៖ អ្នកវិភាគសម្ងាត់បំបែកក្បួនដោះស្រាយដែលរហូតមកដល់ពេលថ្មីៗនេះជាស្តង់ដារ និងត្រូវបានប្រើយ៉ាងទូលំទូលាយ។ ដោយវិធីនេះ ថ្មីៗនេះគណិតវិទូ Dan Goldston (សហរដ្ឋអាមេរិក) និង Kem Ildirim (ទួរគី) បានបង្ហាញភាពទៀងទាត់ដំបូងបង្អស់ក្នុងការបែងចែកលេខបឋម (ភាពទៀងទាត់បែបនេះមិនត្រូវបានគេកត់សំគាល់ទេរហូតមកដល់ពេលនេះ)។ លេខសំខាន់ៗមានទីតាំងនៅលើអ័ក្សលេខនៅក្នុងចង្កោមជាក់លាក់ ដែលធ្វើឱ្យវាកាន់តែងាយស្រួលក្នុងការស្វែងរក។ ការស្រាវជ្រាវគណិតវិទ្យាដែលធ្វើឡើងទូទាំងពិភពលោកឥតឈប់ឈរនាំទៅរកការរកឃើញថ្មីៗ។ អ្នកណាដឹង ប្រហែលជាយើងជិតបំបែកក្បួនដោះស្រាយ RSA ឬប្រព័ន្ធគ្រីបតូផ្សេងទៀត ដោយផ្អែកលើបញ្ហាគណិតវិទ្យាដែលមិនបានដោះស្រាយ។ លោក Oleg Bunin- អ្នកឯកទេសក្នុងការអភិវឌ្ឍន៍កម្មវិធីសម្រាប់គម្រោងអ៊ិនធឺណិតធំៗ បុគ្គលិកនៃក្រុមហ៊ុន Rambler, http://www..htm). ឧទាហរណ៍នៃក្បួនដោះស្រាយជំនួសគឺប្រព័ន្ធអ៊ិនគ្រីប Caesar ។ វិធីសាស្រ្តនេះគឺផ្អែកលើការជំនួសអក្សរនីមួយៗនៃសារជាមួយមួយទៀតដោយផ្លាស់ប្តូរពីអក្សរដើមដោយចំនួនតួអក្សរថេរ។ ព្យាយាម decipher quatrain របស់ Omar Khayyam (ពេលវេលាដើម្បីបញ្ចប់ - 10 នាទី) ។ RLZ YOMEYZ AVBZHU IYZAVLU, BZHSCHLU ZHSCHEZZHZ ZHUOSCHZ, EYSH YSHCHAZhFO IYSHCHYVESH BSHCHIZHV EESH ZHSCHRSCHG: LF EMRSYU ЪZEZESCHG, RYU RLZMEKISHUZ, YH.R.Y KLU K DUYO IZISHCHEZ ។ តើអ្នកបានធ្វើវាទេ? នេះជាចម្លើយ៖ ដើម្បីរស់នៅក្នុងជីវិតប្រកបដោយប្រាជ្ញា អ្នកត្រូវដឹងច្រើន ចងចាំច្បាប់សំខាន់ពីរដើម្បីចាប់ផ្តើម៖ អ្នកចង់ស្រេកឃ្លានជាជាងញ៉ាំអ្វីទាំងអស់។ ហើយនៅម្នាក់ឯងល្អជាងនៅជាមួយអ្នកណាម្នាក់។ គ្រាប់ចុចឌិគ្រីប៖ ប្តូរដោយតួអក្សរប្រាំពីរ (យកលេខប្រាំពីរ) ទៅខាងឆ្វេងតាមអក្ខរក្រម។ អក្ខរក្រមត្រូវបានរង្វិលជុំ។ ករណីតួអក្សរមិនប្រកាន់អក្សរតូចធំទេ។ ប្រព័ន្ធយកពាក្យសម្ងាត់ បំប្លែងវាទៅជាអក្សរធំ កាត់វាទៅជា 14 តួអក្សរ បន្ទាប់មកចែកវាជាពីរផ្នែកនៃ 7 អ៊ិនគ្រីបនីមួយៗដាច់ដោយឡែក និងរក្សាទុកវាតាមរបៀបនោះ ដែលធ្វើឲ្យការលួចចូលកាន់តែងាយស្រួលបន្តិច។ ដោយវិធីនេះ នៅពេលដែលអ្នកបង្កើតពាក្យសម្ងាត់ សូមចងចាំថាការបញ្ចូលគ្នាដែលវែងជាង 14 តួអក្សរមានអត្ថន័យតិចតួច។ ក្នុងទសវត្សរ៍ទី 80 នៅសហរដ្ឋអាមេរិក ពួកគេបានអនុម័តស្តង់ដារការអ៊ិនគ្រីបស៊ីមេទ្រីសម្រាប់ការប្រើប្រាស់ផ្ទៃក្នុង - DES ((ស្តង់ដារការអ៊ិនគ្រីបទិន្នន័យ មានស្តង់ដារស្រដៀងគ្នានៅក្នុងប្រទេសរុស្ស៊ី)។ ប៉ុន្តែនៅឆ្នាំ 1997 នៅពេលដែលវាច្បាស់ថា 56-bit DES key មិនគ្រប់គ្រាន់សម្រាប់ការជឿទុកចិត្ត cryptosystem វិទ្យាស្ថានស្តង់ដារអាមេរិកបានប្រកាសការប្រកួតប្រជែងសម្រាប់ក្បួនដោះស្រាយស្តង់ដារថ្មី ពីជម្រើសចំនួន 15 ដែលល្អបំផុតត្រូវបានជ្រើសរើស៖ ក្បួនដោះស្រាយបែលហ្ស៊ិក Rijndael (ឈ្មោះរបស់វាត្រូវបានបង្កើតឡើងដោយឈ្មោះអ្នកនិពន្ធ - Rijmen និង Daemen អានថា "Rijndael" ។ ក្បួនដោះស្រាយនេះត្រូវបានបង្កើតឡើងរួចហើយនៅក្នុងឧបករណ៍គ្រីបគ្រីបផ្សេងៗដែលផ្គត់ផ្គង់ដល់ទីផ្សារដោយអ្នកចុងក្រោយផ្សេងទៀត) អ្នកឈ្នះនៃការប្រកួតប្រជែងគឺ MARS, RC6, Serpent, TwoFish រាល់ក្បួនដោះស្រាយទាំងនេះត្រូវបានគេរកឃើញថាមានភាពរឹងមាំ និងទទួលបានជោគជ័យក្នុងការទប់ទល់នឹងវិធីសាស្ត្រគ្រីបគ្រីបដ៏ល្បីទាំងអស់។ . មុខងារកូដសម្ងាត់បំលែងទិន្នន័យបញ្ចូលនៃទំហំណាមួយទៅជាខ្សែអក្សរទំហំថេរ។ វាពិបាករកណាស់សម្រាប់ពួកគេ៖តើការអ៊ិនគ្រីបមួយណាល្អជាង?
ប្រភពព័ត៌មានបន្ថែម
តើអ្នកដឹងទេ?ប្រភេទនៃការអ៊ិនគ្រីប
ការអ៊ិនគ្រីបស៊ីមេទ្រី
ការអ៊ិនគ្រីបមិនស៊ីមេទ្រី
ហាស់
ការរួមបញ្ចូលគ្នានៃវិធីសាស្ត្រអ៊ិនគ្រីប
ការអ៊ិនគ្រីបស្ទ្រីម
ទប់ស្កាត់ការអ៊ិនគ្រីប
វាបានប្រែទៅជាប្រសើរជាងបន្តិចជាមួយនឹងវិធីសាស្រ្តក្នុងបន្ទាត់ ប្រសិនបើយើងនិយាយអំពីភាពធន់។ បន្ទាប់ពីបានទាំងអស់ យើងបានរៀនដើម្បី decipher ជំនួសធម្មតាដោយប្រើដៃឆ្វេងមួយ។ ហើយជាមួយនឹងវិធីសាស្រ្តប្លុកបែបនេះ អ្នកវាយប្រហារនឹងត្រូវ rack ខួរក្បាលរបស់គាត់ មុនពេលគាត់អាចជ្រើសរើសប្រវែងប្លុក ហើយបន្ទាប់មកអនុវត្ត cryptanalysis សម្រាប់ការជំនួស ciphers សម្រាប់ប្លុកនីមួយៗ។បណ្តាញ FEISTEL
GOST 28147-89 (MAGMA)
លក្ខណៈសំខាន់ៗ៖ គន្លឹះ ២៥៦ ប៊ីត ប្លុក ៦៤ ប៊ីត។
ឥឡូវនេះសូមមើលអ្វីដែលពួកគេបានបង្កើតឡើងនៅក្នុងជញ្ជាំងនៃ Lubyanka អាប់អួរ។
របៀបជំនួសងាយស្រួល
របៀបលេងហ្គេម
ការឌិគ្រីបត្រូវបានអនុវត្តតាមរបៀបដូចគ្នា ជំនួសឱ្យប្លុកអត្ថបទធម្មតា ប្លុកអក្សរសម្ងាត់ត្រូវបានផ្គត់ផ្គង់។របៀបហ្គាម៉ាជាមួយមតិកែលម្អ
3. អត្ថបទធម្មតាត្រូវបានបន្ថែមម៉ូឌុល 2 ទៅហ្គាម៉ាលទ្ធផល។
4. អត្ថបទសម្ងាត់លទ្ធផលត្រូវបានផ្ញើជាសារធ្វើសមកាលកម្មសម្រាប់ប្លុកបន្ទាប់ ហើយក៏ត្រូវបានផ្ញើទៅកាន់លទ្ធផលផងដែរ។ អ្នកអាចឃើញអ្វីដែលវាមើលទៅដូចនៅក្នុងដ្យាក្រាម។ របៀបបញ្ចូលក្លែងធ្វើ
2. ប្លុកអត្ថបទធម្មតាមួយទៀតត្រូវបានបន្ថែមទៅម៉ូឌុលប្លុកលទ្ធផល 2 ។
3. ផលបូកឆ្លងកាត់ 16 ជុំទៀតក្នុងរបៀបជំនួសសាមញ្ញ។
4. ប្លុកអត្ថបទធម្មតាបន្ទាប់ត្រូវបានបន្ថែម ហើយម្តងទៀតការជំនួសសាមញ្ញ ហើយបន្តរហូតដល់មិនមានប្លុកអត្ថបទធម្មតាទៀតទេ។ GOST 34.12-2015 (GRASSHOPPER)
លក្ខណៈសំខាន់ៗ៖ គ្រាប់ចុច ២៥៦ ប៊ីត ប្លុក ១២៨ ប៊ីត។
របៀបជំនួសសាមញ្ញ (Electronic Codebook, ECB);
របៀបហ្គាម៉ា (Counter, CTR);
របៀបហ្គាម៉ាជាមួយនឹងមតិត្រឡប់ (មតិយោបល់លទ្ធផល OFB);
របៀបជំនួសសាមញ្ញជាមួយការចូលរួម (Cipher Block Chaning, SBC);
របៀបហ្គាម៉ាជាមួយនឹងមតិត្រឡប់ជាអក្សរសម្ងាត់ (Cipher Feedback, CFB);
របៀបបញ្ចូលការក្លែងធ្វើជំនាន់ (ក្បួនដោះស្រាយកូដផ្ទៀងផ្ទាត់សារ)។តោះមើលម៉ូដថ្មី។
របៀបជំនួសងាយស្រួលជាមួយការចូលរួម
គន្លឹះ។ ការឌិគ្រីបសារគឺអាចធ្វើទៅបានដោយប្រើសោឯកជន ដែលស្គាល់តែអ្នកទទួលប៉ុណ្ណោះ។ តើការអ៊ិនគ្រីបគឺជាអ្វី?
វិធីសាស្រ្តអ៊ិនគ្រីបទំនើបជាមូលដ្ឋាន
ប្រព័ន្ធគ្រីបតូស៊ីមេទ្រី និងស៊ីមេទ្រី
ក្បួនដោះស្រាយ RSA
ការប្រកួតប្រជែងការលួចស្តាប់ RSA
អង្ករ។ ៣
ការសរសេរកូដសម្ងាត់
ប្រព័ន្ធ Caesar Cipher
វីនដូនិងពាក្យសម្ងាត់
តើវីនដូអ៊ិនគ្រីបពាក្យសម្ងាត់យ៉ាងដូចម្តេច?
ការប្រកួតប្រជែង AES (ស្តង់ដារអ៊ិនគ្រីបកម្រិតខ្ពស់)
មុខងារកូដសម្ងាត់