ការចុះឈ្មោះផ្លាស់ប្តូរមតិយោបល់លីនេអ៊ែរ(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 ( qឬ r)). មិនគួរឱ្យជឿ សូលបានពិចារណាលើការផ្លាស់ប្តូរមតិត្រឡប់ដែលមិនមែនជាលីនេអ៊ែរ ដោយផ្អែកលើមុខងារស្រដៀងគ្នានេះ៖ រ + ជី + ស + 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 ។
តម្លៃនៃ avatars ក្នុងចិត្តវិទ្យា
តម្លៃនៃ avatars ក្នុងចិត្តវិទ្យា
របៀបសង្កត់អក្សរក្នុង MS Word
តើវាមានន័យយ៉ាងណាបើរូបតំណាងរបស់មនុស្ស
របៀបបង្កើត Twitter Moment ផ្ទាល់ខ្លួនរបស់អ្នក។