ការណែនាំអំពីមូលដ្ឋានគ្រឹះនៃសោស៊ីមេទ្រីទំនើប។ ការផ្លាស់ប្តូរមតិ ចុះឈ្មោះ ការផ្លាស់ប្តូរមតិប្រតិកម្ម លីនេអ៊ែរ ចុះឈ្មោះ គ

  • 06.11.2021

ការចុះឈ្មោះផ្លាស់ប្តូរមតិយោបល់លីនេអ៊ែរ(RSLO, eng ។ ការចុះឈ្មោះផ្លាស់ប្តូរមតិត្រឡប់លីនេអ៊ែរ, LFSR) គឺជាការចុះឈ្មោះការផ្លាស់ប្តូរពាក្យបន្តិច ដែលតម្លៃនៃការបញ្ចូល (បញ្ចូល) ប៊ីតគឺស្មើនឹងអនុគមន៍ប៊ូលីនលីនេអ៊ែរ ពីតម្លៃនៃប៊ីតដែលនៅសល់នៃការចុះឈ្មោះមុនការផ្លាស់ប្តូរ។ វាអាចត្រូវបានរៀបចំដោយផ្នែកទន់ និងផ្នែករឹង។ វាត្រូវបានប្រើដើម្បីបង្កើត pseudo-random bit sequences ដែលស្វែងរកកម្មវិធី ជាពិសេសនៅក្នុង cryptography ។

ការពិពណ៌នា

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

គោលការណ៍នៃប្រតិបត្តិការ

ភាពស្មុគស្មាញលីនេអ៊ែរ

ទំនាក់ទំនងឯករាជ្យ

ក្នុងកិច្ចខិតខំប្រឹងប្រែងដើម្បីសម្រេចបាននូវភាពស្មុគស្មាញលីនេអ៊ែរខ្ពស់នៃលំដាប់ដែលបានបង្កើត អ្នកគ្រីបគ្រីបបានរួមបញ្ចូលគ្នានូវលទ្ធផលនៃការផ្លាស់ប្តូរជាច្រើនដែលមិនមែនជាលីនេអ៊ែរ។ ក្នុងករណីនេះ លំដាប់លទ្ធផលមួយ ឬច្រើន (ឬសូម្បីតែលទ្ធផលនៃ RSLOS នីមួយៗ) អាចត្រូវបានតភ្ជាប់ដោយលំហូរទូទៅ និងបើកដោយអ្នកវិភាគគ្រីបតូ។ ការលួចចូលផ្អែកលើភាពងាយរងគ្រោះបែបនេះត្រូវបានគេហៅថា ការធ្វើកោសល្យវិច័យទាក់ទងគ្នា។... គំនិតចម្បងនៃការ hack បែបនេះគឺដើម្បីស្វែងរកការជាប់ទាក់ទងគ្នារវាងទិន្នផលរបស់ម៉ាស៊ីនភ្លើង និងលទ្ធផលនៃផ្នែកធាតុផ្សំរបស់វា។ បន្ទាប់មក ដោយសង្កេតមើលលំដាប់លទ្ធផល អ្នកអាចទទួលបានព័ត៌មានអំពីម្ជុលកម្រិតមធ្យមទាំងនេះ ហើយដូច្នេះ hack ម៉ាស៊ីនភ្លើង។ Thomas Sigenthaler បានបង្ហាញថាឯករាជ្យភាពជាប់ទាក់ទងគ្នាអាចត្រូវបានកំណត់យ៉ាងត្រឹមត្រូវ ហើយថាមានការដោះដូររវាងឯករាជ្យភាពជាប់ទាក់ទងគ្នា និងភាពស្មុគស្មាញលីនេអ៊ែរ។

ការអនុវត្តកម្មវិធី

ការអនុវត្តកម្មវិធីរបស់ RSLOS គឺមានភាពយឺតយ៉ាវ និងដំណើរការលឿនជាងប្រសិនបើពួកគេត្រូវបានសរសេរនៅក្នុង assembler ។ ដំណោះស្រាយមួយក្នុងចំណោមដំណោះស្រាយគឺការប្រើប៉ារ៉ាឡែលនៃ 16 RSLOS (ឬ 32 អាស្រ័យលើប្រវែងពាក្យនៅក្នុងស្ថាបត្យកម្មកុំព្យូទ័រ) ។ នៅក្នុងគ្រោងការណ៍បែបនេះ អារេនៃពាក្យត្រូវបានប្រើ ទំហំស្មើនឹងប្រវែងនៃការផ្លាស់ប្តូរការចុះឈ្មោះ ហើយពាក្យនីមួយៗសំដៅទៅលើ RSLOS របស់វា។ ដោយសារលេខលំដាប់ម៉ាស៊ីនដូចគ្នាត្រូវបានប្រើ វាអាចផ្តល់អត្ថប្រយោជន៍គួរឱ្យកត់សម្គាល់នៅក្នុងដំណើរការម៉ាស៊ីនភ្លើង។

ការកំណត់រចនាសម្ព័ន្ធ Fibonacci

ពិចារណាការចុះឈ្មោះការផ្លាស់ប្តូរ 32 ប៊ីត។ មានលំដាប់បង្វែរសម្រាប់វា។ (32, 31, 30, 28, 26, 1) (\ displaystyle \ left (32, \; 31, \; 30, \; 28, \; 26, \; 1 \ ស្តាំ))... នេះមានន័យថាដើម្បីបង្កើតប៊ីតថ្មី អ្នកត្រូវតែ XOR ប៊ីតទី 31, 30, 29, 27, 25 និង 0 ប៊ីត។ RSLO ដែលទទួលបានមានរយៈពេលអតិបរមា 2 32 - 1 (\ displaystyle 2 ^ (32) -1)... លេខកូដ C សម្រាប់ការចុះឈ្មោះបែបនេះមានដូចខាងក្រោម៖

int LFSR_Fibonacci (ចាត់ទុកជាមោឃៈ) (ឋិតិវន្តដែលមិនបានចុះហត្ថលេខាយូរ S = 0x00000001; S = ((((S >> 31) ^ (S >> 30) ^ (S >> 29) ^ (S >> 27) ^ (S >> 25) ^ ស) & 0x00000001)<< 31 ) | (S >> 1); ត្រឡប់ S & 0x00000001; )

ការកំណត់រចនាសម្ព័ន្ធ Galois

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

លេខកូដ C សម្រាប់ការចុះឈ្មោះការផ្លាស់ប្តូរ 32 ប៊ីតមានដូចខាងក្រោម៖

int LFSR_Galois (ចាត់ទុកជាមោឃៈ) (ឋិតិវន្តដែលមិនបានចុះហត្ថលេខាយូរ S = 0x00000001; ប្រសិនបើ (S & 0x00000001) (S = (S ^ 0x80000057 >> 1) | 0x80000000; ត្រឡប់ 1;) else (S >> 0;) ត្រឡប់

គួរកត់សម្គាល់ថារង្វិលជុំនៃចំនួនថេរនៃការហៅទៅកាន់មុខងារ LFSR_Galois ក្នុងការកំណត់រចនាសម្ព័ន្ធ Galois គឺលឿនជាងមុខងារ LFSR_Fibonacci ប្រហែល 2 ដងក្នុងការកំណត់រចនាសម្ព័ន្ធ Fibonacci (កម្មវិធីចងក្រង MS VS 2010 នៅលើ Intel Core i5) ។

ឧទាហរណ៍នៃលំដាប់ដែលបានបង្កើត

ការកំណត់រចនាសម្ព័ន្ធ Fibonacci

អនុញ្ញាតឱ្យ RSLOS ត្រូវបានផ្តល់ឱ្យដោយពហុនាមលក្ខណៈ x 3 + x + 1 (\ displaystyle x ^ (3) + x + 1)... នេះមានន័យថាប៊ីតនៃម៉ាស៊ីននឹងជាលេខ 2 និងទី 0 ហើយមួយនៅក្នុងរូបមន្តពហុធាមានន័យថាប៊ីតទី 0 គឺជាការបញ្ចូល។ មុខងារមតិកែលម្អមានទម្រង់ S j = S j - 1 ⊕ S j - 3 (\ displaystyle S_ (j) = S_ (j-1) \ oplus S_ (j-3))... ចូរនិយាយថាស្ថានភាពដំបូងនៃការផ្លាស់ប្តូរការចុះឈ្មោះគឺជាលំដាប់។ ស្ថានភាពបន្ថែមនៃការចុះឈ្មោះត្រូវបានបង្ហាញក្នុងតារាងខាងក្រោម៖

លេខជំហាន រដ្ឋ បានបង្កើតប៊ីត
0 [0, 0, 1] (\ displaystyle \ left) 1
1 0
2 0
3 1
4 1
5 1
6 0
7 [0, 0, 1] (\ displaystyle \ left) 1

ចាប់តាំងពីស្ថានភាពផ្ទៃក្នុងនៅជំហានទីប្រាំពីរបានត្រលប់ទៅដើមរបស់វាវិញ បន្ទាប់មកចាប់ផ្តើមពីជំហានបន្ទាប់ ប៊ីតនឹងត្រូវបានធ្វើម្តងទៀត។ នោះ​គឺ​ជា​លំដាប់​ដែល​បាន​បង្កើត​មាន​ដូច​ខាង​ក្រោម​: [១, ០, ០, ១, ១, ១, ០, ១. ... ... ] (\ displaystyle \ ឆ្វេង)(លំដាប់នៃប៊ីតនៅក្នុងលំដាប់ត្រូវគ្នាទៅនឹងលំដាប់នៃជំនាន់របស់ពួកគេដោយ RSLOS) ។ ដូច្នេះ កំឡុងពេលនៃលំដាប់គឺ 7 នោះគឺជាតម្លៃអតិបរមាដែលអាចធ្វើទៅបានដែលបានកើតឡើងដោយសារភាពដើមនៃពហុនាមដែលបានផ្តល់ឱ្យ។

ការកំណត់រចនាសម្ព័ន្ធ Galois

យើងយកពហុនាមលក្ខណៈដូចគ្នា ពោលគឺ c 3 = c 1 = 1 (\ displaystyle c_ (3) = c_ (1) = 1), c 2 = 0 (\ displaystyle c_ (2) = 0)... មានតែប៊ីតទី 1 ប៉ុណ្ណោះដែលត្រូវបានបន្ថែមទៅប៊ីតទិន្នផល។ ស្ថានភាពដំបូងគឺដូចគ្នា។ ការចុះឈ្មោះបន្ថែមបញ្ជាក់៖

លេខជំហាន រដ្ឋ បានបង្កើតប៊ីត
0 [0, 0, 1] (\ displaystyle \ left) -
1 [1, 0, 0] (\ displaystyle \ left) 0
2 [0, 1, 1] (\ displaystyle \ left) 1
3 [1, 0, 1] (\ displaystyle \ left) 1
4 [1, 1, 1] (\ displaystyle \ left) 1
5 [1, 1, 0] (\ displaystyle \ ឆ្វេង) 0
6 [0, 1, 0] (\ displaystyle \ left) 0
7 [0, 0, 1] (\ displaystyle \ left) 1

ស្ថានភាពខាងក្នុងនៃការចុះឈ្មោះនៅជំហានទី 7 ត្រឡប់ទៅសភាពដើមវិញ ដូច្នេះហើយ អំឡុងពេលរបស់វាក៏មាន 7 ។ មិនដូចការកំណត់ Fibonacci ទេ ស្ថានភាពខាងក្នុងនៃការចុះឈ្មោះបានប្រែជាខុសគ្នា ប៉ុន្តែលំដាប់ដែលបានបង្កើតគឺដូចគ្នា មានតែ ផ្លាស់ប្តូរដោយ 4 វដ្តនាឡិកា: [0, 1, 1, 1, 0, 0, 0, 0, 1, 1, ។ ... ... ] (\ displaystyle \ ឆ្វេង)(លំដាប់នៃប៊ីតនៅក្នុងលំដាប់ត្រូវគ្នាទៅនឹងលំដាប់នៃជំនាន់របស់ពួកគេដោយ RSLOS) ។

ការបង្កើតពហុនាមបុព្វកាល

ប៊ីត n (\ displaystyle n) ពហុធាបឋម រយៈពេល 2 n - 1 (\ displaystyle 2 ^ (n) -1) ចំនួនពហុធាបឋម
2 x 2 + x + 1 (\ displaystyle x ^ (2) + x + 1) 3 1
3 x 3 + x 2 + 1 (\ displaystyle x ^ (3) + x ^ (2) +1) 7 2
4 x 4 + x 3 + 1 (\ displaystyle x ^ (4) + x ^ (3) +1) 15 2
5 x 5 + x 3 + 1 (\ displaystyle x ^ (5) + x ^ (3) +1) 31 6
6 x 6 + x 5 + 1 (\ displaystyle x ^ (6) + x ^ (5) +1) 63 6
7 x 7 + x 6 + 1 (\ displaystyle x ^ (7) + x ^ (6) +1) 127 18
8 x 8 + x 6 + x 5 + x 4 + 1 (\ displaystyle x^(8) + x^(6) + x^(5) + x^(4) +1) 255 16
9 x 9 + x 5 + 1 (\ displaystyle x ^ (9) + x ^ (5) +1) 511 48
10 x 10 + x 7 + 1 (\ displaystyle x ^ (10) + x ^ (7) +1) 1023 60
11 x 11 + x 9 + 1 (\ displaystyle x ^ (11) + x ^ (9) +1) 2047 176
12 x 12 + x 11 + x 10 + x 4 + 1 (\ displaystyle x^(12) + x^(11) + x^(10) + x^(4) +1) 4095 144
13 x 13 + x 12 + x 11 + x 8 + 1 (\ displaystyle x^(13) + x^(12) + x^(11) + x^(8) +1) 8191 630
14 x 14 + x 13 + x 12 + x 2 + 1 (\ displaystyle x ^ (14) + x ^ (13) + x ^ (12) + x ^ (2) +1) 16383 756
15 x 15 + x 14 + 1 (\ displaystyle x ^ (15) + x ^ (14) +1) 32767 1800
16 x 16 + x 14 + x 13 + x 11 + 1 (\ displaystyle x ^ (16) + x ^ (14) + x ^ (13) + x ^ (11) +1) 65535 2048
17 x 17 + x 14 + 1 (\ displaystyle x ^ (17) + x ^ (14) +1) 131071 7710
18 x 18 + x 11 + 1 (\ displaystyle x ^ (18) + x ^ (11) +1) 262143 7776
19 x 19 + x 18 + x 17 + x 14 + 1 (\ displaystyle x ^ (19) + x ^ (18) + x ^ (17) + x ^ (14) +1) 524287 27594
20 - 168
2 - 786, 1024, 2048, 4096

គុណសម្បត្តិ​និង​គុណវិបត្តិ

គុណសម្បត្តិ

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

គុណវិបត្តិ

វិធីសាស្រ្តធ្វើឱ្យប្រសើរឡើងនូវកម្លាំងគ្រីបនៃលំដាប់ដែលបានបង្កើត

ម៉ាស៊ីនភ្លើងជាមួយនឹងការចុះឈ្មោះផ្លាស់ប្តូរច្រើន។

ម៉ាស៊ីនភ្លើងនៃប្រភេទនេះមានការចុះឈ្មោះផ្លាស់ប្តូរមតិកែលម្អលីនេអ៊ែរជាច្រើនដែលបង្កើតប៊ីត x 1, i, x 2, i,…, x M, i (\ displaystyle x_ (1, i), \; x_ (2, i), \; \ dots, \; x_ (M, i))រៀងគ្នា។ លើសពីនេះ ប៊ីតដែលបានបង្កើតត្រូវបានបំប្លែងដោយមុខងារប៊ូលីនមួយចំនួន f (x 1, i, x 2, i,…, x M, i) (\ displaystyle f (x_ (1, i), \; x_ (2, i), \; \ dots, \; x_ (M , ខ្ញុំ)))... វាគួរតែត្រូវបានកត់សម្គាល់ថាសម្រាប់ម៉ាស៊ីនភ្លើងនៃប្រភេទនេះប្រវែងចុះឈ្មោះ L i (\ displaystyle L_ (i)), i = 1, 2,…, M (\ displaystyle i = 1, \; 2, \; \\ dots, \; M)គឺសាមញ្ញទៅវិញទៅមក។

រយៈពេលនៃម៉ាស៊ីនភ្លើងនេះគឺ T = (2 L 1 - 1) ⋅ (2 L 2 - 1) ⋯ (2 LM - 1) ≲ 2 L (\ displaystyle T = (2 ^ (L_ (1)) - 1) \ cdot (2 ^ ( L_ (2)) - 1) \ cdots (2 ^ (L_ (M)) - 1) \ lesssim 2 ^ (L))កន្លែងណា L = ∑ i = 1 M L i (\ displaystyle L = \ sum \ limits _ (i = 1) ^ (M) L_ (i))- ចំនួនកោសិកាសរុប។ ហេតុដូច្នេះហើយ ការប្រើប្រាស់ RSLOS ជាច្រើនបង្កើនរយៈពេលនៃលំដាប់ដែលបានបង្កើតដោយប្រៀបធៀបជាមួយនឹងការចុះឈ្មោះមួយ ដែលបង្កើនកម្លាំងគ្រីបរបស់ម៉ាស៊ីនភ្លើង។ វាក៏បង្កើនភាពស្មុគស្មាញលីនេអ៊ែរឬប្រវែងនៃការចុះឈ្មោះខ្លីបំផុតដែលត្រូវគ្នាទៅនឹងម៉ាស៊ីនភ្លើងដែលបានផ្តល់ឱ្យ។ ការចុះឈ្មោះបែបនេះត្រូវបានរកឃើញដោយប្រើក្បួនដោះស្រាយ Berlekamp-Massey ពីលំដាប់ដែលបានបង្កើត។ ល្អបំផុត ប្រវែងរបស់វាគឺសមស្របជាមួយនឹងរយៈពេលនៃលំដាប់ដែលបានបង្កើត។

ម៉ាស៊ីនភ្លើងជាមួយនឹងការបំប្លែងមិនលីនេអ៊ែរ

ដ្យាក្រាមប្លុកនៃម៉ាស៊ីនភ្លើងបែបនេះមិនខុសពីម៉ាស៊ីនភ្លើងមុននោះទេ។ ភាពខុសគ្នាសំខាន់គឺថាឧបករណ៍បំលែងត្រូវបានបញ្ជាក់ដោយមុខងារប៊ូលីនដែលមិនមែនជាលីនេអ៊ែរ f (x 1, x 2,…, x M) (\ displaystyle f (x_ (1), x_ (2), \ dots, x_ (M)))... ជាឧទាហរណ៍ អនុគមន៍ Zhegalkin (យោងតាមទ្រឹស្តីបទ Zhegalkin មុខងារប៊ូលីនណាមួយអាចត្រូវបានតំណាងដោយពហុនាម Zhegalkin) ។

ម៉ាស៊ីនភ្លើងដែលមិនមែនជាលីនេអ៊ែរក៏អាចត្រូវបានអនុវត្តនៅលើ ការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់មិនមែនលីនេអ៊ែរ... គាត់អាចផ្តល់ឱ្យ 2 2 L - 1 - L (\ displaystyle 2 ^ (2 ^ (L-1) -L))វ៉ារ្យ៉ង់នៃលំដាប់នៃរយៈពេលអតិបរមា ដែលលើសពី RSLOS ។

ភាពធន់នៃគ្រីបតូរបស់ម៉ាស៊ីនភ្លើងនេះត្រូវបានកើនឡើងដោយសារតែភាពមិនស្មើគ្នានៃមុខងារដែលបានប្រើ។ ការ​កំណត់​ស្ថានភាព​នៃ​ការ​ចុះឈ្មោះ​ពី​លំដាប់​ប៊ីត​ដែល​បាន​បង្កើត​គឺ​ជា​បញ្ហា​គណិតវិទ្យា​ដ៏​ស្មុគស្មាញ​មួយ ព្រោះ​មិន​មាន​ក្បួន​ដោះស្រាយ​ដែល​គេ​ស្គាល់​សម្រាប់​ការ​ស្ដារ​ស្ថានភាព​ដើម​ឡើង​វិញ។

វិធីសាស្រ្តនេះត្រូវបានប្រើឧទាហរណ៍ក្នុង ម៉ាស៊ីនភ្លើង Geffនិងម៉ាស៊ីនភ្លើង Geff ទូទៅទោះជាយ៉ាងណាម៉ាស៊ីនភ្លើងបែបនេះអាចត្រូវបានបង្ក្រាបដោយការវាយប្រហារទាក់ទងគ្នា។

Oscillators ជាមួយនឹងពេលវេលាផ្សេងគ្នានៃការចុះឈ្មោះការផ្លាស់ប្តូរ

ម៉ាស៊ីនភ្លើងឈប់ហើយទៅ

ម៉ាស៊ីនភ្លើងឈប់ហើយទៅ(English Stop-and-Go, Both-Piper) ប្រើលទ្ធផលនៃ RSLOS-1 ដើម្បីគ្រប់គ្រងប្រេកង់នាឡិការបស់ RSLOS-2 ដូច្នេះ RSLOS-2 ផ្លាស់ប្តូរស្ថានភាពរបស់វានៅពេលជាក់លាក់ណាមួយ លុះត្រាតែទិន្នផលរបស់ RSLOS- 1 នៅពេលនោះស្មើនឹងឯកតា។ គ្រោងការណ៍នេះមិនបានទប់ទល់នឹងការធ្វើកោសល្យវិច័យដែលទាក់ទងគ្នានោះទេ។

ដើម្បីបង្កើនភាពរឹងមាំនៃគ្រីបវាត្រូវបានស្នើឡើង ម៉ាស៊ីនភ្លើងឈប់និងទៅឆ្លាស់គ្នា។... វាប្រើការផ្លាស់ប្តូរចំនួនបីដែលមានប្រវែងខុសៗគ្នា។ នៅទីនេះ RSLOS-1 គ្រប់គ្រងប្រេកង់នាឡិកានៃការចុះឈ្មោះទី 2 និងទី 3 ពោលគឺ RSLOS-2 ផ្លាស់ប្តូរស្ថានភាពរបស់វានៅពេលដែលទិន្នផល RSLOS-1 ស្មើនឹងមួយ ហើយ RSLOS-3 - នៅពេលដែលលទ្ធផល RSLOS-1 គឺសូន្យ។ ទិន្នផលម៉ាស៊ីនភ្លើងគឺជាប្រតិបត្តិការនៃម៉ូឌុលបន្ថែមលទ្ធផលពីរនៃ RSLOS-2 និង RSLOS-3 ។ ម៉ាស៊ីនភ្លើងនេះមានរយៈពេលយូរនិងភាពស្មុគស្មាញលីនេអ៊ែរធំ។ មានវិធីនៃការវាយប្រហារទំនាក់ទំនង RSLOS-1 ប៉ុន្តែវាមិនធ្វើឱ្យលក្ខណៈសម្បត្តិគ្រីបរបស់ម៉ាស៊ីនភ្លើងចុះខ្សោយខ្លាំងនោះទេ។

គ្រោងការណ៍នាឡិកាដ៏ស្មុគស្មាញមួយត្រូវបានប្រើនៅក្នុង ម៉ាស៊ីនភ្លើងពីរផ្លូវ "ឈប់ហើយទៅ"ដែលប្រើ 2 shift register ដែលមានប្រវែងដូចគ្នា។ ប្រសិនបើលទ្ធផលនៃ RSLOS-1 នៅចំណុចណាមួយនៅក្នុងពេលវេលា t i - 1 (\ displaystyle t_ (i-1))- មួយបន្ទាប់មក RSLOS-2 មិនត្រូវបានកំណត់ម៉ោងនោះទេ។ t i (\ displaystyle t_ (i))... ប្រសិនបើលទ្ធផលនៃ RSLOS-2 នៅពេលនេះ t i - 1 (\ displaystyle t_ (i-1))គឺស្មើនឹងសូន្យ ហើយនៅពេលបច្ចុប្បន្ន t i - 2 (\ displaystyle t_ (i-2))- មួយហើយប្រសិនបើការចុះឈ្មោះនេះត្រូវបានកំណត់ម៉ោង t i (\ displaystyle t_ (i))បន្ទាប់មកក្នុងពេលតែមួយ RSLOS-1 មិនត្រូវបានកំណត់ម៉ោងទេ។ ភាពស្មុគស្មាញលីនេអ៊ែរនៃសៀគ្វីនេះគឺប្រហែលស្មើនឹងរយៈពេលនៃលំដាប់ដែលបានបង្កើត។

ម៉ាស៊ីនភ្លើងបាញ់ដោយខ្លួនឯង។

ម៉ាស៊ីនភ្លើងពហុល្បឿនជាមួយផលិតផលខាងក្នុង

ម៉ាស៊ីនភ្លើងនេះប្រើការចុះឈ្មោះការផ្លាស់ប្តូរពីរ RSLOS-1 និង RSLOS-2 ។ ប្រេកង់នាឡិកានៃ RSLOS-2 in d (\ រចនាប័ទ្មបង្ហាញ ឃ)ដងច្រើនជាង RSLOS-1 ។ ប៊ីតជាក់លាក់នៃការចុះឈ្មោះទាំងនេះត្រូវបានគុណនឹងគ្នាទៅវិញទៅមកដោយប្រើប្រតិបត្តិការ AND ។ លទ្ធផលនៃគុណគឺ XORed រួមគ្នាដើម្បីបង្កើតលំដាប់លទ្ធផល។ ម៉ាស៊ីនភ្លើងនេះមានភាពស្មុគស្មាញលីនេអ៊ែរខ្ពស់ និងលក្ខណៈសម្បត្តិស្ថិតិល្អ។ ទោះជាយ៉ាងណាក៏ដោយស្ថានភាពរបស់វាអាចត្រូវបានកំណត់ពីលំដាប់លទ្ធផលនៃប្រវែង L 1 + L 2 + log 2 ⁡ d (\ displaystyle L_ (1) + L_ (2) + \ log _ (2) (d))កន្លែងណា L 1 (\ displaystyle L_ (1))និង L 2 (\ displaystyle L_ (2))- ប្រវែងនៃ RSLOS-1 និង RSLOS-2 រៀងគ្នា និង d (\ រចនាប័ទ្មបង្ហាញ ឃ)- សមាមាត្រនៃប្រេកង់នាឡិការបស់ពួកគេ។

ល្បាក់របស់ Gollmann

ដ្យាក្រាមនេះគឺជាកំណែប្រសើរឡើងនៃម៉ាស៊ីនភ្លើងឈប់និងទៅ។ វាមានលំដាប់នៃ RSLOS ការកំណត់នាឡិកានីមួយៗត្រូវបានគ្រប់គ្រងដោយ RSLOS មុន។ ប្រសិនបើលទ្ធផលនៃ RSLOS-1 នៅពេលនោះ។ t i (\ displaystyle t_ (i))គឺ 1 បន្ទាប់មក RSLOS-2 ត្រូវបានកំណត់ម៉ោង។ ប្រសិនបើលទ្ធផលនៃ RSLOS-2 នៅពេលនោះ។ t i (\ displaystyle t_ (i))គឺ 1 បន្ទាប់មក RSLOS-3 ត្រូវបានកំណត់ម៉ោង ហើយដូច្នេះនៅលើ។ លទ្ធផលនៃ RSLOS ចុងក្រោយគឺជាទិន្នផលរបស់ម៉ាស៊ីនភ្លើង។ ប្រសិនបើប្រវែងនៃ RSLOS ទាំងអស់គឺដូចគ្នានិងស្មើគ្នា L (\ displaystyle L)បន្ទាប់មករយៈពេលនៃប្រព័ន្ធពី M (\ displaystyle M) RSLO គឺស្មើនឹង (2 L - 1) M (\ displaystyle (2 ^ (L) -1) ^ (M))ហើយភាពស្មុគស្មាញលីនេអ៊ែរគឺ L (S) = L (2 L - 1) M - 1 (\ displaystyle L (S) = L (2 ^ (L) -1) ^ (M-1)) .

គំនិតនេះគឺសាមញ្ញ ហើយអាចប្រើដើម្បីបង្កើតលំដាប់ដែលមានរយៈពេលដ៏ធំ ភាពស្មុគស្មាញលីនេអ៊ែរធំ និងលក្ខណៈសម្បត្តិស្ថិតិល្អ។ ប៉ុន្តែជាអកុសល ពួកគេងាយនឹងធ្វើកោសល្យវិច័យ ហៅថា ការចាក់សោ(ភាសាអង់គ្លេសចាក់សោចូល) នៅពេល

- "កីឡាវាយកូនបាល់ Tetromino") ។ គាត់បានបង្កើត និងដោះស្រាយល្បែងផ្គុំរូបគណិតវិទ្យារាប់មិនអស់។ ប្រហែល 20 ឆ្នាំមុន ខ្ញុំបានរកឃើញថាគាត់ជិតនឹងរកឃើញច្បាប់ដែលខ្ញុំចូលចិត្តបំផុតនៃ 30 សម្រាប់ automata កោសិកាត្រឡប់មកវិញក្នុងឆ្នាំ 1959 នៅពេលដែលខ្ញុំទើបតែកើត។

របៀបដែលខ្ញុំបានជួប Saul Golomb

អ្នកវិទ្យាសាស្ត្រ និងគណិតវិទូស្ទើរតែទាំងអស់ដែលខ្ញុំដឹងថាខ្ញុំបានស្គាល់តាមរយៈទំនាក់ទំនងវិជ្ជាជីវៈរបស់ខ្ញុំ។ ប៉ុន្តែមិនមែន Sol Golomba ទេ។ វាគឺឆ្នាំ 1981 ហើយខ្ញុំជារូបវិទូអាយុ 21 ឆ្នាំ (ដែលបានក្លាយជាអ្នកល្បីល្បាញបន្តិចនៅក្នុងប្រព័ន្ធផ្សព្វផ្សាយដោយសារតែខ្ញុំជាអ្នកទទួលរង្វាន់ MacArthur ក្មេងជាងគេនៅឯពិធីប្រគល់រង្វាន់ដំបូង) កំពុងធ្វើការស្រាវជ្រាវនៅ។ មាន​ការ​គោះ​ទ្វារ​ការិយាល័យ​របស់​ខ្ញុំ ហើយ​មិន​យូរ​ប៉ុន្មាន​នារី​វ័យ​ក្មេង​ម្នាក់​បាន​ចូល​ទៅ​ក្នុង​បន្ទប់​នោះ។ នេះមិនធម្មតាទេ ព្រោះនៅសម័យនោះ មានស្ត្រីតិចតួចដែលអស់សង្ឃឹម ដែលពួកគេបានចូលរួមក្នុងទ្រឹស្តីរូបវិទ្យាថាមពលខ្ពស់។ ទោះបីជាខ្ញុំរស់នៅក្នុងរដ្ឋកាលីហ្វ័រញ៉ាអស់រយៈពេលជាច្រើនឆ្នាំក៏ដោយ ក៏ខ្ញុំមិនបានចាកចេញពីសាកលវិទ្យាល័យនោះទេ ដូច្នេះហើយខ្ញុំបានរៀបចំខ្លួនមិនល្អសម្រាប់ការកើនឡើងនៃថាមពលនៅរដ្ឋកាលីហ្វ័រញ៉ាភាគខាងត្បូងដែលផ្ទុះឡើងនៅក្នុងការិយាល័យរបស់ខ្ញុំ។ ស្ត្រីនោះបានណែនាំខ្លួននាងទៅ Astrid ហើយនិយាយថានាងបានចូលរៀននៅ Oxford និងស្គាល់នរណាម្នាក់ដែលខ្ញុំនៅជាមួយនៅមតេយ្យ។ នាងបានពន្យល់ថានាងមានភារកិច្ចក្នុងការប្រមូលព័ត៌មានអំពីមនុស្សគួរឱ្យចាប់អារម្មណ៍នៅក្នុងតំបន់ Pasadena ។ ខ្ញុំ​គិត​ថា​នាង​បាន​ចាត់​ទុក​ខ្ញុំ​ថា​ជា​ករណី​ពិបាក​មួយ ប៉ុន្តែ​ទោះ​ជា​យ៉ាង​ណា​ក៏​ដោយ​ទទូច​ឱ្យ​និយាយ។ ហើយថ្ងៃមួយ នៅពេលដែលខ្ញុំកំពុងព្យាយាមប្រាប់ពីអ្វីដែលខ្ញុំធ្វើ នាងបាននិយាយថា៖ អ្នកត្រូវតែជួបឪពុកខ្ញុំ។ គាត់ជាមនុស្សចាស់ទៅហើយ ប៉ុន្តែចិត្តរបស់គាត់នៅតែមុតស្រួច។ «ហើយ​វា​បាន​កើត​ឡើង​ដូច្នេះ​ថា Astrid Golomb ជា​កូន​ស្រី​ច្បង​របស់ Saul Golomb បាន​ណែនាំ​ខ្ញុំ​ដល់​គាត់។

គ្រួសារ Golomb រស់នៅក្នុងផ្ទះមួយដែលមានទីតាំងនៅភ្នំក្បែរ Pasadena ។ ពួកគេមានកូនស្រីពីរនាក់៖ Astrid - ចាស់ជាងខ្ញុំបន្តិច ក្មេងស្រីហូលីវូដដែលមានមហិច្ឆតា និង Beatrice - អំពីអាយុ និងគំនិតវិទ្យាសាស្ត្ររបស់ខ្ញុំ។ បងប្អូនស្រី Golomb តែងតែរៀបចំពិធីជប់លៀង ជាធម្មតានៅផ្ទះរបស់ពួកគេ។ ប្រធានបទគឺខុសគ្នា៖ វាជាពិធីជប់លៀងក្នុងសួន និង croquet ជាមួយ flamingos និង hedgehogs (" អ្នកឈ្នះនឹងក្លាយជាអ្នកសំលៀកបំពាក់ដែលស៊ីគ្នាបំផុតនឹងប្រធានបទដែលបានរៀបរាប់") ឬពិធីជប់លៀងបែប Stonehenge ដោយមានការណែនាំសរសេរជាអក្សររត់។ នៅឯពិធីជប់លៀងទាំងនេះ ក្មេងៗ និងមនុស្សមិនដូច្នេះទេបានឆ្លងកាត់ រួមទាំងអ្នកបំភ្លឺក្នុងតំបន់ផ្សេងៗ។ ហើយនៅលើពួកគេ ឡែកបន្តិច តែងតែមានបុរសតូចម្នាក់ដែលមានពុកចង្ការធំ។ បន្តិច​ដូច​ជា​សត្វ​អេហ្វ ហើយ​តែង​តែ​ពាក់​អាវ​ខ្មៅ​ជា​និច្ច - សាឡូម៉ូន ហ្គោឡុម ខ្លួន​ឯង។

បន្តិច​ម្ដងៗ ខ្ញុំ​បាន​រៀន​បន្តិច​អំពី​គាត់។ អ្វីដែលគាត់បានចូលរួមនៅក្នុង " ទ្រឹស្តីព័ត៌មាន"ថាគាត់ធ្វើការនៅសាកលវិទ្យាល័យ Southern California ។ គាត់មានភាពមិនច្បាស់លាស់ផ្សេងៗ ប៉ុន្តែជាក់ស្តែងដូចជារដ្ឋាភិបាលកម្រិតខ្ពស់ និងទំនាក់ទំនងផ្សេងទៀត។ ខ្ញុំបានលឺពីការចុះឈ្មោះផ្លាស់ប្តូរ ប៉ុន្តែស្ទើរតែមិនដឹងអ្វីទាំងអស់អំពីពួកគេ។"

នេះជាអ្វីដែលកើតឡើងបន្ទាប់ពីមួយរយៈ៖

ដូចដែលអ្នកបានឃើញ ការចុះឈ្មោះផ្លាស់ប្តូរតែងតែផ្លាស់ប្តូរប៊ីតទៅខាងឆ្វេង ហើយប៊ីតផ្សេងទៀតត្រូវបានបន្ថែមទៅខាងស្តាំ ដោយអនុវត្តតាមច្បាប់សាមញ្ញមួយ។ លំដាប់នៃប៊ីតហាក់ដូចជាចៃដន្យ ទោះបីជាដូចដែលបានបង្ហាញក្នុងរូបភាពក៏ដោយ ទីបំផុតវាកើតឡើងម្តងទៀតដោយខ្លួនវាផ្ទាល់។ Sol Golomb បានរកឃើញវិធីគណិតវិទ្យាដ៏ឆើតឆាយមួយដើម្បីវិភាគលំដាប់បែបនេះ និងរបៀបដែលពួកគេធ្វើឡើងវិញដោយខ្លួនឯង។

ប្រសិនបើការចុះឈ្មោះផ្លាស់ប្តូរមានទំហំ ន,បន្ទាប់មកគាត់មាន 2 ស្ថានភាពដែលអាចកើតមាន (ដែលត្រូវគ្នាទៅនឹងលំដាប់ដែលអាចធ្វើបានទាំងអស់នៃ 0 និង 1 សម្រាប់ប្រវែង ) ចាប់តាំងពីច្បាប់សម្រាប់ការចុះឈ្មោះផ្លាស់ប្តូរត្រូវបានកំណត់ ទីតាំងណាមួយត្រូវតែមកដល់កន្លែងមួយទៀត ទីតាំងដដែល។ នេះមានន័យថាចំនួនជំហានអតិបរមាដែលអាចធ្វើទៅបានដែលការចុះឈ្មោះផ្លាស់ប្តូរអាចឆ្លងកាត់មុនពេលជំហានចាប់ផ្តើមម្តងទៀតគឺ 2 (ការពិត ២ - 1, ចាប់តាំងពីទីតាំងមួយដែលមាន 0s ទាំងអស់មិនអាចវិវត្តទៅជាអ្វីផ្សេងទៀត) ។

ក្នុងឧទាហរណ៍ខាងលើ ការចុះឈ្មោះផ្លាស់ប្តូរគឺ 7 ហើយនឹងធ្វើម្តងទៀតក្នុង 2 7 - 1 = 127 ជំហាន។ ប៉ុន្តែតើការចុះឈ្មោះការផ្លាស់ប្តូរមួយណា - ជាមួយនឹងទីតាំងសាខាមួយណា - នឹងបង្កើតលំដាប់ប្រវែងអតិបរមា? Solomon Golomb បានចាប់ផ្តើមស៊ើបអង្កេតសំណួរនេះនៅរដូវក្តៅឆ្នាំ 1954 ។ ហើយចម្លើយរបស់គាត់គឺសាមញ្ញ និងឆើតឆាយ។

ការចុះឈ្មោះផ្លាស់ប្តូរខាងលើមានសាខានៅមុខតំណែង 7, 6, និង 1។ សូលបានបង្ហាញពិជគណិតនេះដោយប្រើពហុនាម NS 7 + NS 6 + 1. បន្ទាប់មកគាត់បានបង្ហាញថាលំដាប់ដែលបានបង្កើតនឹងមានប្រវែងអតិបរមាប្រសិនបើពហុនាមនេះ " ម៉ូឌុលដែលមិនអាចកាត់ថ្លៃបាន ២"; ដូច្នេះហើយ វាមិនអាចធ្វើជាកត្តាបានទេ ដែលធ្វើឱ្យវាស្រដៀងទៅនឹងចំនួនបឋមក្នុងចំណោមពហុនាម ហើយវត្តមាននៃលក្ខណៈសម្បត្តិមួយចំនួនផ្សេងទៀតធ្វើឱ្យវាក្លាយជា "ពហុធាបឋម" ។ សព្វថ្ងៃនេះ វាត្រូវបានផ្ទៀងផ្ទាត់យ៉ាងងាយស្រួលដោយប្រើ Mathematica និងភាសា Wolfram៖

បន្ទាប់មក នៅក្នុងឆ្នាំ 1954 សូលត្រូវតែធ្វើវាទាំងអស់ដោយដៃ។ គាត់បានចងក្រងតារាងដែលវែងជាងនៃពហុនាមបុព្វកាលដែលត្រូវគ្នាទៅនឹងការចុះឈ្មោះផ្លាស់ប្តូរ ដែលបង្កើតជាលំដាប់នៃប្រវែងអតិបរមា៖

ប្រវត្តិនៃការចុះឈ្មោះផ្លាស់ប្តូរ

គំនិតនៃការថែរក្សា RAM តាមរយៈ " បន្ទាត់ពន្យាពេល"ដែលបញ្ជូនជីពចរឌីជីថលមានតាំងពីដើមដំបូងនៃកុំព្យូទ័រ។ នៅចុងទស្សវត្សរ៍ឆ្នាំ 1940 ខ្សែពន្យារបែបនេះកំពុងត្រូវបានអនុវត្តជាឌីជីថលដោយប្រើបំពង់បូមធូលីជាបន្តបន្ទាប់ ហើយត្រូវបានគេហៅថា" ការចុះឈ្មោះផ្លាស់ប្តូរ"វាមិនច្បាស់ទេថានៅពេលណាដែលការចុះឈ្មោះការផ្លាស់ប្តូររង្វិលជុំបិទដំបូងត្រូវបានបង្កើតឡើង។ វាអាចមាននៅចុងទសវត្សរ៍ឆ្នាំ 1940។ ទោះជាយ៉ាងណាក៏ដោយ ព្រឹត្តិការណ៍នេះនៅតែលាក់បាំងដោយអាថ៌កំបាំង ព្រោះវាត្រូវបានគេប្រើជាលើកដំបូងនៅក្នុងការគ្រីបយោធា។

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

ការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរត្រូវបានផ្តល់រង្វាន់ក្នុងការគ្រីបគ្រីប ដោយសាររយៈពេលព្យាយាមម្តងទៀតយូរ។ ទោះជាយ៉ាងណាក៏ដោយ ការវិភាគគណិតវិទ្យាដែលសូលបានប្រើដើម្បីស្វែងរករយៈពេលទាំងនេះបញ្ជាក់យ៉ាងច្បាស់ថាការចុះឈ្មោះផ្លាស់ប្តូរបែបនេះមិនសមរម្យសម្រាប់ការគ្រីបគ្រីបដែលមានសុវត្ថិភាពនោះទេ។ ទោះយ៉ាងណាក៏ដោយនៅដើមដំបូងពួកគេហាក់ដូចជាល្អ (ជាពិសេសនៅពេលប្រៀបធៀបទៅនឹងមុខតំណែង rotor ជាបន្តបន្ទាប់នៅក្នុង Enigma); មានពាក្យចចាមអារ៉ាមជាបន្តបន្ទាប់ថាប្រព័ន្ធគ្រីបតូយោធាសូវៀតត្រូវបានបង្កើតឡើងនៅលើមូលដ្ឋាននេះ។

ត្រលប់ទៅឆ្នាំ 2001 នៅពេលដែលខ្ញុំកំពុងធ្វើការលើកំណត់ត្រាប្រវត្តិសាស្ត្រសម្រាប់សៀវភៅរបស់ខ្ញុំ ប្រភេទវិទ្យាសាស្ត្រថ្មី។សូល និង​ខ្ញុំ​បាន​សន្ទនា​តាម​ទូរស័ព្ទ​យ៉ាង​យូរ​អំពី​ការ​ផ្លាស់​ប្តូរ​ការ​ចុះ​ឈ្មោះ។ សូល​បាន​ប្រាប់​ខ្ញុំ​ថា នៅ​ពេល​គាត់​ចាប់​ផ្ដើម គាត់​មិន​បាន​ដឹង​អ្វី​សោះ​អំពី​ការងារ​គ្រីបគ្រីប​លើ​ការ​ចុះឈ្មោះ​វេន។ គាត់បាននិយាយថា Bell Labs, Lincoln Labs និង JPL បានចាប់ផ្តើមធ្វើការលើការផ្លាស់ប្តូរការចុះឈ្មោះនៅជុំវិញពេលដែលគាត់បានធ្វើ។ ទោះយ៉ាងណាក៏ដោយ គាត់បានបន្តដំណើរទៅមុខបន្តិចទៀត ដែលគាត់បានកត់សម្គាល់នៅក្នុងរបាយការណ៍ឆ្នាំ 1955 របស់គាត់។

ប៉ុន្មានឆ្នាំក្រោយមក សូលបានរៀនបន្តិចម្តងៗអំពីអ្នកកាន់តំណែងមុនផ្សេងៗនៃការងាររបស់គាត់ពីអក្សរសិល្ប៍គណិតវិទ្យាសុទ្ធ។ រួចហើយនៅក្នុង 1202 Fibonacci បាននិយាយអំពីអ្វីដែលឥឡូវនេះហៅថាលេខ Fibonacci ហើយដែលត្រូវបានបង្កើតឡើងដោយទំនាក់ទំនងកើតឡើងវិញ (ដែលអាចត្រូវបានគេមើលឃើញថាជា analogue នៃការផ្លាស់ប្តូរមតិត្រឡប់លីនេអ៊ែរដែលដំណើរការជាមួយចំនួនគត់តាមអំពើចិត្ត មិនមែនលេខសូន្យ និងលេខមួយ)។ វាក៏មានស្នាដៃតូចៗនៅដើមទសវត្សរ៍ឆ្នាំ 1900 នៅលើវដ្តនៃ 0 និង 1 ប៉ុន្តែការសិក្សាទ្រង់ទ្រាយធំដំបូងគេគឺការងាររបស់ Oyten Ore មកពីសាកលវិទ្យាល័យ Oslo ។ Ore មានសិស្សម្នាក់ឈ្មោះ Marshall Hall ដែលបានផ្តល់ដំបូន្មានដល់អ្នកកាន់តំណែងមុននៃទីភ្នាក់ងារសន្តិសុខជាតិនៅចុងទសវត្សរ៍ឆ្នាំ 1940 ។ - ប្រហែលជានៅលើប្រធានបទនៃការផ្លាស់ប្តូរការចុះឈ្មោះ។ ទោះយ៉ាងណាក៏ដោយ អ្វីគ្រប់យ៉ាងដែលគាត់បានធ្វើត្រូវបានចាត់ថ្នាក់ ហើយដូច្នេះគាត់បានរៀបចំជាមួយសូលដើម្បីបោះពុម្ពផ្សាយប្រវត្តិនៃការផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរ។ សូលបានឧទ្ទិសសៀវភៅរបស់គាត់ទៅ Marshall Hall ។

តើ​អ្វី​ទៅ​ជា​លំដាប់​ដែល​បង្កើត​ឡើង​ដោយ​ការ​ចុះឈ្មោះ​វេន​សម្រាប់?

ខ្ញុំបានកត់សម្គាល់ជាច្រើនដងថាប្រព័ន្ធដែលគ្រប់គ្រងដោយច្បាប់សាមញ្ញបញ្ចប់ជាមួយនឹងការប្រែប្រួលជាច្រើននៃកម្មវិធី។ ការចុះឈ្មោះផ្លាស់ប្តូរក៏ធ្វើតាមគំរូនេះដែរ។ ទាំងផ្នែករឹង និងសូហ្វវែរទំនើបៗត្រូវបានចង្អៀតជាមួយនឹងការចុះឈ្មោះផ្លាស់ប្តូរ៖ នៅក្នុងទូរស័ព្ទចល័តធម្មតា ប្រហែលជាមានរាប់សិប ឬពីរនៃពួកវា ដែលត្រូវបានអនុវត្តជាក្បួននៅកម្រិតផ្នែករឹង ហើយជួនកាលនៅក្នុងកម្មវិធី (នៅពេលខ្ញុំសរសេរ "ការផ្លាស់ប្តូរការចុះឈ្មោះ" នៅទីនេះខ្ញុំមានន័យថាការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់លីនេអ៊ែរ - LFSR) ។

ក្នុងករណីភាគច្រើន ការចុះឈ្មោះផ្លាស់ប្តូរត្រូវបានប្រើដែលផ្តល់លំដាប់ប្រវែងអតិបរមា (ត្រូវបានគេស្គាល់ថាជា " លំដាប់ Mហេតុផលដែលពួកគេត្រូវបានគេប្រើប្រាស់ជាទូទៅគឺដោយសារតែលក្ខណៈសម្បត្តិមួយចំនួនរបស់ពួកគេដែល Sol បានរកឃើញ។ ពួកគេតែងតែមានលេខដូចគ្នានៃ 0s និង 1s (ទោះបីជាការពិតវាតែងតែមាន 1 បន្ថែមពិតប្រាកដក៏ដោយ) ។ លេខដូចគ្នានៃ 00, 01, 10 ។ និង 11 ក៏ជាលក្ខណៈផងដែរ - ហើយសម្រាប់ប្លុកធំផងដែរ។ ទ្រព្យសម្បត្តិនេះ " តុល្យភាព"នេះនៅក្នុងខ្លួនវាគឺមានប្រយោជន៍ខ្លាំងណាស់រួចទៅហើយ - ឧទាហរណ៍ប្រសិនបើអ្នកសាកល្បងបន្សំដែលអាចធ្វើបានទាំងអស់នៃប៊ីតជាការបញ្ចូល។

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

លក្ខណៈសម្បត្តិទាំងនេះនឹងជាការពិតសម្រាប់លំដាប់ចៃដន្យណាមួយដែលវែងគ្រប់គ្រាន់នៃ 0 និង 1។ គួរឱ្យភ្ញាក់ផ្អើល លក្ខណៈសម្បត្តិទាំងនេះតែងតែពិតសម្រាប់លំដាប់នៃប្រវែងអតិបរមា។ វគ្គបន្តមានលក្ខណៈពិសេសច្របូកច្របល់ ប៉ុន្តែវាមិនមានភាពច្របូកច្របល់ទាល់តែសោះ៖ ពួកគេមានរចនាសម្ព័ន្ធដែលបានកំណត់យ៉ាងល្អ.

វាគឺជារចនាសម្ព័នដើមនៃការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរ ដែលធ្វើឱ្យពួកវាមិនស័ក្តិសមសម្រាប់ការសរសេរគ្រីបធ្ងន់ធ្ងរ។ ប៉ុន្តែពួកវាគឺអស្ចារ្យសម្រាប់ "ការផ្លាស់ប្តូរធាតុ" ជាមូលដ្ឋាន និងការគ្រីបគ្រីបថោក ហើយត្រូវបានគេប្រើយ៉ាងទូលំទូលាយសម្រាប់គោលបំណងទាំងនេះ។ ជារឿយៗភារកិច្ចគឺគ្រាន់តែ "ធ្វើឱ្យស" សញ្ញា (ដូចនៅក្នុង "សំលេងរំខានពណ៌ស") ។ ជួនកាលវាចាំបាច់ក្នុងការបញ្ជូនទិន្នន័យដែលមានលំដាប់វែងនៃ 0. ប៉ុន្តែអេឡិចត្រូនិចក្នុងករណីនេះអាចច្រឡំប្រសិនបើ "ស្ងាត់" វែងពេក។ អ្នក​អាច​ជៀសវាង​បញ្ហា​នេះ​ដោយ​ការ​ច្របូកច្របល់​ទិន្នន័យ​ដើម​ដោយ​បញ្ចូល​វា​ជាមួយ​នឹង​លំដាប់​ដែល​បង្កើត​ឡើង​ដោយ​ការ​ចុះឈ្មោះ​ការផ្លាស់ប្តូរ។ នេះ​ជា​អ្វី​ដែល​ត្រូវ​បាន​ធ្វើ​ជាមួយ Wi-Fi, ប៊្លូធូស, USB, ទូរទស្សន៍​ឌីជីថល, អ៊ីនធឺណិត។ល។

ផលរំខាននៃការចុះឈ្មោះការផ្លាស់ប្តូរវេនគឺការឌិកូដស្មុគ្រស្មាញជាងមុន ដែលជួនកាលត្រូវបានប្រើដើម្បីកែលម្អសុវត្ថិភាព (បច្ចេកវិទ្យាឌីវីឌីប្រើការរួមបញ្ចូលគ្នានៃការចុះឈ្មោះការផ្លាស់ប្តូរ 16 និង 24 ប៊ីតដើម្បីអ៊ិនកូដទិន្នន័យ។ ទូរស័ព្ទ GSM ជាច្រើនប្រើការរួមបញ្ចូលគ្នានៃការចុះឈ្មោះការផ្លាស់ប្តូរបីដើម្បីអ៊ិនកូដសញ្ញាទាំងអស់។ )

សូល​បាន​បង្កើត​មូលដ្ឋាន​គណិតវិទ្យា​សម្រាប់​ចំណុច​ទាំង​អស់​នេះ ហើយ​ក៏​បាន​ណែនាំ​តួលេខ​សំខាន់ៗ​មួយ​ចំនួន​ដល់​គ្នា​ទៅ​វិញ​ទៅ​មក។ ត្រលប់ទៅឆ្នាំ 1959 គាត់បានជួប Irwin Jacobs ដែលថ្មីៗនេះបានទទួលបណ្ឌិតរបស់គាត់ពីវិទ្យាស្ថានបច្ចេកវិទ្យា Massachusetts ។ គាត់ក៏បានស្គាល់ Andy Viterbi ដែលធ្វើការនៅ Jet Propulsion Laboratory ។ សូលបានណែនាំពួកគេ ហើយនៅឆ្នាំ 1968 ពួកគេបានបង្កើតក្រុមហ៊ុនមួយដែលមានឈ្មោះថា Linkabit ដើម្បីធ្វើការលើប្រព័ន្ធសរសេរកូដ (ភាគច្រើនសម្រាប់គោលបំណងយោធា)។

នៅឆ្នាំ 1985 Jacobs និង Viterbi បានបង្កើតក្រុមហ៊ុនមួយផ្សេងទៀតដែលមានឈ្មោះថា Qualcomm ។ ដំបូងឡើយ ពួកគេធ្វើមិនបានល្អទេ ប៉ុន្តែនៅដើមទសវត្សរ៍ឆ្នាំ 1990 នៅពេលដែលពួកគេចាប់ផ្តើមបង្កើតសមាសធាតុសម្រាប់ដាក់ពង្រាយ CDMA នៅលើទូរសព្ទដៃ ក្រុមហ៊ុនកំពុងរីកចម្រើនយ៉ាងឆាប់រហ័ស។

អញ្ចឹងតើការចុះឈ្មោះទាំងនេះនៅឯណា?

វាជារឿងគួរឱ្យភ្ញាក់ផ្អើលដែលមនុស្សភាគច្រើនមិនធ្លាប់បានឮអំពីការផ្លាស់ប្តូរការចុះឈ្មោះ ហើយក្នុងពេលតែមួយមានទំនាក់ទំនងជាមួយពួកគេគ្រប់ពេលដែលពួកគេប្រើប្រព័ន្ធទំនាក់ទំនងទំនើប កុំព្យូទ័រជាដើម។ វាជាការងាយស្រួលក្នុងការយល់ច្រលំនៅទីនេះ ដោយសារតែលំដាប់នៃការចុះឈ្មោះដូចគ្នាលេចឡើងនៅពីក្រោយឈ្មោះផ្សេងគ្នា និង អក្សរកាត់ ការផ្លាស់ប្តូរមតិត្រឡប់ (PN, pseudo noise, M-, FSR, LFSR sequences, MLS, SRS, PRBS ។ល។)។

នៅក្នុងទូរស័ព្ទចល័ត ការប្រើប្រាស់លំដាប់នៃការចុះឈ្មោះផ្លាស់ប្តូរបានផ្លាស់ប្តូរជាច្រើនឆ្នាំមកនេះ ជួនកាលកើនឡើង និងពេលខ្លះថយចុះ។ បណ្តាញគឺផ្អែកលើ TDMA ដូច្នេះពួកគេមិនប្រើលំដាប់ការចុះឈ្មោះការផ្លាស់ប្តូរដើម្បីអ៊ិនកូដទិន្នន័យរបស់ពួកគេទេ ទោះជាយ៉ាងណាក៏ដោយ CRC (Cyclic Redundancy Check) នៅតែត្រូវបានប្រើជាញឹកញាប់ដើម្បីពិនិត្យមើលប្លុកទិន្នន័យ។ បណ្តាញគឺជាអ្នកប្រើប្រាស់ដ៏ធំបំផុតរបស់ CDMA ដូច្នេះលំដាប់ដែលបានបង្កើតដោយការចុះឈ្មោះផ្លាស់ប្តូរត្រូវបានចូលរួមនៅក្នុងការបញ្ជូននៃប៊ីតនីមួយៗ។ បណ្តាញជាធម្មតាប្រើការរួមបញ្ចូលគ្នានៃពេលវេលា និងប្រេកង់ដែលមិនរាប់បញ្ចូលលំដាប់នៃការផ្លាស់ប្តូរការចុះឈ្មោះ ទោះបីជា CRCs នៅតែត្រូវបានប្រើប្រាស់ក៏ដោយ៖ ឧទាហរណ៍ ដើម្បីធ្វើអន្តរកម្មជាមួយទិន្នន័យអាំងតេក្រាល នៅពេលដែលបង្អួចប្រេកង់ត្រួតលើគ្នា។ មានរចនាសម្ព័ន្ធស្មុគ្រស្មាញជាងមុន - ដោយមានអង់តែនជាច្រើនដែលសម្របខ្លួនយ៉ាងស្វាហាប់ក្នុងការប្រើប្រាស់ពេលវេលា និងប្រេកង់ល្អបំផុតនៃរន្ធដោត។ ទោះយ៉ាងណាក៏ដោយ ពាក់កណ្តាលនៃបណ្តាញរបស់ពួកគេជាធម្មតាត្រូវបានឧទ្ទិសដល់សញ្ញា "អ្នកបើកបរ" ដែលត្រូវបានប្រើដើម្បីទាញយកបរិយាកាសវិទ្យុក្នុងស្រុក។ ពួកគេក៏ផ្អែកលើលំដាប់ដែលបានបង្កើតដោយការចុះឈ្មោះផ្លាស់ប្តូរផងដែរ។

ការផលិតគ្រឿងអេឡិចត្រូនិចជាធម្មតាខិតខំដើម្បីសម្រេចបាននូវអត្រាផ្ទេរទិន្នន័យខ្ពស់បំផុតដែលអាចធ្វើទៅបានជាមួយនឹងការប្រើប្រាស់ថាមពលទាបបំផុត ដែលអនុញ្ញាតឱ្យប៊ីតយកឈ្នះលើកម្រិតសំឡេងរំខាន។ ហើយជាក្បួន ផ្លូវនេះនាំទៅរកស្វ័យប្រវត្តិកម្មនៃការរកឃើញកំហុស - ដូច្នេះហើយចំពោះការប្រើប្រាស់ CRC (Cyclic Redundancy Check) ហើយហេតុដូច្នេះហើយ លំដាប់ដែលបានបង្កើតដោយការចុះឈ្មោះផ្លាស់ប្តូរ។ នេះអនុវត្តចំពោះរថយន្តក្រុងស្ទើរតែទាំងអស់នៅក្នុងកុំព្យូទ័រ (PCIe, SATA ។ល។)៖ ផ្តល់អន្តរកម្មរវាងផ្នែកនៃខួរក្បាលកណ្តាល ឬទទួលទិន្នន័យពីឧបករណ៍ ឬភ្ជាប់ទៅអេក្រង់ជាមួយ HDMI ។ ក្នុងករណីថាស ឬអង្គចងចាំ CRCs និងកូដផ្សេងទៀតដោយផ្អែកលើលំដាប់ដែលបានបង្កើតដោយការចុះឈ្មោះការផ្លាស់ប្តូរក៏ត្រូវបានគេប្រើស្ទើរតែជាសកលដើម្បីដំណើរការក្នុងល្បឿនអតិបរមា។

Shift registers មានភាពទូលំទូលាយណាស់ ដែលវាស្ទើរតែមិនអាចប៉ាន់ប្រមាណថាតើចំនួនប៊ីតដែលពួកគេបង្កើតនោះទេ។ មានកុំព្យូទ័រប្រហែល 10 ពាន់លានគ្រឿង ទូរសព្ទតិចជាងបន្តិច និងឧបករណ៍មួយចំនួនធំនៅក្នុង IoT (Internet of Things) ដែលបានបង្កប់។ ស្ទើរតែគ្រប់រថយន្តទាំងអស់ក្នុងពិភពលោក (ហើយមានជាងមួយពាន់លាន!) មានមីក្រូដំណើរការប្រហែល 10 គ្រឿង។

តើការចុះឈ្មោះផ្លាស់ប្តូរដំណើរការនៅប្រេកង់អ្វី? នៅក្នុងប្រព័ន្ធទំនាក់ទំនង មានប្រេកង់ក្រុមហ៊ុនបញ្ជូនមូលដ្ឋាននៅក្នុងក្រុម Hertz ក៏ដូចជា "អត្រាបន្ទះឈីប" ដែលប្រាប់ថាតើការចូលប្រើច្រើនដងលឿនប៉ុណ្ណា (យើងកំពុងនិយាយអំពី CDMA) ត្រូវបានអនុវត្តនៅក្នុងក្រុម MHz ។ ម៉្យាងទៀតនៅក្នុងឡានក្រុងនៅខាងក្នុងកុំព្យូទ័រ ទិន្នន័យទាំងអស់ត្រូវបានផ្ទេរដោយប្រើការចុះឈ្មោះផ្លាស់ប្តូរ - ជាមួយនឹងអត្រាផ្ទេរដ៏ល្អបំផុតនៅក្នុងជួរហឺត។

មានខ្សែទំនាក់ទំនងយ៉ាងហោចណាស់ 10 ពាន់លានដែលដំណើរការយ៉ាងហោចណាស់ 1/10 ពាន់លានវិនាទី (ប្រហែល 3 ឆ្នាំ) ដែលប្រើយ៉ាងហោចណាស់ 1 ពាន់លានប៊ីតពីការចុះឈ្មោះការផ្លាស់ប្តូររាល់វិនាទី ដែលមានន័យថារហូតមកដល់សព្វថ្ងៃនេះ ក្បួនដោះស្រាយរបស់ Sol ត្រូវបានប្រើប្រាស់យ៉ាងហោចណាស់។ ពាន់លានដង។

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

ទោះយ៉ាងណាក៏ដោយមាន "គំនិតក្បួនដោះស្រាយ" ដែលនៅតែមិនអាចយល់បានចំពោះមនុស្សគ្រប់គ្នាលើកលែងតែអ្នករចនា microprocessor ។ នៅពេលដែល Babbage កំពុងតែបង្កើតភាពខុសប្លែកគ្នារបស់គាត់ (សូមមើលអត្ថបទនៅលើ Habre "ការបកស្រាយរឿងរបស់ Ada Lovelace (អ្នកសរសេរកម្មវិធីដំបូងគេក្នុងប្រវត្តិសាស្ត្រ)") សហសញ្ញាបានក្លាយជាឧបសគ្គដ៏ធំមួយក្នុងការអនុវត្តប្រតិបត្តិការនព្វន្ធ (តាមពិតទៅ ការចុះឈ្មោះផ្លាស់ប្តូរជាមួយនឹងមតិកែលម្អលីនេអ៊ែរអាច ត្រូវ​បាន​គេ​គិត​ថា​ជា​ប្រព័ន្ធ​មួយ​ដែល​ធ្វើ​អ្វី​មួយ​ដូច​ជា​លេខ​នព្វន្ធ​ ប៉ុន្តែ​មិន​ជាប់​រហូត​)។ មានដើមឈើបន្តពូជដែលបង្កើនប្រសិទ្ធភាពអ្នកកាន់។ វាក៏មានការកែប្រែបន្តិចបន្តួចផងដែរ (ដូចជាក្បួនដោះស្រាយរបស់ Booth, ដើមឈើ Wallace ។ល។) ដែលកាត់បន្ថយចំនួនប្រតិបត្តិការប៊ីតដែលត្រូវការដើម្បីបង្កើតផ្នែកនព្វន្ធខាងក្នុង។ ប៉ុន្តែ មិនដូចការចុះឈ្មោះផ្លាស់ប្តូរមតិយោបល់តាមលីនេអ៊ែរទេ វាមិនមានគំនិតក្បួនដោះស្រាយតែមួយដែលអាចប្រើស្ទើរតែគ្រប់ទីកន្លែងនោះទេ។ ដូច្នេះ ខ្ញុំគិតថា លំដាប់ដែលវែងបំផុតដែលបង្កើតដោយការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរ ឈ្នះក្នុងចំណោមលំដាប់ដែលប្រើច្រើនបំផុត។

Cellular automata និងការផ្លាស់ប្តូរការចុះឈ្មោះជាមួយនឹងមតិកែលម្អដែលមិនមែនជាលីនេអ៊ែរ

ខណៈពេលដែលវាហាក់ដូចជាមិនច្បាស់នៅ glance ដំបូង, វាប្រែថាមានទំនាក់ទំនងជិតស្និទ្ធរវាងការចុះឈ្មោះការផ្លាស់ប្តូររង្វិលជុំបិទនិង automata កោសិកា, ដែលខ្ញុំបានសិក្សាអស់រយៈពេលជាច្រើនឆ្នាំ។ អង្គការជាមូលដ្ឋានសម្រាប់ការចុះឈ្មោះផ្លាស់ប្តូរមតិត្រឡប់គឺត្រូវគណនាបន្តិចម្ដងៗ។ នៅក្នុង automaton កោសិកាមានកោសិកាមួយជួរ ហើយនៅជំហាននីមួយៗ កោសិកាទាំងអស់ត្រូវបានធ្វើបច្ចុប្បន្នភាពស្របគ្នា ដោយផ្អែកលើច្បាប់ដែលអាស្រ័យឧទាហរណ៍លើតម្លៃនៃអ្នកជិតខាងដែលនៅជិតបំផុត។

ដើម្បីមើលពីរបៀបដែលពួកវាទាក់ទងគ្នា យើងត្រូវដំណើរការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់ទំហំ ហើយក្នុងពេលតែមួយបង្ហាញស្ថានភាពរបស់វាតែរៀងរាល់ ជំហាន; ម្យ៉ាងវិញទៀត អនុញ្ញាតឱ្យប៊ីតទាំងអស់ត្រូវបានសរសេរជាន់ពីលើមុននឹងលេចឡើងម្តងទៀត។ ប្រសិនបើជំហាននីមួយៗនៃការចុះឈ្មោះផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរ (នៅទីនេះ - ដោយចុចពីរ) ត្រូវបានបង្ហាញ នោះនៅជំហាននីមួយៗ អ្វីៗនឹងផ្លាស់ប្តូរទៅខាងឆ្វេង - នោះហើយជាវា។ ប៉ុន្តែ​ប្រសិន​បើ​អ្នក​ធ្វើ​ជា​រូបភាព​ដែល​បាន​បង្ហាប់​បង្ហាញ​តែ​គ្រប់​ ជំហាន លំនាំនឹងអាចមើលឃើញ។

នេះគឺជាលំនាំសំបុក; ហើយរូបភាពនេះគឺស្រដៀងទៅនឹងរូបភាពដែលអាចទទួលបាន ប្រសិនបើ cellular automaton យក cell និងមួយនៅជិតខាងរបស់វា ហើយបន្ថែម modulo 2 (XOR) ពួកគេ។ នេះជាអ្វីដែលកើតឡើងចំពោះ automaton កោសិកា ប្រសិនបើវារៀបចំកោសិការបស់វា ដើម្បីឱ្យពួកវាស្ថិតនៅក្នុងរង្វង់ដែលមានទំហំដូចគ្នាទៅនឹងការផ្លាស់ប្តូរបញ្ជីខាងលើ៖

នៅដើមដំបូង លំនាំនៃការចុះឈ្មោះដោយស្វ័យប្រវត្តិ និងការផ្លាស់ប្តូរកោសិកាប្រែជាដូចគ្នាបេះបិទ។ នៅពេលអ្នកក្រឡេកមើលរូបភាពទាំងនេះ វាមិនសូវជាគួរឱ្យភ្ញាក់ផ្អើលទេដែលគណិតវិទ្យានៃការផ្លាស់ប្តូរការចុះឈ្មោះទាក់ទងនឹងកោសិកា automata ។ ហើយដោយសារភាពដដែលៗនៃលំនាំដែលជាប់គាំង វាច្បាស់ណាស់ថាហេតុអ្វីបានជាគួរតែមានទ្រឹស្តីគណិតវិទ្យាឆើតឆាយនៃការចុះឈ្មោះការផ្លាស់ប្តូរ។

ការចុះឈ្មោះផ្លាស់ប្តូរធម្មតាដែលប្រើក្នុងការអនុវត្តមិនបង្ហាញគំរូដដែលៗហួសហេតុនោះទេ។ នេះគឺជាឧទាហរណ៍មួយចំនួននៃការផ្លាស់ប្តូរការចុះឈ្មោះដែលបង្កើតលំដាប់ប្រវែងអតិបរមា។ ការពិតគឺថាមែកឈើនៅឆ្ងាយដាច់ពីគ្នា ដែលធ្វើឱ្យពិបាកក្នុងការស្វែងរកដានដែលមើលឃើញនៃសំបុក។

តើការឆ្លើយឆ្លងរវាងការផ្លាស់ប្តូរការចុះឈ្មោះ និង automata កោសិកាមានទំហំប៉ុនណា? សម្រាប់ cellular automata ច្បាប់សម្រាប់បង្កើតតម្លៃកោសិកាថ្មីអាចជាអ្វីដែលអ្នកចូលចិត្ត។ នៅក្នុងការចុះឈ្មោះផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរ ពួកគេគួរតែតែងតែត្រូវបានបន្ថែមម៉ូឌុល 2 (ឬ XOR) ដោយផ្អែកលើ។ នេះគឺជាអ្វីដែលផ្នែក "លីនេអ៊ែរ" នៃ "ការចុះឈ្មោះផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរ" មានន័យថា។ វាក៏អាចប្រើច្បាប់ណាមួយសម្រាប់ការរួមបញ្ចូលតម្លៃសម្រាប់ការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់មិនមែនលីនេអ៊ែរ (NFSR) ផងដែរ។

ជាការពិតណាស់ នៅពេលដែលសូលបានបង្កើតទ្រឹស្ដីរបស់គាត់សម្រាប់ការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់ជាលីនេអ៊ែរ គាត់បានចាប់ផ្តើមជាមួយនឹងករណីដែលមិនមែនជាលីនេអ៊ែរ។ នៅពេលដែលគាត់បានមកដល់ JPL ក្នុងឆ្នាំ 1956 គាត់បានទទួលបន្ទប់ពិសោធន៍មួយដែលពេញលេញជាមួយនឹង racks សម្រាប់ម៉ូឌុលអេឡិចត្រូនិចតូចៗ។ Saul បាននិយាយថា ម៉ូឌុល (នីមួយៗមានទំហំប៉ុនកញ្ចប់បារី) ត្រូវបានបង្កើតឡើងសម្រាប់គម្រោង Bell Labs ដើម្បីអនុវត្តប្រតិបត្តិការឡូជីខលជាក់លាក់មួយ (AND, OR, NOT, ... )។ ម៉ូឌុលអាចត្រូវបានប្រើរួមគ្នាដើម្បីអនុវត្តការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់ដែលមិនមែនជាលីនេអ៊ែរដែលចង់បាន ដោយផ្តល់ប្រហែលមួយលានប៊ីតក្នុងមួយវិនាទី (Sol បានប្រាប់ខ្ញុំថាមាននរណាម្នាក់បានព្យាយាមធ្វើដូចគ្នាជាមួយកុំព្យូទ័រគោលបំណងទូទៅ ហើយអ្វីដែលចំណាយពេល 1 វិនាទីនៅពេលប្រើម៉ូឌុលផ្នែករឹង។ ត្រូវការរយៈពេល 6 សប្តាហ៍នៃការងារនៅលើកុំព្យូទ័រដែលមានគោលបំណងទូទៅ) ។

នៅពេលដែលសូលចាប់ផ្តើមសិក្សាការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរ របកគំហើញដ៏សំខាន់ដំបូងរបស់គាត់គឺរយៈពេលដដែលៗ។ ហើយក្នុងករណីដែលមិនមែនជាលីនេអ៊ែរ គាត់បានលះបង់ការខិតខំប្រឹងប្រែងរបស់គាត់ភាគច្រើនដើម្បីព្យាយាមយល់ពីរឿងដូចគ្នា។ គាត់បានប្រមូលទិន្នន័យពិសោធន៍គ្រប់ប្រភេទ។ គាត់បានប្រាប់ខ្ញុំថា គាត់ថែមទាំងបានធ្វើតេស្តតាមលំដាប់នៃប្រវែង 245 ដែលចំណាយពេលមួយឆ្នាំ។ គាត់​បាន​ធ្វើ​ការ​សង្ខេប​ដូច​រូប​ខាង​ក្រោម (ចំណាំ​ការ​មើល​ឃើញ​នៃ​លំដាប់​ដែល​បង្ហាញ​នៅ​លើ​បន្ទាត់​ទម្រង់​រលក)។ ប៉ុន្តែ​គាត់​មិន​ដែល​បាន​បង្កើត​ទ្រឹស្ដី​ទូទៅ​ដែល​គាត់​មាន​សម្រាប់​ការ​ចុះ​បញ្ជី​ការ​ផ្លាស់​ប្តូរ​មតិត្រឡប់​លីនេអ៊ែរ​ទេ។

គ្មានអ្វីចម្លែកទេ គាត់មិនអាចធ្វើវាបានទេ។ រួចហើយនៅក្នុងទសវត្សរ៍ឆ្នាំ 1950 លទ្ធផលទ្រឹស្តីបានលេចឡើង (ក្នុងករណីភាគច្រើនដោយផ្អែកលើគំនិតនៃការគណនាជាសកលរបស់ Turing) លើកម្មវិធីណាដែលជាគោលការណ៍អាចធ្វើវាបាន។ ខ្ញុំមិនគិតថា Sol ឬនរណាម្នាក់ផ្សេងទៀតធ្លាប់គិតថាមុខងារសាមញ្ញបំផុត (មិនមែនលីនេអ៊ែរ) នឹងត្រូវបានប្រើនៅក្នុងការចុះឈ្មោះផ្លាស់ប្តូរមតិត្រឡប់ដែលមិនមែនជាលីនេអ៊ែរនោះទេ។

វាគ្រាន់តែជាពេលក្រោយប៉ុណ្ណោះដែលវាច្បាស់ថាតើអាកប្បកិរិយារបស់កម្មវិធីសាមញ្ញបំផុតអាចស្មុគស្មាញប៉ុណ្ណា។ ឧទាហរណ៍​ដែល​ខ្ញុំ​ចូលចិត្ត​គឺ​ច្បាប់​លេខ 30 សម្រាប់​ស្វ័យប្រវត្តិ​កោសិកា ដែល​តម្លៃ​នៃ​កោសិកា​ជិត​ខាង​ត្រូវ​បាន​រួម​បញ្ចូល​គ្នា​ដោយ​ប្រើ​មុខងារ​ដែល​អាច​តំណាង​ជា + q + r + q * rម៉ូដ ២(ឬ XOR ( qr)). មិនគួរឱ្យជឿ សូលបានពិចារណាលើការផ្លាស់ប្តូរមតិត្រឡប់ដែលមិនមែនជាលីនេអ៊ែរ ដោយផ្អែកលើមុខងារស្រដៀងគ្នានេះ៖ + ជី + + q * r + q * s + r * sម៉ូដ ២... ខាងក្រោមនេះគឺជារូបភាពបង្ហាញពីរបៀបដែលមុខងារ Sol (ដែលអាចគិតថាជា "ច្បាប់ 29070") ច្បាប់ 30 និងច្បាប់ស្រដៀងគ្នាមួយចំនួនទៀតមើលទៅក្នុងបញ្ជីផ្លាស់ប្តូរ៖

ហើយនៅទីនេះ ពួកវាមិនកំណត់ចំពោះការចុះឈ្មោះទំហំថេរទេ គឺដូចជា automata កោសិកា៖

ជាការពិតណាស់ សូលមិនដែលថតរូបបែបនេះទេ (ហើយវាស្ទើរតែមិនអាចទៅរួចទេក្នុងទសវត្សរ៍ឆ្នាំ 1950)។ ផ្ទុយទៅវិញ គាត់បានផ្តោតលើរយៈពេលដដែលៗជាប្រភេទនៃលក្ខណៈប្រមូលផ្តុំ។

សូល​ឆ្ងល់​ថា​តើ​ការ​ចុះ​បញ្ជី​ការ​ផ្លាស់​ប្តូរ​មតិ​មិន​ត្រង់​បន្ទាត់​អាច​ជា​ប្រភព​នៃ​ភាព​ចលាចល​ឬ​អត់។ ពីអ្វីដែលត្រូវបានគេស្គាល់សព្វថ្ងៃនេះអំពី automata កោសិកា វាច្បាស់ណាស់ថាពួកគេអាចធ្វើបាន។ ជាឧទាហរណ៍ ដើម្បីបង្កើតភាពចៃដន្យនៅក្នុង Mathematica យើងបានប្រើក្បួន automata កោសិកាចំនួន 30 សម្រាប់រយៈពេល 25 ឆ្នាំ (ទោះបីជាថ្មីៗនេះយើងបានបោះបង់ចោលវាដោយពេញចិត្តនឹងច្បាប់ដែលមានប្រសិទ្ធភាពជាងនេះ ដែលយើងបានរកឃើញបន្ទាប់ពីសិក្សាលទ្ធភាពរាប់ពាន់លានក៏ដោយ)។

Sol បាននិយាយតិចតួចអំពីការអ៊ិនគ្រីប។ ទោះបីជាខ្ញុំគិតថាគាត់មិនបានធ្វើការឱ្យរដ្ឋាភិបាលយូរមកហើយ។ គាត់បានប្រាប់ខ្ញុំថា ទោះបីជានៅឆ្នាំ 1959 គាត់បានរកឃើញ " ការ​វាយ​ប្រហារ​ទំនាក់​ទំនង​ពហុ​វិមាត្រ​លើ​លំដាប់​មិន​លីនេអ៊ែរ"ខណៈពេលដែលគាត់" ជៀសវាងការអះអាងយ៉ាងប្រុងប្រយ័ត្នថាកម្មវិធីនេះគឺសម្រាប់ cryptanalysisចំណុចនោះគឺថា ច្បាប់លេខ 30 សម្រាប់ automata កោសិកា (ហើយប្រហែលជាការចុះឈ្មោះការផ្លាស់ប្តូរមតិត្រឡប់ដែលមិនមែនជាលីនេអ៊ែរ) អាចជាប្រព័ន្ធគ្រីបតូដ៏ល្អ - ទោះបីជាវាហាក់បីដូចជាវាស្មើនឹងការចុះឈ្មោះផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរ (ដែលមិនមែនដូច្នោះទេ) ពួកគេមិនដែលត្រូវបានប្រើប្រាស់ឱ្យបានច្រើនតាមដែលអាចធ្វើទៅបាន .

ក្នុងនាមជាអ្នកចូលចិត្តមួយ ក្នុងរយៈពេលជាច្រើនទស្សវត្សកន្លងមកនេះ ខ្ញុំបានព្យាយាមសិក្សាអ្នកជំនាន់មុនទាំងអស់នៃការងាររបស់ខ្ញុំលើ automata កោសិកាមួយវិមាត្រ។ ស្វ័យប្រវត្តិកម្មកោសិកាពីរវិមាត្រត្រូវបានគេសិក្សាតិចតួច ប៉ុន្តែនៅក្នុងករណីនៃ automata មួយវិមាត្រ មានតែការងារទ្រឹស្តីសុទ្ធសាធមួយប៉ុណ្ណោះត្រូវបានរកឃើញ។ ខ្ញុំគិតថាការចុះឈ្មោះផ្លាស់ប្តូរមតិត្រឡប់មិនមែនលីនេអ៊ែររបស់ Solomon Golomb គឺនៅជិតបំផុតទៅនឹងអ្វីដែលខ្ញុំបានបញ្ចប់ក្នុងការធ្វើមួយភាគបួនសតវត្សក្រោយមកនៃអ្វីដែលខ្ញុំបានឃើញ។

ប៉ូលីយ៉ូមីណូ

ការ​ឮ​នាម​ត្រកូល " ហ្គោឡុម ", មនុស្សជាច្រើននឹងចងចាំអំពីការចុះឈ្មោះផ្លាស់ប្តូរ។ ទោះយ៉ាងណាក៏ដោយ ភាគច្រើននឹងចងចាំអំពី ប៉ូឡូមីណូ... Sol មិនបានបង្កើត poliomino ទេ ទោះបីជាគាត់បានបង្កើតឈ្មោះក៏ដោយ។ គាត់បានបង្កើតជាប្រព័ន្ធនូវអ្វីដែលពីមុនបានបង្ហាញខ្លួនតែនៅក្នុងល្បែងផ្គុំរូបដាច់ដោយឡែកប៉ុណ្ណោះ។

សំណួរចម្បងដែល Sol ចាប់អារម្មណ៍ក្នុងការឆ្លើយគឺថាតើសំណុំនៃ poliominoes អាចត្រូវបានរៀបចំដើម្បីគ្របដណ្តប់តំបន់ជាក់លាក់មួយយ៉ាងដូចម្តេច។ ពេលខ្លះវាច្បាស់ណាស់ ហើយពេលខ្លះវាពិបាកណាស់។ Sol បានបោះពុម្ភអត្ថបទដំបូងរបស់គាត់អំពី polyomino ក្នុងឆ្នាំ 1954 ប៉ុន្តែ Martin Gardner បានធ្វើឱ្យវាពេញនិយមនៅឆ្នាំ 1957 (គាត់បានសរសេរជួរឈរមួយនៅលើហ្គេមគណិតវិទ្យានៅក្នុងទិនានុប្បវត្តិ វិទ្យាសាស្ត្រអាមេរិក) ដូចដែលសូលបានពន្យល់នៅក្នុងការណែនាំអំពីសៀវភៅឆ្នាំ 1964 របស់គាត់ លទ្ធផលគឺ " ចរន្តឥតឈប់ឈរនៃអ្នកឆ្លើយឆ្លងព័ត៌មានមកពីជុំវិញពិភពលោក និងគ្រប់មជ្ឈដ្ឋាន៖ ប្រធានក្រុមប្រឹក្សាភិបាលនៃសាកលវិទ្យាល័យឈានមុខ អ្នករស់នៅវត្តដែលមិនស្គាល់ អ្នកទោសមកពីពន្ធនាគារល្បីៗ ...".

ក្រុមហ៊ុនហ្គេមក៏បានកត់សម្គាល់ពីល្បែងផ្គុំរូបថ្មីផងដែរ ហើយក្នុងរយៈពេលពីរបីខែចំណងជើងដូចជា " ល្បែងផ្គុំរូបអារម្មណ៍ថ្មី។"តាមពីក្រោយដោយល្បែងផ្គុំរូប និងល្បែងដែលមានមូលដ្ឋានលើប៉ូឡូមីណូជាច្រើនទស្សវត្ស (ទេ បុរសទំពែកដ៏អាក្រក់មើលទៅមិនដូចសូលទេ)៖

សូល​បាន​បោះពុម្ព​អត្ថបទ​អំពី​ប៉ូលីអូមីណូ​រយៈពេល ៥០ ឆ្នាំ​ទៀត​បន្ទាប់​ពី​ការ​បោះពុម្ព​លើក​ដំបូង។ នៅឆ្នាំ 1961 គាត់បានណែនាំ "ក្រឡាក្បឿង" ដែលអាចត្រូវបានប្រើដើម្បីបង្កើតគំរូ fractal ("Infin-tiles") ។ ប៉ុន្តែស្ទើរតែគ្រប់យ៉ាងដែល Sol បានធ្វើជាមួយ poliomino ពាក់ព័ន្ធនឹងការដោះស្រាយបញ្ហាជាក់លាក់។

ខ្ញុំពិតជាមិនចាប់អារម្មណ៍នឹងភាពជាក់លាក់នៃ polyomino ទេ។ ខ្ញុំចាប់អារម្មណ៍លើបាតុភូតទូទៅដែលទាក់ទងនឹងពួកគេ។ វាហាក់ដូចជាងាយស្រួលក្នុងការសម្រេចចិត្តថាតើអ្នកអាច "ត្រួសត្រាយ" យន្តហោះទាំងមូលជាមួយនឹងរូបរាងសាមញ្ញមួយចំនួន។ ប៉ុន្តែនៅក្នុងករណីនៃ poliominoes (ក៏ដូចជាហ្គេមនិងល្បែងផ្គុំរូបទាំងអស់ដែលមានមូលដ្ឋានលើពួកគេ) វាច្បាស់ណាស់ថាអ្វីៗមិនសាមញ្ញទេ។ ជាការពិតណាស់នៅក្នុងទសវត្សរ៍ឆ្នាំ 1960 វាត្រូវបានបង្ហាញថាបញ្ហានេះមិនអាចដោះស្រាយបានតាមទ្រឹស្តី។

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

វាប្រែថាវាអាចមើលទៅដូចជាម៉ាស៊ីន Turing ដែលកំពុងដំណើរការ - ឬ automaton កោសិកា។ អ្នកចាប់ផ្តើមជាមួយនឹងបន្ទាត់នៃក្រឡាក្បឿង។ បន្ទាប់មកសំណួរថាតើការដាក់ក្បឿងគ្មានកំណត់គឺស្មើនឹងសំណួរថាតើការកំណត់អាចធ្វើទៅបានសម្រាប់ម៉ាស៊ីន Turing ដែលនឹងអនុញ្ញាតឱ្យវាបន្តទៅមុខឬអត់។ ចំនុចនោះគឺថាប្រសិនបើម៉ាស៊ីន Turing មានលក្ខណៈជាសកល (នោះគឺវាអាចត្រូវបានកម្មវិធីដើម្បីអនុវត្តការគណនាដែលអាចធ្វើទៅបាន) បន្ទាប់មកបញ្ហាបញ្ឈប់សម្រាប់វាអាចមិនអាចដោះស្រាយបាន ដែលមានន័យថាបញ្ហានៃការដាក់ក្បឿងក៏នឹងមិនអាចដោះស្រាយបានដែរ។

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

សំណុំស្មុគស្មាញ និងល្អិតល្អន់នៃ polyominoes ត្រូវបានគេស្គាល់ថាពិតជាគាំទ្រការគណនាគោលបំណងទូទៅ។ ប៉ុន្តែចុះយ៉ាងណាចំពោះឈុតសាមញ្ញ? តើវាសាមញ្ញគ្រប់គ្រាន់ក្នុងការជំពប់ដួលដោយចៃដន្យទេ? ប្រសិនបើអ្នកក្រឡេកមើលប្រព័ន្ធទាំងអស់ដែលខ្ញុំបានសិក្សានោះ សំណុំសាមញ្ញបំផុតពិតជាប្រែទៅជាសាមញ្ញ។ ទោះយ៉ាងណាក៏ដោយវាពិបាកក្នុងការស្វែងរកវា។

កិច្ចការដ៏សាមញ្ញជាងនេះ គឺការស្វែងរក poliominoes ដែលបំពេញយន្តហោះដោយជោគជ័យ ទោះបីមិនមែនតាមកាលកំណត់ក៏ដោយ។ Roger Penrose បានរកឃើញឧទាហរណ៍ដ៏សមរម្យមួយក្នុងឆ្នាំ 1994 ។ នៅក្នុងសៀវភៅរបស់ខ្ញុំ ប្រភេទវិទ្យាសាស្ត្រថ្មី។ខ្ញុំបានផ្តល់ឧទាហរណ៍សាមញ្ញជាងនេះបន្តិចជាមួយ 3 polyominoes:

នៅសល់នៃរឿង

សូល​មាន​អាយុ​ខ្ទង់​សាមសិប​ឆ្នាំ​នៅ​ពេល​ដែល​គាត់​ទទួល​បាន​ជោគជ័យ​គួរ​ឱ្យ​កត់​សម្គាល់​ក្នុង​វិស័យ​ប្តូរ​វេន​និង​ប៉ូឡូមីណូ... គាត់​ជា​មនុស្ស​សកម្ម​ខ្លាំង​ណាស់។ គាត់បានសរសេរអត្ថបទជាច្រើនរយ អត្ថបទខ្លះបានពង្រីកលើការងារមុនរបស់គាត់ ខ្លះជាចម្លើយចំពោះសំណួរដែលត្រូវបានសួរទៅគាត់ ហើយខ្លះទៀតត្រូវបានសរសេរ វាហាក់បីដូចជាដើម្បីភាពសប្បាយរីករាយ - ដើម្បីស្វែងរកអ្វីដែលគួរឱ្យចាប់អារម្មណ៍អំពីលេខ លំដាប់លំដោយ ប្រព័ន្ធគ្រីបតូ។ ល ។ល។

Shift registers និង polyomino គឺជាប្រធានបទដ៏អស្ចារ្យ (ពួកវាសូម្បីតែត្រូវបាននាំយកទៅក្នុងប្រភេទដាច់ដោយឡែកពីគ្នានៅក្នុងចំណាត់ថ្នាក់ AMS)។ ក្នុងទស្សវត្សចុងក្រោយនេះ ពួកគេទាំងពីរបានទទួលការអភិវឌ្ឍន៍ថ្មីមួយ នៅពេលដែលពួកគេចាប់ផ្តើមធ្វើការពិសោធន៍កុំព្យូទ័រនៅលើមូលដ្ឋានរបស់ពួកគេ។ Sol ក៏បានចូលរួមយ៉ាងសកម្មនៅក្នុងពួកគេ។ ទោះយ៉ាងណាក៏ដោយ សំណួរជាច្រើននៅតែមិនមានចម្លើយ។ ហើយប្រសិនបើម៉ាទ្រីស Hadamard ធំអាចត្រូវបានរកឃើញសម្រាប់ការចុះឈ្មោះការផ្លាស់ប្តូរជាមួយនឹងមតិត្រឡប់ជាលីនេអ៊ែរ នោះសូម្បីតែឥឡូវនេះត្រូវបានគេដឹងតិចតួចអំពីការចុះឈ្មោះការផ្លាស់ប្តូរជាមួយនឹងមតិត្រឡប់ដែលមិនមែនជាលីនេអ៊ែរ មិនមែននិយាយអំពីប៉ូលីអូមីណូដែលមិនមានតាមកាលកំណត់ និងកម្រនិងអសកម្មដទៃទៀតនោះទេ។

Sol តែងតែចាប់អារម្មណ៍លើល្បែងផ្គុំរូប ទាំងគណិតវិទ្យា និងល្បែងផ្គុំពាក្យ។ មួយសន្ទុះ គាត់បានរត់ល្បែងផ្គុំរូប ទីក្រុង Los Angeles Timesហើយអស់រយៈពេល 32 ឆ្នាំបានសរសេរថា " Golomb gambitsទៅកាន់ទស្សនាវដ្តីអតីតនិស្សិត Johns Hopkins គាត់បានចូលរួមក្នុងការធ្វើតេស្ត MegaIQ ហើយបានឈ្នះការធ្វើដំណើរទៅកាន់សេតវិមាន នៅពេលដែលគាត់ និងចៅហ្វាយរបស់គាត់ជាប់ចំណាត់ថ្នាក់កំពូលទាំងប្រាំនៅក្នុងប្រទេស។

គាត់បានវិនិយោគការខិតខំប្រឹងប្រែងយ៉ាងខ្លាំងក្នុងការងាររបស់គាត់នៅសាកលវិទ្យាល័យ៖ មិនត្រឹមតែបង្រៀនសិស្ស និងត្រួតពិនិត្យនិស្សិតបញ្ចប់ការសិក្សា ហើយឡើងជណ្តើររដ្ឋបាល (ប្រធានក្រុមប្រឹក្សាសាកលវិទ្យាល័យ សាកលវិទ្យាធិការរងផ្នែកស្រាវជ្រាវ។ ការគ្រប់គ្រងសាកលវិទ្យាល័យទាំងមូល (ឧទាហរណ៍ បានសរសេរអត្ថបទមួយដែលមានចំណងជើងថា “ការប្រឹក្សារបស់មហាវិទ្យាល័យ៖ យកវាចេញ ឬទុកវាចោល?” ចម្លើយ៖ ទេ វាល្អសម្រាប់សាកលវិទ្យាល័យ!)។ គាត់បានធ្វើការជាអ្នកប្រមាញ់នៅសកលវិទ្យាល័យ Southern California ហើយក្នុងអំឡុងពេលដែលគាត់កាន់តំណែងនៅទីនោះ គាត់បានជួយឱ្យសាកលវិទ្យាល័យកើនឡើងពីភាពមិនច្បាស់លាស់រហូតដល់ចំណាត់ថ្នាក់កំពូលនៃកម្មវិធីអប់រំ។

ហើយបន្ទាប់មកមានការពិគ្រោះយោបល់។ សូល​មាន​ភាព​ល្អិតល្អន់ ហើយ​មិន​បាន​បង្ហាញ​ពី​អ្វី​ដែល​គាត់​បាន​ធ្វើ​សម្រាប់​ភ្នាក់ងារ​រដ្ឋាភិបាល​ទេ។ នៅចុងទស្សវត្សរ៍ឆ្នាំ 1960 ដោយមានការខកចិត្តដែលគ្រប់គ្នាប៉ុន្តែគាត់លក់ហ្គេម polyomino នោះ Saul បានបង្កើតក្រុមហ៊ុនមួយដែលគាត់ហៅថា Recreational Technology, Inc. អ្វីៗមិនដំណើរការល្អ ប៉ុន្តែ Saul បានជួប Alvin Berlekamp សាស្ត្រាចារ្យ Berkeley ដែលមានចំណង់ចំណូលចិត្តចំពោះទ្រឹស្តីសរសេរកូដ និងល្បែងផ្គុំរូប។ ក្រោយមកពួកគេបានបង្កើត Cyclotomics (ជាកិត្តិយសនៃពហុធានៃ cyclotomic នៃទម្រង់ x - 1) ដែលនៅទីបំផុតត្រូវបានលក់ទៅឱ្យ Kodak ក្នុងតម្លៃមួយដុំ (Berlekamp ក៏បានបង្កើតប្រព័ន្ធជួញដូរក្បួនដោះស្រាយ ដែលបន្ទាប់មកគាត់បានលក់ទៅឱ្យ Jim Simons ហើយដែលបានក្លាយជាចំណុចចាប់ផ្តើមសម្រាប់បច្ចេកវិទ្យា Renaissance ដែលជាមូលនិធិការពារហានិភ័យធំបំផុតមួយនាពេលបច្ចុប្បន្ននេះ)។

ប៉ាតង់ច្រើនជាង 10,000 គឺនៅក្នុងវិធីមួយឬផ្សេងទៀតទាក់ទងនឹងការងាររបស់ Sol ប៉ុន្តែ Sol ខ្លួនគាត់ផ្ទាល់បានទទួលតែប៉ុណ្ណោះ ប៉ាតង់មួយ។ទៅប្រព័ន្ធគ្រីបតូ ដោយផ្អែកលើក្រុម quasigroups ហើយខ្ញុំគិតថាគាត់បានធ្វើតិចតួចដើម្បីធ្វើពាណិជ្ជកម្មការងាររបស់គាត់។

Sol បានធ្វើការជាច្រើនឆ្នាំជាមួយ Technion ដែលជាវិទ្យាស្ថានបច្ចេកវិទ្យាអ៊ីស្រាអែល។ គាត់បាននិយាយអំពីខ្លួនគាត់ថា " សាសន៍យូដាគ្រិស្តអូស្សូដក់ដែលមិនមែនជាសាសនា" ប៉ុន្តែនៅពេលជាមួយគ្នានេះ ពេលខ្លះបានដឹកនាំសិក្ខាសាលាសម្រាប់អ្នកចាប់ផ្តើមដំបូងនៅលើសៀវភៅលោកុប្បត្តិ ហើយក៏បានធ្វើការលើការបកស្រាយផ្នែកខ្លះនៃរមូរសមុទ្រមរណៈ (សាត្រាស្លឹករឹត Qumran) ។

Saul និងប្រពន្ធរបស់គាត់បានធ្វើដំណើរយ៉ាងទូលំទូលាយ ប៉ុន្តែ "មជ្ឈមណ្ឌលនៃពិភពលោក" សម្រាប់ Saul គឺពិតជាការិយាល័យរបស់គាត់នៅ Los Angeles នៅសាកលវិទ្យាល័យ Southern California ហើយផ្ទះដែលគាត់និងប្រពន្ធរបស់គាត់រស់នៅជិត 60 ឆ្នាំ។ គាត់តែងតែត្រូវបានហ៊ុំព័ទ្ធដោយមិត្តភក្តិ និងសិស្ស។ ហើយគាត់មានគ្រួសារមួយ។ កូនស្រីរបស់គាត់ Astrid បានដើរតួជាសិស្សនៅក្នុងរឿងអំពី Richard Feynman (នាងបានដាក់ឱ្យគាត់) ហើយនៅក្នុងប្រលោមលោករបស់មិត្តខ្ញុំជាតួអង្គមួយ។ Beatrice បានលះបង់អាជីពរបស់នាងដើម្បីអនុវត្តកម្រិតគណិតវិទ្យានៃភាពជាក់លាក់ចំពោះប្រភេទផ្សេងៗនៃការចង្អុលបង្ហាញ និងរោគវិនិច្ឆ័យ (ជំងឺដែលទាក់ទងនឹងសង្គ្រាមឈូងសមុទ្រ ឥទ្ធិពលថ្នាំ Statin, hiccups ។ល។)។ ខ្ញុំថែមទាំងបានរួមចំណែកតូចមួយដល់ជីវិតរបស់ Beatrice ដោយណែនាំនាងឱ្យស្គាល់បុរសដែលក្រោយមកក្លាយជាប្តីរបស់នាង - Terry Seinovski ដែលជាស្ថាបនិកម្នាក់នៃវិទ្យាសាស្ត្រកុំព្យូទ័រទំនើប។

Sol ហាក់​បាន​ចូល​រួម​ក្នុង​ព្រឹត្តិការណ៍​ជា​ច្រើន បើ​ទោះ​ជា​គាត់​មិន​បាន​បញ្ជាក់​លម្អិត​ខ្លាំង​ពេក​ក៏​ដោយ។ ម្ដងម្កាល ខ្ញុំចង់និយាយជាមួយគាត់អំពីវិទ្យាសាស្ត្រ និងគណិតវិទ្យា ប៉ុន្តែគាត់ចាប់អារម្មណ៍ក្នុងការប្រាប់រឿង (ជាញឹកញាប់គួរឱ្យរំភើប) អំពីបុគ្គល និងស្ថាប័ន (" តើអ្នកអាចជឿបានទេថា [ក្នុងឆ្នាំ 1985] បន្ទាប់ពីអវត្តមានជាច្រើនឆ្នាំពីសន្និសិទ លោក Claude Shannon គ្រាន់តែបានបង្ហាញឡើងដោយមិនបានប្រកាសនៅក្នុងរបារមួយនៅឯសន្និសីទប្រចាំឆ្នាំស្តីពីទ្រឹស្តីព័ត៌មាន?"; "តើ​អ្នក​ដឹង​ទេ​ថា​ពួកគេ​ត្រូវ​ចំណាយ​ប្រាក់​ប៉ុន្មាន​ដល់​ប្រធាន​វិទ្យាស្ថាន​បច្ចេកវិទ្យា​កាលីហ្វ័រញ៉ា​ដើម្បី​ឲ្យ​គាត់​ទៅ​អារ៉ាប៊ីសាអូឌីត?"។ល។)។

ក្រឡេកមើលទៅក្រោយ ខ្ញុំដឹងថាខ្ញុំចង់ចាប់អារម្មណ៍សូលក្នុងការដោះស្រាយសំណួរគណិតវិទ្យាមួយចំនួនដែលបានលើកឡើងនៅក្នុងការងាររបស់ខ្ញុំ។ ខ្ញុំ​មិន​គិត​ថា​ខ្ញុំ​យល់​ពី​កម្រិត​ណា​ដែល​គាត់​ចូល​ចិត្ត​ដោះស្រាយ​បញ្ហា​ដែល​ស្នើ​ដោយ​អ្នក​ដទៃ។ ទោះបីជាមានការរួមចំណែកយ៉ាងសំខាន់ក្នុងការអភិវឌ្ឍន៍ហេដ្ឋារចនាសម្ព័ន្ធនៃពិភពកុំព្យូទ័រក៏ដោយ ក៏ Sol ខ្លួនគាត់ផ្ទាល់មិនដែលប្រើប្រាស់កុំព្យូទ័រយ៉ាងធ្ងន់ធ្ងរនោះទេ។ គាត់មានមោទនភាពខ្លាំងណាស់ដែលគាត់អាចធ្វើការគណនាក្នុងក្បាលរបស់គាត់បានយ៉ាងងាយស្រួល។ រហូត​ដល់​អាយុ 70 ឆ្នាំ គាត់​មិន​បាន​ប្រើ​អ៊ីមែល ហើយ​ក៏​មិន​ដែល​ប្រើ​កុំព្យូទ័រ​នៅ​ផ្ទះ​ដែរ ទោះ​បី​គាត់​មាន​ទូរសព្ទ​ក៏​ដោយ (គាត់​ស្ទើរ​តែ​មិន​ដែល​ទទួល​អ៊ីមែល​ធម្មតា។ របស់ Ada Lovelace គាត់បានឆ្លើយថា: " រឿងរបស់ Ada Lovelace ជាអ្នកសរសេរកម្មវិធីរបស់ Babbage គឺរីករាលដាលខ្លាំង ដែលមនុស្សគ្រប់គ្នាហាក់ដូចជាទទួលយកវា ប៉ុន្តែខ្ញុំមិនដែលឃើញប្រភពនៃប្រធានបទនេះទេ។").

កូនស្រីរបស់ Sol បានរៀបចំពិធីជប់លៀងសម្រាប់ខួបកំណើតគម្រប់ 80 ឆ្នាំរបស់គាត់កាលពីប៉ុន្មានឆ្នាំមុន ហើយបានបង្កើតការអញ្ជើញគួរឱ្យចាប់អារម្មណ៍ទាំងនេះ៖

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

ទោះបីជា Saul បាត់ទៅហើយក៏ដោយ ប៉ុន្តែការងាររបស់គាត់នៅតែបន្តនៅក្នុង octillionic bits នៃពិភពឌីជីថល។

លាហើយ Sol ។ ហើយពីយើងទាំងអស់គ្នា - សូមអរគុណ។



Shift register sequences ត្រូវ​បាន​ប្រើ​ទាំង​ក្នុង​ទ្រឹស្ដី​ការ​គ្រីប និង​ការ​សរសេរ​កូដ។ ទ្រឹស្ដីរបស់ពួកគេត្រូវបានអភិវឌ្ឍយ៉ាងល្អ ស្ទ្រីម ciphers ផ្អែកលើការផ្លាស់ប្តូរការចុះឈ្មោះគឺជាកម្លាំងធ្វើការនៃការគ្រីបយោធាជាយូរមកហើយមុនពេលការមកដល់នៃអេឡិចត្រូនិច។

ការចុះឈ្មោះផ្លាស់ប្តូរជាមួយនឹងមតិកែលម្អ (បន្តពីនេះ РгСсОС) មានពីរផ្នែក៖ ការចុះឈ្មោះផ្លាស់ប្តូរ និងមុខងារផ្តល់មតិ។ ការចុះឈ្មោះការផ្លាស់ប្តូរគឺជាលំដាប់នៃប៊ីត។ ចំនួនប៊ីតត្រូវបានកំណត់ ការផ្លាស់ប្តូរប្រវែងចុះឈ្មោះប្រសិនបើប្រវែងគឺ n ប៊ីត នោះការចុះឈ្មោះត្រូវបានគេហៅថា ការចុះឈ្មោះការផ្លាស់ប្តូរ n-bit... នៅពេលណាដែលប៊ីតត្រូវទាញយកមកវិញ រាល់ប៊ីតនៃការផ្លាស់ប្តូរការចុះឈ្មោះត្រូវបានប្តូរទៅខាងស្តាំដោយ 1 ទីតាំង។ ប៊ីតខាងឆ្វេងបំផុតថ្មីគឺជាមុខងារនៃប៊ីតផ្សេងទៀតទាំងអស់នៅក្នុងការចុះឈ្មោះ។ លទ្ធផលនៃការផ្លាស់ប្តូរចុះឈ្មោះគឺមួយ ជាធម្មតាមិនសូវសំខាន់ ប៊ីត។ ការផ្លាស់ប្តូររយៈពេលចុះឈ្មោះគឺ​ជា​ប្រវែង​នៃ​លំដាប់​លទ្ធផល​មុន​ពេល​ចាប់​ផ្តើម​ពាក្យ​ដដែលៗ​របស់​វា។

រូបភាពទី 1. ការចុះឈ្មោះផ្លាស់ប្តូរមតិ

ការចុះឈ្មោះ Shift បានរកឃើញផ្លូវរបស់ពួកគេចូលទៅក្នុងស្ទ្រីមស៊ីហ្វឺរយ៉ាងលឿន ព្រោះវាត្រូវបានអនុវត្តយ៉ាងងាយស្រួលដោយប្រើផ្នែករឹងឌីជីថល។ នៅឆ្នាំ 1965 លោក Ernst Selmer ដែលជាអ្នកសរសេរកូដសម្ងាត់របស់រដ្ឋាភិបាលន័រវេស បានបង្កើតទ្រឹស្ដីនៃការផ្លាស់ប្តូរលំដាប់លំដោយ។ Solomon Golomb ដែលជាគណិតវិទូរបស់ NSA បានសរសេរសៀវភៅដែលរៀបរាប់អំពីលទ្ធផលមួយចំនួនរបស់គាត់ និងលទ្ធផលរបស់ Selmer ។ ប្រភេទនៃការចុះឈ្មោះការផ្លាស់ប្តូរដ៏សាមញ្ញបំផុតជាមួយនឹងមតិកែលម្អគឺជាការចុះឈ្មោះផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរ (បន្តទៅហៅថា LFSR ឬ PrCCLOC)។ មតិកែលម្អនៃការចុះឈ្មោះបែបនេះគឺសាមញ្ញ XOR (ការបន្ថែមម៉ូឌុលពីរ) នៃប៊ីតចុះឈ្មោះមួយចំនួន បញ្ជីនៃប៊ីតទាំងនេះត្រូវបានគេហៅថា លំដាប់ម៉ាស៊ីន។ ការចុះឈ្មោះនេះជួនកាលត្រូវបានគេហៅថាការកំណត់រចនាសម្ព័ន្ធ Fibbonacci ។ ដោយសារតែភាពសាមញ្ញនៃលំដាប់នៃមតិត្រឡប់ ទ្រឹស្តីគណិតវិទ្យាដែលត្រូវបានអភិវឌ្ឍយ៉ាងត្រឹមត្រូវអាចត្រូវបានប្រើសម្រាប់ការវិភាគនៃ PrCcVOC ។ តាមរយៈការវិភាគលំដាប់លទ្ធផល អ្នកអាចផ្ទៀងផ្ទាត់ថាលំដាប់ទាំងនេះគឺចៃដន្យគ្រប់គ្រាន់ដើម្បីឱ្យមានសុវត្ថិភាព។ PrCCcLOC គឺ​ជា​ការ​ចុះ​ឈ្មោះ​ប្ដូរ​ដែល​ប្រើ​ជា​ទូទៅ​បំផុត​ក្នុង​ការ​គ្រីបគ្រីប។


រូបភាពទី 2. PrCsLOC Fibbonacci

ជាទូទៅ N-bit PrCCcLOC អាចស្ថិតនៅក្នុងរដ្ឋខាងក្នុងមួយក្នុងចំណោម N = 2 n -1 ។ នេះមានន័យថា តាមទ្រឹស្ដី ការចុះឈ្មោះបែបនេះអាចបង្កើត pseudo-random sequence ជាមួយនឹងរយៈពេលនៃ T = 2 n -1 bits ។ (ចំនួននៃរដ្ឋខាងក្នុង និងរយៈពេលគឺស្មើនឹង N = T max = 2 n -1 ពីព្រោះការបំពេញ PrCCcLOC ជាមួយសូន្យនឹងធ្វើឱ្យការចុះឈ្មោះផ្លាស់ប្តូរបង្កើតលំដាប់សូន្យគ្មានកំណត់ ដែលពិតជាគ្មានប្រយោជន៍ទេ)។ សម្រាប់​តែ​លំដាប់​បិទ​ជាក់លាក់​ប៉ុណ្ណោះ PrCCcLOC នឹង​ឆ្លង​កាត់​រដ្ឋ​ខាងក្នុង​ទាំង 2 n -1 ជា​វដ្ត​ PrCCcLOC បែបនេះ​គឺ PrCCcLOC ជាមួយនឹងរយៈពេលអតិបរមា... លទ្ធផលដែលទទួលបានត្រូវបានគេហៅថា លំដាប់ M.

ឧទាហរណ៍ ... រូបខាងក្រោមបង្ហាញពី 4-bit PrCCcLOC ដែលបានទាញយកពីប៊ីតទីមួយ និងទីបួន។ ប្រសិនបើវាត្រូវបានចាប់ផ្តើមដោយតម្លៃ 1111 នោះមុនពេលធ្វើពាក្យដដែលៗ ការចុះឈ្មោះនឹងសន្មត់នូវស្ថានភាពផ្ទៃក្នុងដូចខាងក្រោមៈ

ប្តូរលេខនាឡិកា (ស្ថានភាពខាងក្នុង)

ចុះឈ្មោះរដ្ឋ

ទិន្នផលប៊ីត

តម្លៃដើម

15 (ត្រឡប់ទៅស្ថានភាពដំបូង)

16 (ស្ថានភាពដដែលៗ)

លំដាប់លទ្ធផលនឹងជាខ្សែអក្សរនៃប៊ីតដែលមិនសូវសំខាន់៖ 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 ជាមួយនឹងរយៈពេលនៃ T = 15 ចំនួនសរុបនៃរដ្ឋខាងក្នុងដែលអាចកើតមាន (លើកលែងតែសូន្យ) N = 2 4 -1 = 16-1 = 15 = T max ដូច្នេះលំដាប់លទ្ធផលគឺជាលំដាប់ M ។

ដើម្បីឱ្យ PrCCcLOC ជាក់លាក់មួយមានកំឡុងពេលអតិបរមា ពហុនាមដែលបង្កើតឡើងពីលំដាប់សាខា និងថេរ 1 ត្រូវតែជាម៉ូឌុលបឋម 2។ ពហុនាមត្រូវបានតំណាងជាផលបូកនៃដឺក្រេ ឧទាហរណ៍ ពហុនាមនៃដឺក្រេ n ត្រូវបានតំណាងជា ដូចខាងក្រោម៖

x n + ក n-1 x n-1 +… + ក 1 x 1 + ក 0 x 0 = ក x n + ក n-1 x n-1 +… + ក 1 x + ក 0 កន្លែងណា a ខ្ញុំ = (0,1) សម្រាប់ i = 1… n, a x i - ចង្អុលបង្ហាញលេខ។

កម្រិតនៃពហុធា គឺជារយៈពេលនៃការចុះឈ្មោះផ្លាស់ប្តូរ។ ពហុនាមបឋមនៃដឺក្រេ n គឺជាពហុនាមដែលមិនអាចកាត់ផ្តាច់បានដែលបែងចែក x 2n? 1 +1 ប៉ុន្តែមិនមែនជាផ្នែកនៃ x d +1 សម្រាប់ d ទាំងអស់ដែលជាផ្នែកនៃ 2 n -1 ។ ទ្រឹស្តីគណិតវិទ្យាដែលត្រូវគ្នាអាចរកបាននៅក្នុង។

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

មួយចំនួន ប៉ុន្តែមិនមែនទាំងអស់ទេ ពហុនាមនៃដឺក្រេផ្សេងៗ primitive mod 2 ត្រូវបានផ្តល់ឱ្យខាងក្រោម។ ឧទាហរណ៍ការចូល

(32, 7, 5, 3, 2, 1, 0) មាន​ន័យ​ថា​ពហុធា​ខាងក្រោម​គឺ primitive mod 2: x 32 + x 7 + x 5 + x 3 + x 2 + x + 1 ។

វាអាចត្រូវបានធ្វើជាទូទៅយ៉ាងងាយស្រួលសម្រាប់ PrCCLOC ជាមួយនឹងរយៈពេលអតិបរមា។ លេខទីមួយគឺជាប្រវែងនៃ PrCCcLOC ។ លេខចុងក្រោយគឺតែងតែ 0 ហើយអាចត្រូវបានលុបចោល។ លេខទាំងអស់ លើកលែងតែលេខ 0 បញ្ជាក់លំដាប់ម្រាមដៃ រាប់ពីគែមខាងឆ្វេងនៃការចុះឈ្មោះផ្លាស់ប្តូរ។ នោះគឺសមាជិកនៃពហុនាមដែលមានសញ្ញាបត្រទាបជាងត្រូវគ្នាទៅនឹងមុខតំណែងដែលនៅជិតគែមខាងស្តាំនៃការចុះឈ្មោះ។

ការបន្តជាមួយឧទាហរណ៍ ការសរសេរ (32, 7, 5, 3, 2, 1, 0) មានន័យថាសម្រាប់ការចុះឈ្មោះការផ្លាស់ប្តូរ 32 ប៊ីតដែលបានយក ប៊ីតថ្មី ប៊ីតថ្មីត្រូវបានបង្កើតដោយ XORing សាមសិបវិនាទី ទីប្រាំពីរ។ ប៊ីតទីប្រាំ ទីបី ទីពីរ និងទីមួយ។ លទ្ធផល PrCCcLOC នឹងមានប្រវែងអតិបរមា ដោយជិះកង់តាមរយៈតម្លៃ 2 32 -1 រហូតដល់វាកើតឡើងម្តងទៀត។


រូបភាព 4.32 ប៊ីត PrCCcLOC ដែលមានប្រវែងអតិបរមា

ពិចារណាកូដកម្មវិធី PgCsLOC ដែលលំដាប់សាខាត្រូវបានកំណត់លក្ខណៈដោយពហុនាម (32, 7, 5, 3, 2, 1, 0) ។ នៅក្នុងភាសា C វាមើលទៅដូចនេះ៖

static unsigned long ShiftRegister = 1;

/ * អ្វីគ្រប់យ៉ាងលើកលែងតែ 0. * /

ShiftRegister = ((((ShiftRegister >> 31)

^ (ShiftRegister >> 6)

^ (ShiftRegister >> 4)

^ (ShiftRegister >> 2)

^ (ShiftRegister >> 1)

^ ShiftRegister))

| (ShiftRegister >> 1);

ត្រឡប់ ShiftRegister & 0x00000001;)

ប្រសិនបើ shift register វែងជាងពាក្យកុំព្យូទ័រ កូដកាន់តែស្មុគស្មាញ ប៉ុន្តែមិនច្រើនទេ។ ឧបសម្ព័ន្ធ B មានតារាងនៃពហុនាមបឋមមួយចំនួន ម៉ូឌុល 2 យើងនឹងប្រើវានៅពេលអនាគតដើម្បីកំណត់លក្ខណៈសម្បត្តិមួយចំនួននៃពហុនាមទាំងនេះ ក៏ដូចជានៅក្នុងការអនុវត្តកម្មវិធីដើម្បីកំណត់លំដាប់សាខា។

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

ប្រសិនបើ p (x) គឺជាបុព្វកាល នោះ x n p (1 / x) ក៏ជាបុព្វកាលផងដែរ ដូច្នេះធាតុនីមួយៗនៃតារាងពិតជាកំណត់ពហុធាបឋមពីរ។ ឧទាហរណ៍ ប្រសិនបើ (a, b, 0) ជាបឋម នោះក៏ដូច្នោះដែរ (a, a-b, 0)។ ប្រសិនបើវាជាបុព្វកាល (a, b, c, d, 0) នោះវាក៏ជាបុព្វកាល (a, a-d, a-c, a-b, 0)។ គណិតវិទ្យា៖

ប្រសិនបើ x a + x b +1 គឺជាបុព្វកាល នោះ x a + x a-b +1 ក៏ជាបុព្វកាលដែរ

ប្រសិនបើ x a + x b + x c + x d +1 ជាបឋម នោះ x a + x a-d + x a-c + x a-b +1 ក៏ជាបុព្វកាលផងដែរ។ trinomials បឋមត្រូវបានអនុវត្តយ៉ាងរហ័សបំផុតនៅក្នុងកម្មវិធី ដោយសារដើម្បីបង្កើតប៊ីតថ្មី មានតែពីរប៊ីតនៃការផ្លាស់ប្តូរការចុះឈ្មោះត្រូវតែ XORed (ពាក្យសូន្យមិនត្រូវបានគេយកមកពិចារណាទេ ពោលគឺ x 0 = 1 សូមមើលឧទាហរណ៍ខាងលើ)។ ជាការពិត ពហុនាមមតិត្រឡប់ទាំងអស់ដែលបង្ហាញក្នុងតារាងគឺតូចតាច ពោលគឺពួកគេមានមេគុណតិចតួច។ ភាពទន់ខ្សោយតែងតែជាប្រភពនៃភាពទន់ខ្សោយ ដែលពេលខ្លះវាគ្រប់គ្រាន់ដើម្បីបំបែកក្បួនដោះស្រាយមួយ។ សម្រាប់ក្បួនដោះស្រាយគ្រីប វាជាការប្រសើរក្នុងការប្រើពហុនាមបឋមក្រាស់ ដែលមានមេគុណច្រើន។ ដោយប្រើពហុនាមក្រាស់ ជាពិសេសជាផ្នែកមួយនៃគន្លឹះ PsCLOCs ខ្លីជាងច្រើនអាចត្រូវបានប្រើ។

ការបង្កើតពហុនាមបុព្វកាលក្រាស់ mod 2 មិនងាយស្រួលទេ។ ជាទូទៅដើម្បីបង្កើតពហុនាមបឋមនៃដឺក្រេ k អ្នកត្រូវដឹងពីកត្តានៃ 2 k -1 ។

ដោយខ្លួនឯង PrCCcLOCs គឺជាម៉ាស៊ីនបង្កើតលំដាប់ចៃដន្យល្អ ប៉ុន្តែពួកវាមានលក្ខណៈសម្បត្តិមិនចៃដន្យ (កំណត់) ដែលមិនគួរឱ្យចង់បានមួយចំនួន។ ប៊ីតជាប់គ្នាគឺលីនេអ៊ែរ ដែលធ្វើឱ្យពួកវាគ្មានប្រយោជន៍សម្រាប់ការអ៊ិនគ្រីប។ សម្រាប់ PrCLOC នៃប្រវែង n ស្ថានភាពខាងក្នុងគឺជាប៊ីតទិន្នផល n មុនរបស់ម៉ាស៊ីនភ្លើង។ ទោះបីជាគ្រោងការណ៍មតិកែលម្អត្រូវបានរក្សាទុកជាសម្ងាត់ក៏ដោយ វាអាចត្រូវបានកំណត់ពីប៊ីតទិន្នផល 2n នៃម៉ាស៊ីនភ្លើងដោយប្រើក្បួនដោះស្រាយ Berlekamp-Massey ដែលមានប្រសិទ្ធភាពខ្ពស់។

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

ការចុះឈ្មោះផ្លាស់ប្តូរមតិមានពីរផ្នែក៖ ការចុះឈ្មោះផ្លាស់ប្តូរ និង មុខងារមតិត្រឡប់.

រូបភាពទី 19. ការចុះឈ្មោះផ្លាស់ប្តូរមតិ។

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

ប្រភេទនៃការចុះឈ្មោះការផ្លាស់ប្តូរដ៏សាមញ្ញបំផុតគឺការចុះឈ្មោះផ្លាស់ប្តូរមតិត្រឡប់តាមលីនេអ៊ែរ (RSLOS ឬ LRS) ។ មតិកែលម្អគឺជាប្រតិបត្តិការ XOR ដ៏សាមញ្ញមួយនៅលើប៊ីតចុះឈ្មោះមួយចំនួន។ បញ្ជីនៃប៊ីតទាំងនេះត្រូវបានកំណត់ ពហុនាមលក្ខណៈហើយបានហៅ លំដាប់នៃពត់... នេះត្រូវបានគេហៅថាពេលខ្លះ ការកំណត់រចនាសម្ព័ន្ធ Fibonacci.

រូប ២០. ការកំណត់រចនាសម្ព័ន្ធ RLOS Fibonacci ។

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

រូប ២១. ការកំណត់រចនាសម្ព័ន្ធ RSLOS Galois ។

-bit RSLOS អាចស្ថិតនៅក្នុងមួយក្នុងចំណោម 2 - 1 រដ្ឋផ្ទៃក្នុង។ នេះមានន័យថា តាមទ្រឹស្តី ការចុះឈ្មោះបែបនេះអាចបង្កើត pseudo-random sequence ជាមួយនឹងរយៈពេល 2 - 1 ប៊ីត (ទ្រនាប់ជាមួយសូន្យគឺគ្មានប្រយោជន៍ទាំងស្រុង) ។ ឆ្លង​ផុត​ទាំង​អស់ ២ - រដ្ឋខាងក្នុង 1 គឺអាចធ្វើទៅបានតែជាមួយនឹងលំដាប់ម៉ាស៊ីនជាក់លាក់ប៉ុណ្ណោះ។ ការចុះឈ្មោះបែបនេះត្រូវបានគេហៅថា RSLOS ជាមួយនឹងរយៈពេលអតិបរមា។ ដើម្បីធានាបាននូវរយៈពេលអតិបរិមានៃ RSLOC វាចាំបាច់ដែលថាពហុនាមលក្ខណៈរបស់វាមាន បុព្វកាលម៉ូឌុល 2. កម្រិតនៃពហុធា គឺជាប្រវែងនៃការផ្លាស់ប្តូរចុះឈ្មោះ។ ពហុធាបឋមនៃសញ្ញាបត្រ - វាគឺបែបនេះ មិនអាចកាត់ថ្លៃបាន។ពហុធា​ដែល​ជា​អ្នក​ចែក ប៉ុន្តែ​មិន​មែន​ជា​ការ​ចែក x ឃ+ 1 សម្រាប់ទាំងអស់គ្នា ដែលជាការបែងចែក 2 - 1. (ពេលពិភាក្សាពហុនាមពាក្យ លេខបឋមត្រូវបានជំនួសដោយពាក្យ ពហុនាមដែលមិនអាចកាត់ថ្លៃបាន។) ពហុនាមលក្ខណៈដែលបានផ្តល់ឱ្យនៅក្នុងតួលេខនៃ RSLOS:



x 32 + x 7 + x 5 + x 3 + x 2 + x + 1

គឺ primitive modulo 2. រយៈពេលនៃការចុះឈ្មោះបែបនេះនឹងមានអតិបរមា ដោយជិះកង់ឆ្លងកាត់គ្រប់តម្លៃ 2 32 - 1 រហូតដល់ពួកវាត្រូវបានធ្វើម្តងទៀត។ ដែលគេប្រើជាទូទៅបំផុតគឺ ពហុនាមស្តើង, i.e. ដែលមានតែមេគុណមួយចំនួនប៉ុណ្ណោះ។ ការពេញនិយមបំផុតគឺ trinomials ។

ប៉ារ៉ាម៉ែត្រសំខាន់នៃម៉ាស៊ីនភ្លើងដែលមានមូលដ្ឋានលើ RSLOS គឺ ភាពស្មុគស្មាញលីនេអ៊ែរ... វាត្រូវបានកំណត់ជាប្រវែង RLOS ខ្លីបំផុតដែលអាចក្លែងធ្វើទិន្នផលម៉ាស៊ីនភ្លើង។ ភាពស្មុគស្មាញលីនេអ៊ែរមានសារៈសំខាន់ព្រោះជាមួយនឹងភាពសាមញ្ញមួយ។ ក្បួនដោះស្រាយ Berlenkamp-Masseyអ្នកអាចបង្កើត RSLOS បែបនេះឡើងវិញបានដោយពិនិត្យមើលតែ 2 ប៉ុណ្ណោះ។ ប៊ីតហ្គាម៉ា។ ជាមួយនឹងនិយមន័យនៃ RSLOS ដែលចង់បាននោះ ស្ទ្រីមស៊ីហ្វឺរពិតជាខូច។

បន្ថែមពីលើ RSLOS ការផ្លាស់ប្តូរការចុះឈ្មោះជាមួយនឹងមតិត្រឡប់មិនមែនលីនេអ៊ែរ អនុវត្តមតិកែលម្អជាដើមក៏ត្រូវបានគេប្រើផងដែរ។

ម៉ាស៊ីនភ្លើងមួយចំនួនត្រូវបានបង្កើតឡើងដោយផ្អែកលើវិធីសាស្រ្តទ្រឹស្តីចំនួន (ម៉ាស៊ីន Bloom-Micali, RSA, BBS, compressive, additive generator, etc.)។

កម្មវិធីសម្រាប់ការសំយោគនៃក្បួនដោះស្រាយគ្រីបស្ទ្រីមត្រូវបានបង្កើតឡើងយ៉ាងលម្អិត និងប្រៀបធៀបជាមួយប្លុកគ្រីបតូ។ ទោះយ៉ាងណាក៏ដោយ ដើម្បីបង្កើតស្ទ្រីមស៊ីហ្វឺរ ប្លុកគ្រីបតូ ក្បួនដោះស្រាយត្រូវបានប្រើជាញឹកញាប់នៅក្នុងរបៀប OFB ឬ CFB ។