ការណែនាំអំពីមូលដ្ឋានគ្រឹះនៃសោស៊ីមេទ្រីទំនើប។ របៀបជំនួសងាយស្រួល។ តើអ្វីទៅជាការអ៊ិនគ្រីប

លោក 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 នោះទេ។ សព្វថ្ងៃនេះមានប្រព័ន្ធគ្រីបតូដែលគាំទ្រការបញ្ជាក់នៃសោសាធារណៈ ក៏ដូចជាការរួមបញ្ចូលក្បួនដោះស្រាយការអ៊ិនគ្រីបស៊ីមេទ្រី និងអសមមាត្រ។ ប៉ុន្តែនេះគឺជាប្រធានបទសម្រាប់អត្ថបទដាច់ដោយឡែកមួយ។

ប្រភព​ព័ត៌មាន​បន្ថែម

សម្រាប់អ្នកអានទាំងនោះដែលចាប់អារម្មណ៍យ៉ាងខ្លាំងលើការអ៊ិនគ្រីប អ្នកនិពន្ធសូមផ្តល់អនុសាសន៍ឱ្យពង្រីកការយល់ដឹងរបស់ពួកគេ ដោយមានជំនួយពីសៀវភៅខាងក្រោម។

  1. Brassard J. "ការគ្រីបវិទ្យាទំនើប" ។
  2. Petrov A. A. "សុវត្ថិភាពកុំព្យូទ័រ៖ វិធីសាស្រ្តការពារគ្រីប" ។
  3. Romanets Yu. V., Timofeev P. A., Shangin V. F. "ការការពារព័ត៌មាននៅក្នុងប្រព័ន្ធកុំព្យូទ័រទំនើប" ។
  4. Sokolov A.V., Shangin V.F.

ការពិពណ៌នាពេញលេញនៃក្បួនដោះស្រាយការអ៊ិនគ្រីបអាចរកបាននៅក្នុងឯកសារខាងក្រោម៖

  1. GOST 28147-89 ។ ប្រព័ន្ធដំណើរការព័ត៌មាន។ ការការពារការសម្ងាត់។
  2. ក្បួនដោះស្រាយការបំប្លែងសារសម្ងាត់។ - M. : ស្តង់ដាររដ្ឋនៃសហភាពសូវៀតឆ្នាំ 1989 ។
  3. ក្បួនដោះស្រាយ AES៖ http://www.nist.gov/ae ។

ក្បួនដោះស្រាយ 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 នេះមានលក្ខណៈសម្បត្តិដូចខាងក្រោមៈ

  • ទិន្នន័យដូចគ្នាតែងតែបង្កើតសញ្ញាដូចគ្នា។
  • វាមិនអាចទៅរួចទេក្នុងការបង្កើតទិន្នន័យឆៅពី 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 ប៊ីត) ។ សម្រាប់ប្លុកនីមួយៗ យើងនឹងបង្កើតតារាងជំនួសរបស់យើង៖

ឥឡូវនេះយើងអ៊ិនគ្រីបប្លុកនីមួយៗដោយអក្សរដែលត្រូវគ្នា៖
វាបានប្រែទៅជាប្រសើរជាងបន្តិចជាមួយនឹងវិធីសាស្រ្តក្នុងបន្ទាត់ ប្រសិនបើយើងនិយាយអំពីភាពធន់។ បន្ទាប់ពីបានទាំងអស់ យើងបានរៀនដើម្បី decipher ជំនួសធម្មតាដោយប្រើដៃឆ្វេងមួយ។ ហើយជាមួយនឹងវិធីសាស្រ្តប្លុកបែបនេះ អ្នកវាយប្រហារនឹងត្រូវ rack ខួរក្បាលរបស់គាត់ មុនពេលគាត់អាចជ្រើសរើសប្រវែងប្លុក ហើយបន្ទាប់មកអនុវត្ត cryptanalysis សម្រាប់ការជំនួស ciphers សម្រាប់ប្លុកនីមួយៗ។

បណ្តាញ FEISTEL

ឥឡូវនេះ យើងត្រៀមខ្លួនរួចជាស្រេចដើម្បីបន្តទៅកាន់ប្រធានបទដ៏សំខាន់មួយដែលបើកទ្វារទៅកាន់ពិភពគ្មានទីបញ្ចប់នៃប្រព័ន្ធអ៊ិនគ្រីបទំនើប។ បណ្តាញ Feistel គឺជាវិធីសាស្រ្តអ៊ិនគ្រីបប្លុកដែលត្រូវបានបង្កើតឡើងដោយ Horst Feistel នៅមន្ទីរពិសោធន៍ IBM ក្នុងឆ្នាំ 1971 ។ សព្វថ្ងៃនេះបណ្តាញ Feistel បង្កប់នូវពិធីការគ្រីបគ្រីបមួយចំនួនធំ។ តោះព្យាយាមស្វែងយល់ថា "នៅលើម្រាមដៃ" វាជាអ្វី។

បណ្តាញ Feistel ដំណើរការលើប្លុកនៃអត្ថបទធម្មតា ដូច្នេះយើងនឹងពិនិត្យមើលយន្តការនៃប្រតិបត្តិការរបស់វានៅលើប្លុកមួយក្នុងចំណោមប្លុក។ សកម្មភាពសម្រាប់ប្លុកដែលនៅសល់នឹងស្រដៀងគ្នា។

  • ប្លុកត្រូវបានបែងចែកជាពីរផ្នែកស្មើគ្នា - ឆ្វេង (L) និងស្តាំ (R) ។
  • បន្ទាប់ពីបែងចែក ប្លុករងខាងឆ្វេងត្រូវបានកែប្រែដោយអនុគមន៍ f ដោយប្រើគ្រាប់ចុច K: x = f(L, K) ។ ជាមុខងារមួយ អ្នកអាចស្រមៃមើលការបំប្លែងណាមួយ - ឧទាហរណ៍ ការផ្លាស់ប្តូរលេខសម្ងាត់ចាស់ដ៏ល្អជាមួយកូនសោ K ។
  • ប្លុករងលទ្ធផលត្រូវបានបន្ថែមម៉ូឌុល 2 ជាមួយនឹងប្លុករងខាងស្តាំ R ដែលមិនត្រូវបានប្រើពីមុន៖ x=x+R
  • បន្ទាប់មកផ្នែកលទ្ធផលត្រូវបានផ្លាស់ប្តូរនិងស្អិតជាប់ជាមួយគ្នា។

ដូចដែលអ្នកអាចឃើញអ្វីគ្រប់យ៉ាងគឺសាមញ្ញណាស់។ ដើម្បីយល់ពីរបៀបដែលវាដំណើរការសូមមើលដ្យាក្រាម:

ការរៀបចំនេះត្រូវបានគេហៅថាកោសិកា 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)

យើងមានគំនិតចាំបាច់ស្ទើរតែទាំងអស់នៅក្នុងឃ្លាំងអាវុធរបស់យើងរួចហើយ ដូច្នេះយើងត្រៀមខ្លួនដើម្បីបន្តទៅប្រធានបទសំខាន់ដំបូងនៃការគ្រីបក្នុងស្រុក - 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 ខុសពីការពិត ដូច្នេះអ្នកមិនគួរពឹងផ្អែកលើគំនិតរបស់គាត់ទេ។

ឥឡូវនេះសូមមើលអ្វីដែលពួកគេបានបង្កើតឡើងនៅក្នុងជញ្ជាំងនៃ Lubyanka អាប់អួរ។

របៀបជំនួសងាយស្រួល

នៅក្នុងរបៀបជំនួសសាមញ្ញសម្រាប់ 32 ជុំយោងទៅតាមស្តង់ដារយើងត្រូវការគ្រាប់ចុចជុំចំនួន 32 ។ ដើម្បីបង្កើតសោមូល គន្លឹះដើម 256 ប៊ីតត្រូវបានបែងចែកទៅជាប្លុក 32 ប៊ីតចំនួនប្រាំបី៖ K1…K8 ។ គ្រាប់ចុច K9...K24 គឺជាពាក្យដដែលៗនៃគ្រាប់ចុច K1...K8 ។ សោ K25…K32 គឺជាសោ K8…K1។

  1. ប្លុក 64 ប៊ីតនីមួយៗត្រូវបានបែងចែកទៅជាប្លុករងពីរ - Ai និង Bi ។
  2. ប្លុករងខាងឆ្វេង Ai ត្រូវបានបន្ថែមម៉ូឌុល 232 ជាមួយនឹងគ្រាប់ចុចមូល K1: Ai + 1 = Ai + Ki mod 232 ។
  3. ប្លុករងខាងឆ្វេងឆ្លងកាត់ S-box ។
  4. ប៊ីតនៃប្លុករងខាងឆ្វេងត្រូវបានផ្លាស់ប្តូរដោយ 11 មុខតំណែង (ការផ្លាស់ប្តូរវដ្ត) ។
  5. ប្លុករងខាងឆ្វេងបន្ថែមទៅខាងស្តាំមួយ ម៉ូឌុល 2: A = A ⊕ B ។ iii
  6. ប្លុករងខាងស្តាំយកតម្លៃដើមនៃប្លុករងខាងឆ្វេង៖ Bi+1 = Ai។
  7. ប្លុករងត្រូវបានផ្លាស់ប្តូរ។

គ្រាន់តែជាឧទាហរណ៍មួយជុំប៉ុណ្ណោះ។ គន្លឹះ ២៥៦ ប៊ីត៖

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 ត្រូវបានអ៊ិនគ្រីបក្នុងរបៀបជំនួសសាមញ្ញ។
3. អត្ថបទធម្មតាត្រូវបានបន្ថែមម៉ូឌុល 2 ទៅហ្គាម៉ាលទ្ធផល។
4. អត្ថបទសម្ងាត់លទ្ធផលត្រូវបានផ្ញើជាសារធ្វើសមកាលកម្មសម្រាប់ប្លុកបន្ទាប់ ហើយក៏ត្រូវបានផ្ញើទៅកាន់លទ្ធផលផងដែរ។ អ្នកអាចឃើញអ្វីដែលវាមើលទៅដូចនៅក្នុងដ្យាក្រាម។

របៀបបញ្ចូលក្លែងធ្វើ

នៅក្នុងរបៀបនេះ ការបញ្ចូលក្លែងធ្វើត្រូវបានបង្កើត - ប្លុកបន្ថែមនៃប្រវែងថេរ អាស្រ័យលើអត្ថបទប្រភព និងគ្រាប់ចុច។ ប្លុកតូចមួយបែបនេះគឺចាំបាច់ដើម្បីបញ្ជាក់ថាគ្មានការបង្ខូចទ្រង់ទ្រាយណាមួយត្រូវបានណែនាំដោយចៃដន្យ ឬដោយចេតនាចូលទៅក្នុងអត្ថបទសម្ងាត់នោះទេ ពោលគឺដើម្បីពិនិត្យមើលភាពត្រឹមត្រូវ។ របៀបនេះដំណើរការដូចនេះ៖

1. ប្លុកនៃអត្ថបទធម្មតាឆ្លងកាត់ 16 ជុំក្នុងរបៀបជំនួសសាមញ្ញ។
2. ប្លុកអត្ថបទធម្មតាមួយទៀតត្រូវបានបន្ថែមទៅម៉ូឌុលប្លុកលទ្ធផល 2 ។
3. ផលបូកឆ្លងកាត់ 16 ជុំទៀតក្នុងរបៀបជំនួសសាមញ្ញ។
4. ប្លុកអត្ថបទធម្មតាបន្ទាប់ត្រូវបានបន្ថែម ហើយម្តងទៀតការជំនួសសាមញ្ញ ហើយបន្តរហូតដល់មិនមានប្លុកអត្ថបទធម្មតាទៀតទេ។

ដើម្បីផ្ទៀងផ្ទាត់ អ្នកទទួល បន្ទាប់ពីឌិគ្រីបអត្ថបទ អនុវត្តនីតិវិធីស្រដៀងនឹងអ្វីដែលបានពិពណ៌នា។ ប្រសិនបើលទ្ធផលមិនត្រូវគ្នានឹងការបញ្ចូលត្រាប់តាមដែលបានបញ្ជូននោះ ប្លុក M ដែលត្រូវគ្នាទាំងអស់ត្រូវបានចាត់ទុកថាមិនពិត។

GOST 34.12-2015 (GRASSHOPPER)

មនុស្សជាច្រើនចាត់ទុកថា GOST 28147-89 ហួសសម័យហើយមិនរឹងមាំគ្រប់គ្រាន់ទេបើប្រៀបធៀបទៅនឹងក្បួនដោះស្រាយបរទេស។ ដើម្បីជំនួសវា អ្នកសរសេរកូដក្នុងស្រុកបានចេញផ្សាយស្តង់ដារអ៊ិនគ្រីបថ្មី។ ពួកគេនិយាយថាវាកើតឡើងដោយសារតែចំនួនច្រើននៃការវាយប្រហារលើ GOST ចាស់ ឬដោយសារតែប្រវែងប្លុកនេះគឺហួសសម័យហើយ និងតូចពេកសម្រាប់សំណុំទិន្នន័យទំនើប។ គ្មាន​អ្នក​ណា​ផ្សាយ​ពី​មូលហេតុ​ពិត​ទេ។ ជាការពិតណាស់មានការផ្លាស់ប្តូរមួយចំនួនចំពោះលក្ខណៈសំខាន់ៗ។

លក្ខណៈសំខាន់ៗ៖ គ្រាប់ចុច ២៥៦ ប៊ីត ប្លុក ១២៨ ប៊ីត។

វាក៏មានតម្លៃផងដែរក្នុងការនិយាយថានៅក្នុងស្តង់ដារថ្មី ប្រអប់ S ត្រូវបានជួសជុល និងគិតគូរ ដូច្នេះមិនចាំបាច់បង្កើតការជំនួសដោយអព្ភូតហេតុផ្ទាល់ខ្លួនរបស់អ្នកទេ។ GOST ថ្មីមានរបៀបអ៊ិនគ្រីបជាច្រើនទៀត៖
របៀបជំនួសសាមញ្ញ (Electronic Codebook, ECB);
របៀបហ្គាម៉ា (Counter, CTR);
របៀបហ្គាម៉ាជាមួយនឹងមតិត្រឡប់ (មតិយោបល់លទ្ធផល OFB);
របៀបជំនួសសាមញ្ញជាមួយការចូលរួម (Cipher Block Chaning, SBC);
របៀបហ្គាម៉ាជាមួយនឹងមតិត្រឡប់ជាអក្សរសម្ងាត់ (Cipher Feedback, CFB);
របៀប​បញ្ចូល​ការ​ក្លែង​ធ្វើ​ជំនាន់ (ក្បួន​ដោះស្រាយ​កូដ​ផ្ទៀងផ្ទាត់​សារ)។

តោះមើលម៉ូដថ្មី។

របៀបជំនួសងាយស្រួលជាមួយការចូលរួម

ដូចដែលត្រូវបានគេមើលឃើញនៅក្នុងស្តង់ដារមុន របៀបជំនួសដ៏សាមញ្ញគឺជាម៉ូដដែលខ្សោយបំផុត ដូច្នេះនៅក្នុងស្តង់ដារថ្មីឥឡូវនេះវាលាតសន្ធឹងជាមួយនឹងការចូលរួម ហើយបានក្លាយទៅជាមិនសាមញ្ញទាល់តែសោះ។

  1. វ៉ិចទ័រចាប់ផ្តើមស្តាប់ទៅគួរឱ្យខ្លាច ប៉ុន្តែតាមពិតវាគ្រាន់តែជាបណ្តុំនៃប៊ីតដែលចូលទៅក្នុងធាតុបញ្ចូលប៉ុណ្ណោះ។
  2. វ៉ិចទ័រ​ត្រូវ​បាន​បំបែក​ជា​ពីរ​ផ្នែក - L និង R ដែល​មួយ​ក្នុង​ចំណោម​នោះ​ត្រូវ​បាន​បន្ថែម modulo 2 ជាមួយ​នឹង​អត្ថបទធម្មតា ហើយ​មួយទៀត​ក្លាយ​ជា​ពាក់កណ្តាល​នៃ​វ៉ិចទ័រ​ចាប់ផ្តើម​សម្រាប់​ប្លុក​បន្ទាប់។
  3. ផលបូកនៃអត្ថបទធម្មតា និងបំណែកនៃវ៉ិចទ័រការចាប់ផ្តើមត្រូវបានឆ្លងកាត់តាមរយៈលេខកូដជំនួសដ៏សាមញ្ញមួយ។
  4. ប្លុកអក្សរសម្ងាត់ជាលទ្ធផលត្រូវបានស្អិតជាប់ជាមួយគ្នា។

នៅពេលដែលអ្នកក្រឡេកមើលដ្យាក្រាម អ្វីៗនឹងច្បាស់ភ្លាមៗ។

ជាការពិតណាស់ វ៉ិចទ័រការចាប់ផ្តើមគឺមិនសាមញ្ញនោះទេ៖ វាឆ្លងកាត់ស៊េរីនៃការផ្លាស់ប្តូរលីនេអ៊ែរ (ដោយប្រើការចុះឈ្មោះការផ្លាស់ប្តូរលីនេអ៊ែរ) មុនពេលវាចាប់ផ្តើមអ៊ិនគ្រីបប្លុកថ្មី។ ប៉ុន្តែដើម្បីស្គាល់ស៊ីហ្វឺរវាគ្រប់គ្រាន់ដើម្បីស្រមៃមើលគ្រោងការណ៍បែបនេះ។ ការ​ឌិគ្រីប​ក្នុង​របៀប​នេះ​ក៏​មិន​ច្បាស់​ទាំង​ស្រុង​ដែរ ដូច្នេះ​វា​ល្អ​ប្រសើរ​ក្នុង​ការ​មើល​ដ្យាក្រាម។

សម្រាប់ 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 ។ ពេលវេលាដែលត្រូវការដើម្បីបំបែកកូដសម្ងាត់ត្រូវបានកំណត់ដោយកម្លាំងគ្រីបគ្រីបរបស់វា។ វាកាន់តែធំ ក្បួនដោះស្រាយការអ៊ិនគ្រីបគឺ "ខ្លាំងជាង" ។ វារឹតតែប្រសើរជាងនេះទៅទៀត ប្រសិនបើដំបូងវាមិនអាចរកឱ្យឃើញទាល់តែសោះថាតើលទ្ធផលនៃការលួចចូលអាចសម្រេចបាន។

វិធីសាស្រ្តអ៊ិនគ្រីបទំនើបជាមូលដ្ឋាន

ក្នុងចំណោមវិធីសាស្រ្តអ៊ិនគ្រីបផ្សេងៗ វិធីសាស្ត្រសំខាន់ៗខាងក្រោមអាចត្រូវបានសម្គាល់៖

  • ក្បួនដោះស្រាយការជំនួស ឬជំនួស - តួអក្សរនៃអត្ថបទប្រភពត្រូវបានជំនួសដោយតួអក្សរនៃអក្ខរក្រមផ្សេងទៀត (ឬដូចគ្នា) ដោយអនុលោមតាមគ្រោងការណ៍ដែលបានកំណត់ទុកជាមុនដែលនឹងក្លាយជាគន្លឹះនៃលេខសម្ងាត់នេះ។ ដោយឡែកពីគ្នា វិធីសាស្ត្រនេះមិនត្រូវបានអនុវត្តនៅក្នុងប្រព័ន្ធគ្រីបតូទំនើបទេ ដោយសារកម្លាំងគ្រីបគ្រីបទាបខ្លាំងរបស់វា។
  • ក្បួនដោះស្រាយការរៀបចំឡើងវិញ - តួអក្សរនៃអត្ថបទដើមត្រូវបានប្តូរតាមគោលការណ៍ជាក់លាក់មួយ ដែលជាគន្លឹះសម្ងាត់។ ក្បួនដោះស្រាយការផ្លាស់ប្តូរខ្លួនវាមានកម្លាំងគ្រីបគ្រីបទាប ប៉ុន្តែត្រូវបានរួមបញ្ចូលជាធាតុមួយនៅក្នុងប្រព័ន្ធគ្រីបតូទំនើបជាច្រើន។
  • ក្បួនដោះស្រាយហ្គាម៉ា - តួអក្សរនៃអត្ថបទប្រភពត្រូវបានបន្ថែមទៅតួអក្សរនៃលំដាប់ចៃដន្យជាក់លាក់មួយ។ ឧទាហរណ៍ទូទៅបំផុតគឺការអ៊ិនគ្រីបនៃឯកសារ "username.pwl" ដែលក្នុងនោះប្រព័ន្ធប្រតិបត្តិការ Microsoft Windows 95 រក្សាទុកពាក្យសម្ងាត់ទៅកាន់ធនធានបណ្តាញរបស់អ្នកប្រើដែលបានផ្តល់ឱ្យ (ពាក្យសម្ងាត់សម្រាប់ចូលទៅក្នុងម៉ាស៊ីនមេ NT ពាក្យសម្ងាត់សម្រាប់ការចូលប្រើអ៊ីនធឺណិត DialUp ។ល។) .

នៅពេលដែលអ្នកប្រើប្រាស់បញ្ចូលពាក្យសម្ងាត់របស់ពួកគេនៅពេលចូលទៅក្នុង Windows 95 ហ្គាម៉ា (តែងតែដូចគ្នា) ត្រូវបានបង្កើតពីវាដោយប្រើក្បួនដោះស្រាយការអ៊ិនគ្រីប RC4 ដែលត្រូវបានប្រើដើម្បីអ៊ិនគ្រីបពាក្យសម្ងាត់បណ្តាញ។ ភាពសាមញ្ញនៃការជ្រើសរើសពាក្យសម្ងាត់ក្នុងករណីនេះគឺដោយសារតែ Windows តែងតែចូលចិត្តពណ៌ចម្រុះដូចគ្នា។

  • ក្បួនដោះស្រាយផ្អែកលើការបំប្លែងគណិតវិទ្យាដ៏ស្មុគស្មាញនៃអត្ថបទប្រភពដោយយោងតាមរូបមន្តជាក់លាក់មួយ។ ពួកគេជាច្រើនប្រើបញ្ហាគណិតវិទ្យាដែលមិនអាចដោះស្រាយបាន។ ឧទាហរណ៍ ក្បួនដោះស្រាយការអ៊ិនគ្រីប RSA ដែលប្រើយ៉ាងទូលំទូលាយនៅលើអ៊ីនធឺណិតគឺផ្អែកលើលក្ខណៈសម្បត្តិនៃលេខបឋម។

ប្រព័ន្ធគ្រីបតូស៊ីមេទ្រី និងស៊ីមេទ្រី

មុននឹងបន្តទៅក្បួនដោះស្រាយនីមួយៗ ចូរយើងពិចារណាដោយសង្ខេបអំពីគោលគំនិតនៃប្រព័ន្ធគ្រីបតូស៊ីមេទ្រី និងស៊ីមេទ្រី។ ការបង្កើតកូនសោសម្ងាត់ និងអ៊ិនគ្រីបសារជាមួយវាគឺគ្រាន់តែជាសមរភូមិពាក់កណ្តាលប៉ុណ្ណោះ។ ប៉ុន្តែ​តើ​សោ​បែបនេះ​អាច​ផ្ញើ​ទៅ​អ្នក​ដែល​ត្រូវ​ប្រើ​វា​ដើម្បី​ឌិគ្រីប​សារ​ដើម​ដោយ​របៀបណា? ការបញ្ជូនកូនសោអ៊ិនគ្រីបត្រូវបានចាត់ទុកថាជាបញ្ហាចម្បងមួយនៃការគ្រីបគ្រីប។

ខណៈពេលដែលនៅសល់នៅក្នុងក្របខ័ណ្ឌនៃប្រព័ន្ធស៊ីមេទ្រីមួយ (ដូច្នេះមានឈ្មោះដោយសារតែសោដូចគ្នាត្រូវបានប្រើសម្រាប់ការអ៊ិនគ្រីប និងការឌិគ្រីប) ចាំបាច់ត្រូវមានបណ្តាញទំនាក់ទំនងដែលអាចទុកចិត្តបានសម្រាប់ការបញ្ជូនសោសម្ងាត់។ ប៉ុន្តែប៉ុស្តិ៍បែបនេះមិនតែងតែមាននោះទេ ហេតុដូច្នេះហើយគណិតវិទូជនជាតិអាមេរិក Diffie, Hellman និង Merkle បានបង្កើតគំនិតនៃសោសាធារណៈ និងការអ៊ិនគ្រីបមិនស៊ីមេទ្រីនៅឆ្នាំ 1976 ។ នៅក្នុងប្រព័ន្ធគ្រីបតូបែបនេះ មានតែកូនសោសម្រាប់ដំណើរការអ៊ិនគ្រីបប៉ុណ្ណោះដែលមានជាសាធារណៈ ហើយនីតិវិធីនៃការឌិគ្រីបត្រូវបានដឹងតែចំពោះម្ចាស់សោសម្ងាត់ប៉ុណ្ណោះ។

ជាឧទាហរណ៍ នៅពេលដែលខ្ញុំចង់ផ្ញើសារមកខ្ញុំ ខ្ញុំបង្កើតសោសាធារណៈ និងឯកជន។ ខ្ញុំផ្ញើវាទៅអ្នក អ្នកអ៊ិនគ្រីបសារ ហើយផ្ញើមកខ្ញុំ។ មានតែខ្ញុំទេដែលអាចឌិគ្រីបសារបាន ព្រោះខ្ញុំមិនបានផ្តល់សោសម្ងាត់ដល់នរណាម្នាក់ ជាការពិតណាស់ គ្រាប់ចុចទាំងពីរត្រូវបានភ្ជាប់គ្នាតាមរបៀបពិសេសមួយ (តាមវិធីផ្សេងគ្នានៅក្នុងប្រព័ន្ធគ្រីបតូនីមួយៗ) ហើយការចែកចាយសោសាធារណៈមិនបំផ្លាញភាពរឹងមាំនៃគ្រីបតូរបស់ប្រព័ន្ធនោះទេ។

នៅក្នុងប្រព័ន្ធ asymmetric តម្រូវការខាងក្រោមត្រូវតែពេញចិត្ត៖ មិនមានក្បួនដោះស្រាយ (ឬវាមិនទាន់ដឹង) ដែលនឹងទាញយកអត្ថបទដើមពី cryptotext និងសោសាធារណៈ។ ឧទាហរណ៏នៃប្រព័ន្ធបែបនេះគឺប្រព័ន្ធគ្រីប RSA ដ៏ល្បីល្បាញ។

ក្បួនដោះស្រាយ 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

ចាប់តាំងពីការបង្កើតរបស់ខ្លួនមក 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).

  • ការណែនាំអំពីការគ្រីបគ្រីប / Ed ។ V.V. យ៉ាសឆេនកូ។ អិមៈ MTsNMO, 2000 ។
  • Nosov V. A. គ្រោងប្រវត្តិសាស្ត្រសង្ខេបនៃការអភិវឌ្ឍន៍នៃការគ្រីប // ដំណើរការនៃសន្និសីទ "សាកលវិទ្យាល័យម៉ូស្គូនិងការអភិវឌ្ឍន៍នៃការគ្រីបគ្រីបនៅប្រទេសរុស្ស៊ី" MSU ថ្ងៃទី 17-18 ខែតុលាឆ្នាំ 2002 ។
  • Salomaa A. ការគ្រីបសោសាធារណៈ។ M. , 1996 ។
  • Zimmerman F. PGP - ការអ៊ិនគ្រីបសោសាធារណៈសម្រាប់អ្នករាល់គ្នា។
  • ប្រព័ន្ធ Caesar Cipher

    ឧទាហរណ៍នៃក្បួនដោះស្រាយជំនួសគឺប្រព័ន្ធអ៊ិនគ្រីប 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 តួអក្សរមានអត្ថន័យតិចតួច។

    ការប្រកួតប្រជែង AES (ស្តង់ដារអ៊ិនគ្រីបកម្រិតខ្ពស់)

    ក្នុងទសវត្សរ៍ទី 80 នៅសហរដ្ឋអាមេរិក ពួកគេបានអនុម័តស្តង់ដារការអ៊ិនគ្រីបស៊ីមេទ្រីសម្រាប់ការប្រើប្រាស់ផ្ទៃក្នុង - DES ((ស្តង់ដារការអ៊ិនគ្រីបទិន្នន័យ មានស្តង់ដារស្រដៀងគ្នានៅក្នុងប្រទេសរុស្ស៊ី)។ ប៉ុន្តែនៅឆ្នាំ 1997 នៅពេលដែលវាច្បាស់ថា 56-bit DES key មិនគ្រប់គ្រាន់សម្រាប់ការជឿទុកចិត្ត cryptosystem វិទ្យាស្ថានស្តង់ដារអាមេរិកបានប្រកាសការប្រកួតប្រជែងសម្រាប់ក្បួនដោះស្រាយស្តង់ដារថ្មី ពីជម្រើសចំនួន 15 ដែលល្អបំផុតត្រូវបានជ្រើសរើស៖ ក្បួនដោះស្រាយបែលហ្ស៊ិក Rijndael (ឈ្មោះរបស់វាត្រូវបានបង្កើតឡើងដោយឈ្មោះអ្នកនិពន្ធ - Rijmen និង Daemen អានថា "Rijndael" ។ ក្បួនដោះស្រាយនេះត្រូវបានបង្កើតឡើងរួចហើយនៅក្នុងឧបករណ៍គ្រីបគ្រីបផ្សេងៗដែលផ្គត់ផ្គង់ដល់ទីផ្សារដោយអ្នកចុងក្រោយផ្សេងទៀត) អ្នកឈ្នះនៃការប្រកួតប្រជែងគឺ MARS, RC6, Serpent, TwoFish រាល់ក្បួនដោះស្រាយទាំងនេះត្រូវបានគេរកឃើញថាមានភាពរឹងមាំ និងទទួលបានជោគជ័យក្នុងការទប់ទល់នឹងវិធីសាស្ត្រគ្រីបគ្រីបដ៏ល្បីទាំងអស់។ .

    មុខងារកូដសម្ងាត់

    មុខងារកូដសម្ងាត់បំលែងទិន្នន័យបញ្ចូលនៃទំហំណាមួយទៅជាខ្សែអក្សរទំហំថេរ។ វាពិបាករកណាស់សម្រាប់ពួកគេ៖

    • សំណុំទិន្នន័យពីរផ្សេងគ្នាដែលមានលទ្ធផលផ្លាស់ប្តូរដូចគ្នា (ធន់នឹងការប៉ះទង្គិច); ឧទាហរណ៍ ចំនួននៃប្រតិបត្តិការនព្វន្ធដែលត្រូវការដើម្បីស្វែងរកប្លុកទិន្នន័យដែលមានសារខ្លីសម្រាប់មុខងារ MD5 hash គឺប្រហែល 2 64;
    • តម្លៃបញ្ចូលដោយផ្អែកលើលទ្ធផល hashing ដែលគេស្គាល់ (មិនអាចត្រឡប់វិញបាន); សម្រាប់ MD5 ចំនួនប្រតិបត្តិការប៉ាន់ស្មានដែលត្រូវការដើម្បីគណនាសារដើមគឺ 2,128 ។