ктн,
доцент Василенко В. С.,
Дубчак
О.В., Василенко М.Ю.
Національний авіаційний
університет (НАУ), Україна
Поновлення цілісності інформаційних
об’єктів в коді умовних лишків
Як відомо [1], одним
із алгоритмів виявлення порушень цілісності інформаційних об’єктів при
застосуванні коду умовних лишків є нулізація.
В наслідок операції нулізації із числа А/, яке контролюється,
віднімається число Т = А/ - k×Р < P. Це число формується по всім символам числа А/, окрім контрольних, і є
таким, що не перевищує робочого діапазону коду. При цьому по контрольній основі
pk одержується результат γ такий, що відповідає
лівій межі одного із контрольних піддіапазонів [k×Р, (k + 1)×Р) , тобто величині k×Р.
Отже маємо
.
Звідсіля, за правилами системи лишкових класів (СЛК),
отримаємо
. (1)
Тобто, використовуючи вираз (1) завжди можна визначити
номер того діапазону, в який потрапило спотворене число та результат нулізації - число k×Р.
Надалі
врахуємо, що величина вектора спотворення:
ΔА =
0, 0, …, 0, Δαі,
0,…, 0,
де Δαі
= ΔАі (mod pi), ΔАі
= – величина спотворення по основі , задовольняє умові:
.
Із врахуванням того, що Р = , розділимо усі частини цього виразу на величину :
. (2)
Тоді місцем спотворення (узагальненим символом із
номером і чи – умовним лишком за основою ) є той узагальнений символ, для якого система нерівнянь (2)
є справедливою із одночасною справедливістю вимоги: значення величини номера піддіапазону повинно бути цілочисельних і не повинно перевищувати величини
відповідної основи: . Це місце спотворення можна знайти, хоча б
перебором у виразі (2) основ.
Приклад. Хай з використанням алгоритму нулізації закодовано
вихідний код 110110, вважаючи, що можлива довжина пакета спотворень b = 2. Тобто можливо розбиття вихідного
коду на три (n = 3) двохрозрядні
групи
α1 = 112, α2 = 012,
α3 = 102, s = 4, як умовні основи вибрані р1 = 4, р2 = 5, р3
= 7, а як значення контрольної основи вибрано рк = 71 (нагадаємо, що контрольна основа повинна
задовольняти умові рк >
2·рn ·рn-1
= 2·5·7 = 70), що потребує для свого відображення семи розрядів. В наслідок
цього при кодуванні сформовано код
А =
11.01.10.0000000.
Нехай в цьому коді спотворена третя пара розрядів так,
що
= 11.01.01.0110011. Неважко
показати, що після декодування за алгоритмом нулізації буде одержаним значення γ
= 51.
Визначимо номер піддіапазону k. Із виразу (2) витікає:
γ = (k·Р) (mod рк) = (k·140)
(mod 71) = 51,
чи:
,
де величина с
підбирається так, що с = (0, 1, 2, …) доти, поки не буде одержаним
ціле значення k. Неважко упевнитися,
що при с = 9:
k = (51
+9·71)/69 =
(51 + 639)/69= 690/69 = 10,
і що, оскільки , то спотворене число при цьому попало на ліву границю
діапазону .
Тоді із врахуванням того, що , , , із системи нерівнянь (2)
при k = 10 на першому кроці (по
основі р1) маємо:
.
Оскільки обидва нерівняння цієї системи не
задовольняють вимозі щодо цілочисельних значень
величини номера
піддіапазону , робимо висновок про
відсутність спотворень у першому символі. На другому кроці (по основі р2) маємо:
.
Як і в першому випадку, робимо висновок про відсутність спотворень у другому символі. На
третьому кроці (по основі р3)
маємо:
.
Оскільки ця система задовольняються при , робимо висновок про наявність
спотворень у третьому символі, та про визначення номера піддіапазону, величина якого дорівнює одиниці: . Отже, спотворення має величину , лишок якого по модулю р3
= 7 дорівнює .
Тепер виправлення виявленого спотворення не становить
ніяких утруднень:
,
що і мало місце в початковому коді (α1
= 112, α2 = 012, α3 = 102) ще на етапі кодування.
Таким чином, порівнявши отримане значення з вихідним, не
спотвореним, упевнюємося в тому, що запропонований алгоритм забезпечує вірну корекцію.
Список джерел:
1. Василенко В.С. Алгоритм нулізації в задачах
кодування-декодування коду умовних лишків. / В.С. Василенко, О.В. Дубчак //
Матеріали VІІ міжнародної Науково –
практичної конференції “Сучасні наукові досягнення – 2012, 27.01 – 05.02 2012
р.”. – Praha: “Publishing House” ”Edication and Science” s.r.o. 2012. –Т. 26,
С. 81–85