реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Простой вопрос по защите данных с помощью CRC
GetSmart
сообщение Mar 22 2011, 09:57
Сообщение #31


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(MrYuran @ Mar 22 2011, 14:52) *
Если адрес передаваемого сообщения отличается от адреса приёмника более чем в 3 битах, CRC не выявит ошибки.
Вот это я хотел сказать.

Вас кто-то ввёл в заблуждение что CRC не выявляет ошибки более 3 бит.


Цитата(MrYuran @ Mar 22 2011, 14:52) *
Или мы опять друг друга не поняли.

Поняли. На половину хотя бы.
Просто "пугает" неизвестность. Правильных цифр здесь пока не знает никто.
Результат может быть приемлемым. А может быть и нет.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 22 2011, 09:57
Сообщение #32


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(GetSmart @ Mar 22 2011, 12:53) *
Ровно та же ситуация и с обычной CRC. Вопрос только в относительности надёжности.

В данном случае передавать адрес без всяких ЦРЦ будет намного надёжнее, чем выковыривать его косвенно при помощи дохленького ЦРЦ7.
Цитата
Вас кто-то ввёл в заблуждение что CRC не выявляет ошибки более 3 бит.

Возвращаемся к истокам sm.gif
Цитата
Дано: протокольчик связи между устройствами в одномастерной сети. Некое сообщение из, допустим, 4-х байт, защищено CRC7. Поле адреса устройства считается при подсчете CRC7, но реально не передается. Принимающая сторона при приеме сообщения учитывает свой адрес при подсчете CRC, проверяя таким образом валидность.

Я исходил из поставленной задачи.
CRC7 не выявит больше 3 ошибочных бит на всё сообщение, это можете не сомневаться.
Вообще, за это время можно уже модельку накидать.
И увидеть всё наглядно.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 10:02
Сообщение #33


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(ViKo @ Mar 22 2011, 14:56) *
Я чуть выше подкорректировал свой ответ.

Воды долили? Принципиально ничего не изменилось.

Цитата(MrYuran @ Mar 22 2011, 14:57) *
В данном случае передавать адрес без всяких ЦРЦ будет намного надёжнее, чем выковыривать его косвенно при помощи дохленького ЦРЦ7.

Насколько? Без цифр пустой разговор.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 22 2011, 10:28
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(_Pasha @ Feb 2 2011, 11:08) *
Некое сообщение из, допустим, 4-х байт, защищено CRC7. Поле адреса устройства считается при подсчете CRC7, но реально не передается.


Не знаю какой у вас полином, но если вы тоже ещё не знаете - возьмите полином из (63,56) БЧХ кода с корнями 0, 1, то есть примитивный двоичный полином степени 6, умноженный на полином x+1. У него минимальное расстояние будет равно 4. Вероятность пропуска ошибок при белом шуме с вероятностью ошибки одного бита p будет порядка (21*p)^4 для 128 устройств на шине, или порядка (17*p)^4 для одного устройства на шине. Вероятность пропуска полностью случайного блока будет N/16384, где N - число устройств на шине.

Цитата(GetSmart @ Mar 22 2011, 12:51) *
Через (квази) обратное преобразование из CRC.


Для полного диапазона адресов в 128 устройств абсолютно бессмыссленное занятие. Вероятность неправильного приема не отличается от просто передачи 7 бит адреса вместо поля CRC.

Для меньшего количества устройств, боюсь, кодовое расстояние в результате легко может упасть до единицы, если не подбирать распределение адресов специально. То есть для достаточно большого количества устройств будет сравнимо с передачей хуже передачи 6 битов адреса плюс бит контроля четности.


А более точно можно посчитать только с учетом реального распределения кодовых слов, но результат кардинально хуже нормального дополнительного СRС поля и передаваемого адреса на белом шуме, и существенно хуже для полностью случайных блоков.

Но можно кое-что оценить исходя из 7 бит на адрес плюс проверку. Для двух устройств у нас остается один бит адреса и 6 бит проверочных, что позволяет использовать код Хэмминга с минимальным расстоянием 3 и еще довольно низкой вероятностью необнаружения одиночных ошибок. Для 2 бит адреса остается 5 проверочных бит, то есть двоичный циклический код неизбежно будет пропускать некоторые двойные ошибки. Однако можно получить линейный код с расстоянием 2 из кода Хэмминга длиной 63, выкинув, в том числе, 1 проверочный бит. Уже для 3 бит адреса такой метод гарантированно оставляет расстояние лишь 1, что бессмыссленно по сравнению с просто контролем четности.

Цитата(MrYuran @ Mar 22 2011, 12:57) *
CRC7 не выявит больше 3 ошибочных бит на всё сообщение, это можете не сомневаться.


Спорим, выявит 6 указанных мною ошибочных бит?


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 22 2011, 10:36
Сообщение #35


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(Oldring @ Mar 22 2011, 15:28) *
Для полного диапазона адресов в 128 устройств абсолютно бессмыссленное занятие. Вероятность неправильного приема не отличается от просто передачи 7 бит адреса вместо поля CRC.

Кто сказал что диапазон адресов = 128? Паша вроде байт хотел сэкономить.

Но вообще, прошу заметить, что идея не моя sm.gif Мне как и ТС любопытен был ответ в количественном виде.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 22 2011, 10:57
Сообщение #36


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(GetSmart @ Mar 22 2011, 12:36) *
Мне как и ТС любопытен был ответ в количественном виде.

Без знания вероятности искажений одиночного бита в канале связи ответ никогда не узнать.
А также - пары битов, тройки битов, четверки битов, и т.д.
А что, если имеется помеха, приводящаа к полному затыку канала на весь интервал передачи?

Передаем 4 байта. Один бит исказился. Сообщение ошибочное. 256 устройств высчитали CRC, добавив свой адрес. У кого-то CRC совпадет.
(В-принципе, CRC не обязательно у кого-то должен совпасть, но очень вероятно. Для этого, собственно, CRC и создан. Чтобы для любых даже слабо отличающихся кодов создать сильно отличающийся результат. Поэтому, представив, что результат вычисления CRC будет иметь равномерную плотность вероятности, получить можно любой код.)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 22 2011, 11:23
Сообщение #37


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Oldring @ Mar 22 2011, 13:28) *
Спорим, выявит 6 указанных мною ошибочных бит?

Засчёт более короткого сообщения (по сравнению с махlen=127)? Возможно.
Под рукой таблиц нет, искать некогда.
Поверю на слово.

Цитата(GetSmart @ Mar 22 2011, 13:36) *
Кто сказал что диапазон адресов = 128? Паша вроде байт хотел сэкономить.

Лучше бы сказал, для чего он это хотел.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
i-mir
сообщение Mar 22 2011, 11:26
Сообщение #38


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986



Цитата(GetSmart @ Mar 22 2011, 14:36) *
Мне как и ТС любопытен был ответ в количественном виде.

Странно, ведь задача не поставлена - а вы хотите в цифрах ответ.
Из-за этого куча шума на ветке, хотя вопрос далеко не сложный.
Мало того, можно и абсолютный уровень по безопасности вывести
для наиболее тяжелого условия работы канала связи (например
включаем рядом дрель, усиливаем и XOR в канал).
Все эти модели есть и прекрасно работают. Но для получения
ответа дайте корректное условие в цифрах. cool.gif

Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 22 2011, 11:32
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(MrYuran @ Mar 22 2011, 14:23) *
Засчёт более короткого сообщения (по сравнению с махlen=127)? Возможно.


За счет того, что любой систематический циклический код обнаруживает бурсты ошибок длиной, не превышающей его количества проверочных бит.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 22 2011, 12:36
Сообщение #40


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(MrYuran @ Mar 22 2011, 13:23) *
Лучше бы сказал, для чего он это хотел.

Для того и хотел, имхо. Укоротить длину сообщения.
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 25 2011, 07:20
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(MrYuran @ Mar 22 2011, 16:01) *
Вот с википедии характеристика CRC8:
Цитата
CRC7 будет соответственно обнаруживать одинарные, двойные и тройные ошибки ВО ВСЁМ сообщении.
То есть, максимально имеем 3 бита на адрес, и при этом любая дополнительная ошибка может перевести сообщение в разряд "правильных" для неправильного адреса.
Если нетрудно, ткните носом, где это написано. Полазил-полазил по википедии - не нашёл.
Меня заинтересовал вопрос зависимости оптимально применимой длины поля CRC от длины пакета. Т.е. для каких длин пакетов применяется CRC8, для каких CRC16 и т.д. Хотя бы "среднепотолочные" цифры, для распространённого случая.
Если кто знает, пошлите, пожалуйста, по ссылке )))


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
i-mir
сообщение Apr 26 2011, 05:45
Сообщение #42


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986



В свое время писал об этом.
http://electronix.ru/forum/index.php?s=&am...st&p=898290

ПС. Википедия не дает и не может давать глубоких ответов - только стартовую точку ...

Сообщение отредактировал i-mir - Apr 26 2011, 05:47
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 26 2011, 06:55
Сообщение #43


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Krys @ Apr 25 2011, 11:20) *
Если нетрудно, ткните носом, где это написано. Полазил-полазил по википедии - не нашёл.

Есть там.
Надо развернуть "плюсики" с приведёнными примерами.
Ну а если хотите серьёзно разобраться - это надо литературу читать.
Я в своё время диплом писал по корректирующим кодам, больше всего пользы извлёк из 500-страничной книжки с красной обложкой, автор какой-то японец.
То ли Токура, то ли что-то в этом роде...
Не эта ли?
Блин, а я в читальном зале часами сидел, домой не выдавали такие раритеты...

Вот ещё...

Ну и далее в том же духе.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Apr 26 2011, 08:40
Сообщение #44


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



До кучи
Go to the top of the page
 
+Quote Post
i-mir
сообщение Apr 26 2011, 14:10
Сообщение #45


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986



Цитата
Есть там. Надо развернуть "плюсики" с приведёнными примерами.


Проблема в том, что приведенные примеры не дадут вам "динамики" работы СRC,
для этого пишется свой код и проводятся испытания, порой длительные.

Цитата
Хотя бы "среднепотолочные" цифры, для распространённого случая.


Если будет хоть немного конкретики - можно ответить на вопрос, предложить хороший полином,
проанализировать помехоустойчиовсть и т.д. Что передается, в каком объеме, в каких
условиях, требования к надежности/безопасности и т.д. ?
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01503 секунд с 7
ELECTRONIX ©2004-2016