Спосіб поєднання завадостійкого кодування дискретної інформації і потокового шифрування із сеансовим ключем

Номер патенту: 62306

Опубліковано: 25.08.2011

Автори: Дубров Олександр Федорович, Семеренко Василь Петрович

Завантажити PDF файл.

Формула / Реферат

Спосіб поєднання завадостійкого кодування дискретної інформації і потокового шифрування із сеансовим ключем, в якому на боці передавача кодують -розрядні інформаційні вектори множенням на -розрядний породжувальний поліном циклічного -коду і шифрують їх, а на боці приймача дешифрують отримані з каналу зв'язку -розрядні кодові вектори і декодують їх діленням на -розрядний породжувальний поліном циклічного -коду, який відрізняється тим, що на боці передавача після кодування шифрують -розрядні кодові вектори приєднанням до них -розрядного сеансового ключа і подальшим діленням на -розрядний породжувальний поліном циклічного -коду , а на боці приймача дешифрують -розрядні кодові вектори порозрядним модульним додаванням -розрядного вектора паролю, який обчислюється як -a остача від ділення зсунутого на  розрядів вліво сеансового ключа на -розрядний породжувальний поліном циклічного -коду, причому для кожного кодового вектора використовується свій сеансовий ключ, який обчислюється почерговим діленням заданого секретного базового ключа на -розрядний породжувальний поліном циклічного -коду і його подальшим нелінійним перетворенням.

Текст

Спосіб поєднання завадостійкого кодування дискретної інформації і потокового шифрування із сеансовим ключем, в якому на боці передавача кодують k -розрядні інформаційні вектори множенням на k -розрядний породжувальний поліном циклічного k -коду і шифрують їх, а на боці приймача дешифрують отримані з каналу зв'язку n розрядні кодові вектори і декодують їх діленням на n  k -розрядний породжувальний поліном циклі них Корисна модель належить до техніки передавання даних і може бути використана в інформаційно-вимірювальних системах, комп'ютерних мережах та в засобах шифрування даних. Відомий спосіб стохастичного кодування з виправленням помилок і захистом інформації при передачі даних по каналах зв'язку. Цей спосіб включає в себе власне кодування і декодування, а також і стохастичне перетворення на основі псевдовипадкових чисел. [Осмоловский С. А. Стохастические методы защиты информации. М.: Радио и связь, 2003]. Недоліком відомого способу є те, що операції кодування і декодування виконуються окремо від операцій шифрування і дешифрування, що вимагає великих витрат часу для передачі даних і не дозволяє його ефективне використання в системах реального часу. Найбільш близьким по технічній суті є спосіб завадостійкого кодування дискретної інформації із захистом [Патент України на корисну модель № 50203 М. кл., Н03М13/00, Бюл. № 10, 2010], в якому на боці передавача кодують k -розрядні інформаційні вектори множенням на n  k  -розрядний льний поліном циклічного l, m -коду l  m  n , а на боці приймача дешифрують l  m -розрядні кодові вектори порозрядним модульним додаванням l  m -розрядного вектора паролю, який обчислюється як m  1 -a остача від ділення зсунутого на l  m розрядів вліво сеансового ключа на l  m -розрядний чного l, m -коду, породжувальний поліном циклі причому для кожного кодового вектора використовується свій сеансовий ключ, який обчислюється почерговим діленням заданого секретного базового ключа на l  m -розрядний (11) UA породжувальний поліном циклічного n, k  -коду і шифрують їх, а на боці приймача декодують отримані з каналу зв'язку n -розрядні кодові вектори діленням на n  k  -розрядний породжувальний поліном циклічного n, k  -коду, і дешифрують їх, після кодування шифрують n -розрядні кодові вектори порозрядним додаванням по модулю два до них секретного n -розрядного вектора паролю, а перед декодуванням дешифрують порозрядним додаванням по модулю два до отриманих з каналу зв'язку n -розрядних кодових векторів цього ж n розрядного вектора паролю. Недоліком цього способу є низька криптостійкість через використання одного пароля протягом всього процесу передавання даних, а також вико 62306 (13) U породжувальний поліном циклічного l, m -коду і його подальшим нелінійним перетворенням. (19) чного n, k  -коду, який відрізняється тим, що на боці передавача після кодування шифрують l  m -розрядні кодові вектори приєднанням до сеансового ключа і пода льшим діленням на l  m -розрядний породжува 3 ристання тільки лінійних перетворень при обчисленні паролю. В основу корисної моделі поставлена задача створення способу поєднання завадостійкого кодування дискретної інформації і потокового шифрування із сеансовим ключем, в якому за рахунок використання для шифрування кожного кодового вектора свого сеансового ключа, який обчислюється на основі лінійних операцій із заданим секретним базовим ключем і його подальшим нелінійним перетворенням, в результаті чого зберігається початкова завадостійкість кодування, збільшується ступінь захисту, зменшуються загальні витрати часу на виконання операцій декодування і дешифрування. Поставлена задача вирішується тим, що в способі поєднання завадостійкого кодування дискретної інформації і потокового шифрування із сеансовим ключем, в якому на боці передавача кодують k -розрядні інформаційні вектори множенням на n  k  -розрядний породжувальний поліном циклічного n, k  -коду і шифрують їх, а на боці приймача дешифрують отримані з каналу зв'язку n -розрядні кодові вектори і декодують їх діленням на n  k  -розрядний породжувальний поліном циклічного n, k  -коду, причому на боці передавача після кодування шифрують l  m розрядні кодові вектори приєднанням до них l  m -розрядного сеансового ключа і подальшим 62306 4 розрядний інформаційний вектор Ix  перемножити на породжувальний поліном gx : Cx  Ix  gx , (1) Перевагою несистематичного кодування в циклічних кодах є нероздільність інформаційних і контрольних розрядів, що забезпечує одночасно і першу ступінь захисту даних в каналі зв'язку. Подальший захист даних забезпечують завдяки їх наступному шифруванню. Для цього задають l  m -розрядний базовий ключ K b , який залишають незмінним протягом всього інтервалу часу передачі масиву кодових векторів l  m  n . Для передачі кожного окремого кодового вектора Ci x  обчислюють свій сеансовий ключ K s,i за допомогою циклічного l, m -коду над полем Галуа GF(2), який задають l  m -розрядним породжувальним поліномом hx   hr x r  hr 1x r 1    hx  h0 ,r  l  m . Сеансовий ключ K s,i формують за два етапи: лінійний та нелінійний. На першому етапі для i -го сеансу обчислюють лінійний сеансовий ключ K lin i , як i -а остачу від модульного ділення над полем Галуа GF(2) базового ключа K b на породжуваль l  m -розрядний породжувальний поліном циклічного l, m -коду l  m  n , а на боці приймача дешифрують l  m -розрядні кодові вектори порозрядним модульним додаванням l  m ний поліном hx циклічного l, m -коду: розрядного вектора паролю, який обчислюють як m  1 -a остачу від ділення зсунутого на l  m На другому етапі для i -го сеансу обчислюють нелінійний сеансовий ключ K s,i як результат пе діленням на розрядів вліво сеансового ключа на l  m розрядний породжувальний поліном циклічного l, m -коду, причому для кожного кодового вектора використовують свій сеансовий ключ, який обчислюють почерговим діленням заданого секретного базового ключа на l  m -розрядний породжувальний поліном циклічного l, m -коду і його подальшим нелінійним перетворенням. Спосіб здійснюється наступним чином. Спочатку на боці передавача виконують завадостійке кодування заданих інформаційних векторів Ix  за допомогою циклічного n, k  -коду над полем Галуа GF(2) з мінімальною кодовою відстанню dmin , який задають n  k  -розрядним породжувальним поліномом gx   gr x r  gr 1x r 1    g1x  g0 ,r  n  k . Для завадостійкого кодування використовують несистематичне кодування циклічних кодів, тобто для отримання n -розрядного кодового вектора Cx  необхідно протягом n тактів часу заданий k K lini   K b x i  modhx  ,  ,    (2) ретворення лінійного сеансового ключа K lin i за , допомогою булевої нелінійної функції ( ) : i  K s,i   K  lini  , ,  (3) Прикладом булевої нелінійної функції можуть бути бент-функції. Лінійний та нелінійний етапи обчислення сеансового ключа K s,i забезпечують відповідно другий та третій ступені захисту даних і тривають по одному такту часу. Зашифрований l  m -розрядний кодовий вектор Ti x  формують як l  m  1 -а остачу від модульного ділення над полем Галуа GF(2) сеансового ключа K s,i і приєднаного до нього кодового вектора Ci x  на породжувальний поліном hx циклічного l, m -коду: Ti x    K s,i xl m  Ci x  modhx  ,     (4) 5 62306 Процес шифрування кодового вектора відбувається одночасно із його кодуванням, з затримкою лише на один такт. Далі кодовий вектор Ti x  передають по каналу зв'язку. На боці приймача отриманий із каналу зв'язку вектор Tch,i x  спочатку дешифрують, тобто з нього виділяють кодовий вектор Cch,i x  . Для цього на стороні приймача спочатку формують такий же нелінійний сеансовий ключ K s,i , як і на стороні передавача. Далі формують l  m -розрядний сеансовий пароль Ps,i як l  m  1 -а остачу від модульного ділення над полем Галуа GF(2) зсунутого на l  m розрядів вліво нелінійного сеансового ключа K s,i на породжувальний поліном hx циклічного l, m -коду: Ps,i   K s,i xlm  modhx  ,     (5) Формування сеансового паролю Ps,i відбувається протягом такого інтервалу часу, поки триває передача кодового вектора Ti x  по каналу зв'язку. Дешифрування полягає в модульному порозрядному додаванню над полем Галуа GF(2) сформованого сеансового паролю Ps,i до отриманого із каналу зв'язку кодового вектора Tch,i x  , в результаті чого буде отримано кодовий вектор Cch,i x  : Cch,i x   Tch,i x   Ps,i x  , (6) При декодуванні із кодового вектора Cch,i x  виділяється початковий інформаційний вектор Ix  модульним діленням кодового вектора Cch,i x  на породжувальний поліном gx : Ii x   Cch,i x   Ri x  , gx  (7) Якщо в результаті ділення (4) буде отримано нульовий вектор синдрому Rx  , це буде свідчити, що передача даних по каналу зв'язку виконана без d  1  помилок тобто min  min  min ,   2   Cch,i x   Ci x  . При отриманні ненульового вектора синдрому Rx  далі виконують процедуру пошуку помилок в кодовому векторі в межах коректуючої здатності вибраного коду. 6 Основну роль в захисті даних відіграє секретний базовий ключ K b і ступінь криптостійкості залежить від величини його розрядності. Оскільки l  m -розрядний вектор ключа K b може бути довільним, існує 2lm варіантів такого вибору. Розрядність ключа K b визначають розрядніс тю породжувального полінома циклічного l, m коду, що використовують для шифрування. Тому вказаний поліном має бути примітивним і максимально можливої розрядності, що зробить випадковий підбір ключа K b практично неможливим. У запропонованому способі поєднання завадостійкого кодування дискретної інформації і потокового шифрування із сеансовим ключем підвищується криптостійкість завдяки тому, що використовується триступенева система захисту і при обчисленні сеансового паролю Ps,i використовуються лінійні та нелінійні перетворення. Оскільки сеансовий вектор паролю Ps,i зміню ється для кожного нового кодового вектора Ci x  , тому неможливо розшифрувати весь масив кодових векторів навіть тоді, коли буде одночасно відома деяка кількість зашифрованих та відкритих кодових векторів. Розглянемо спосіб поєднання завадостійкого кодування дискретної інформації і потокового шифрування із сеансовим ключем на прикладі циклічного (7,4)-коду з породжувальним поліномом gx   x 3  x  1 та циклічного (255,247)-коду з породжувальним поліномом px   x 8  x 6  x 5  x 4  1n  7, l  255, m  247. Нехай задано 4-розрядний інформаційний вектор I1x   x 3  x 2  x  1110 . Виконаємо несистематичне кодування для отримання 7-розрядного кодового вектора C1x  згідно з (1) використанням породжувального поліному gx : C1x    x 3  x 2  x    x 3  x  1          , 6  x 5  x  1100010 x Для криптографічного розрядний m  8 (8) захисту задано 8базовий ключ K b  x 7  x 4  x  1  10010011. Згідно з (2) знайдемо першу остачу від модульного ділення над полем Галуа GF(2) на породжувальний поліном hx , тобто обчислимо для першого сеансу ліній ний сеансовий ключ K lin i : , 7 62306 8 8 5 2 8 6 5 4  7 4 6 5 4    8  x  0  0  x  0  0x  x  0 x  x  x  x  1 .   x  x  x  1x  mod x  x  x  x  1       x8  0  x 6  x5  x 4  0  0  0  1 1 Отже, Klin1  x6  x 4  x2  x  1  01010111. , Для формування нелінійного сеансового ключа K s,1 скористаємось такою булевою нелінійною Результати перетворення лінійного сеансового ключа K lin1 за допомогою булевої нелінійної , функції (9) подамо у вигляді таблиці. функцією ( ) : a  a j & a j 1  a j  2 , j  0,1 ,n2  1 , , (9) де a j - j -й розряд ключа K lin1, a 1  a  2  0 . , Таблиця Формування розрядів нелінійного сеансового ключа K s,1 № Розряди ключа K lin1 , Розряди ключа K s,1 0 1 2 3 4 5 6 7 1 1 1 0 1 0 1 0 1& 0  0  0 1& 1 0  1 1& 1 1  0 0 & 1 1  1 1& 0  1  1 0 & 1 0  0 1& 0  1  1 0 & 1 0  0 Отже, таким чином ми отримали нелінійний сеансовий ключ K s,1  x6  x 4  x3  x  01011010 , (10) Тепер за допомогою ключа (10) можна зашифрувати кодовий вектор (8) і отримати 8розрядний кодовий вектор T1x  згідно з (4). Спочатку приєднаємо до ключа (10) кодовий вектор (8):  x 6  x 4  x 3  x  x 8  x 6  x 5  x  x14  x12  x11  x 9  x 6  x 5  x  1011010011 00010.     Далі необхідно виконати обчислення  x14  x12  x11  x 9  x 6  x 5  x   mod x 8  x 6  x 5  x 4  1.         В результаті ділення цих поліномів буде отримана остача, яка і являє собою зашифрований кодовий вектор: T1x   x 6  x 5  x 4  x 2  1  01110101. На боці приймача для розшифрування потрібно спочатку сформувати нелінійний сеансовий ключ K s,i , аналогічно, як на боці передавача, а потім - 8-розрядний сеансовий пароль Ps,1 згідно з (5). В даному випадку необхідно виконати такі обчислення:  6 4 3 6 5 4 12 11 9 6 5 4  8  8   14  8    x  x  x  x  x  mod x  x  x  x  1   x  x  x  x  mod x  x  x  x  1.           В результаті ділення цих поліномів буде отримана остача, яка і являє собою зашифрований сеансовий пароль: Ps,1x  x 4  x 2  x  1  00010111. Виконаємо дешифрування кодового вектора згідно з (6): Cch,1x   Tch,1x   Ps,,1x   x 6  x 5  x   1100010. 9 ра 62306 Згідно з (7), при декодуванні із кодового вектоCch,i x  виділяється інформаційний вектор I1x  діленням кодового вектора Cch,i x  на породжувальний поліном gx : I1x   x 6  x5  x  x 3  x 2  x  1110 , x3  x  1 Комп’ютерна верстка Л. Ціхановська (11) 10 Оскільки в результаті ділення (11) отримана нульова остача, тобто отримано нульовий вектор синдрому Ri x  , це свідчить, що передача даних по каналу зв'язку виконана без min помилок, тобто Cch x   Cx  і отримано початковий інформаційний вектор I1x  . Підписне Тираж 23 прим. Державна служба інтелектуальної власності України, вул. Урицького, 45, м. Київ, МСП, 03680, Україна ДП “Український інститут промислової власності”, вул. Глазунова, 1, м. Київ – 42, 01601

Дивитися

Додаткова інформація

Назва патенту англійською

Method for combining discrete information antinoise coding and session key current inscription

Автори англійською

Semerenko Vasyl Petrovych, Dubov Oleksandr Fedorovych

Назва патенту російською

Способ соединения помехоустойчивого кодирования дискретной информации и текущего шифроваия сеансовым ключом

Автори російською

Семеренко Василий Петрович, Дубров Александр Федорович

МПК / Мітки

МПК: H03M 13/00

Мітки: кодування, завадостійкого, ключем, потокового, шифрування, інформації, сеансовим, поєднання, спосіб, дискретної

Код посилання

<a href="https://ua.patents.su/5-62306-sposib-poehdnannya-zavadostijjkogo-koduvannya-diskretno-informaci-i-potokovogo-shifruvannya-iz-seansovim-klyuchem.html" target="_blank" rel="follow" title="База патентів України">Спосіб поєднання завадостійкого кодування дискретної інформації і потокового шифрування із сеансовим ключем</a>

Подібні патенти