|
|
  |
Простой вопрос по защите данных с помощью CRC |
|
|
|
Mar 22 2011, 09:57
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(MrYuran @ Mar 22 2011, 14:52)  Если адрес передаваемого сообщения отличается от адреса приёмника более чем в 3 битах, CRC не выявит ошибки. Вот это я хотел сказать. Вас кто-то ввёл в заблуждение что CRC не выявляет ошибки более 3 бит. Цитата(MrYuran @ Mar 22 2011, 14:52)  Или мы опять друг друга не поняли. Поняли. На половину хотя бы. Просто "пугает" неизвестность. Правильных цифр здесь пока не знает никто. Результат может быть приемлемым. А может быть и нет.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 22 2011, 09:57
|

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

|
Цитата(GetSmart @ Mar 22 2011, 12:53)  Ровно та же ситуация и с обычной CRC. Вопрос только в относительности надёжности. В данном случае передавать адрес без всяких ЦРЦ будет намного надёжнее, чем выковыривать его косвенно при помощи дохленького ЦРЦ7. Цитата Вас кто-то ввёл в заблуждение что CRC не выявляет ошибки более 3 бит. Возвращаемся к истокам  Цитата Дано: протокольчик связи между устройствами в одномастерной сети. Некое сообщение из, допустим, 4-х байт, защищено CRC7. Поле адреса устройства считается при подсчете CRC7, но реально не передается. Принимающая сторона при приеме сообщения учитывает свой адрес при подсчете CRC, проверяя таким образом валидность. Я исходил из поставленной задачи. CRC7 не выявит больше 3 ошибочных бит на всё сообщение, это можете не сомневаться. Вообще, за это время можно уже модельку накидать. И увидеть всё наглядно.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Mar 22 2011, 10:02
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(ViKo @ Mar 22 2011, 14:56)  Я чуть выше подкорректировал свой ответ. Воды долили? Принципиально ничего не изменилось. Цитата(MrYuran @ Mar 22 2011, 14:57)  В данном случае передавать адрес без всяких ЦРЦ будет намного надёжнее, чем выковыривать его косвенно при помощи дохленького ЦРЦ7. Насколько? Без цифр пустой разговор.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 22 2011, 10:28
|

Гуру
     
Группа: Свой
Сообщений: 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 указанных мною ошибочных бит?
--------------------
Пишите в личку.
|
|
|
|
|
Mar 22 2011, 10:36
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Oldring @ Mar 22 2011, 15:28)  Для полного диапазона адресов в 128 устройств абсолютно бессмыссленное занятие. Вероятность неправильного приема не отличается от просто передачи 7 бит адреса вместо поля CRC. Кто сказал что диапазон адресов = 128? Паша вроде байт хотел сэкономить. Но вообще, прошу заметить, что идея не моя  Мне как и ТС любопытен был ответ в количественном виде.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 22 2011, 10:57
|

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

|
Цитата(GetSmart @ Mar 22 2011, 12:36)  Мне как и ТС любопытен был ответ в количественном виде. Без знания вероятности искажений одиночного бита в канале связи ответ никогда не узнать. А также - пары битов, тройки битов, четверки битов, и т.д. А что, если имеется помеха, приводящаа к полному затыку канала на весь интервал передачи? Передаем 4 байта. Один бит исказился. Сообщение ошибочное. 256 устройств высчитали CRC, добавив свой адрес. У кого-то CRC совпадет. (В-принципе, CRC не обязательно у кого-то должен совпасть, но очень вероятно. Для этого, собственно, CRC и создан. Чтобы для любых даже слабо отличающихся кодов создать сильно отличающийся результат. Поэтому, представив, что результат вычисления CRC будет иметь равномерную плотность вероятности, получить можно любой код.)
|
|
|
|
|
Mar 22 2011, 11:23
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 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 =)
|
|
|
|
|
Mar 22 2011, 11:26
|
Частый гость
 
Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986

|
Цитата(GetSmart @ Mar 22 2011, 14:36)  Мне как и ТС любопытен был ответ в количественном виде. Странно, ведь задача не поставлена - а вы хотите в цифрах ответ. Из-за этого куча шума на ветке, хотя вопрос далеко не сложный. Мало того, можно и абсолютный уровень по безопасности вывести для наиболее тяжелого условия работы канала связи (например включаем рядом дрель, усиливаем и XOR в канал). Все эти модели есть и прекрасно работают. Но для получения ответа дайте корректное условие в цифрах.
|
|
|
|
|
Apr 25 2011, 07:20
|

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

|
Цитата(MrYuran @ Mar 22 2011, 16:01)  Вот с википедии характеристика CRC8: Цитата CRC7 будет соответственно обнаруживать одинарные, двойные и тройные ошибки ВО ВСЁМ сообщении. То есть, максимально имеем 3 бита на адрес, и при этом любая дополнительная ошибка может перевести сообщение в разряд "правильных" для неправильного адреса. Если нетрудно, ткните носом, где это написано. Полазил-полазил по википедии - не нашёл. Меня заинтересовал вопрос зависимости оптимально применимой длины поля CRC от длины пакета. Т.е. для каких длин пакетов применяется CRC8, для каких CRC16 и т.д. Хотя бы "среднепотолочные" цифры, для распространённого случая. Если кто знает, пошлите, пожалуйста, по ссылке )))
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Apr 26 2011, 05:45
|
Частый гость
 
Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986

|
В свое время писал об этом. http://electronix.ru/forum/index.php?s=&am...st&p=898290ПС. Википедия не дает и не может давать глубоких ответов - только стартовую точку ...
Сообщение отредактировал i-mir - Apr 26 2011, 05:47
|
|
|
|
|
Apr 26 2011, 06:55
|

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

|
Цитата(Krys @ Apr 25 2011, 11:20)  Если нетрудно, ткните носом, где это написано. Полазил-полазил по википедии - не нашёл. Есть там. Надо развернуть "плюсики" с приведёнными примерами. Ну а если хотите серьёзно разобраться - это надо литературу читать. Я в своё время диплом писал по корректирующим кодам, больше всего пользы извлёк из 500-страничной книжки с красной обложкой, автор какой-то японец. То ли Токура, то ли что-то в этом роде... Не эта ли?Блин, а я в читальном зале часами сидел, домой не выдавали такие раритеты... Вот ещё... Ну и далее в том же духе.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Apr 26 2011, 14:10
|
Частый гость
 
Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986

|
Цитата Есть там. Надо развернуть "плюсики" с приведёнными примерами. Проблема в том, что приведенные примеры не дадут вам "динамики" работы СRC, для этого пишется свой код и проводятся испытания, порой длительные. Цитата Хотя бы "среднепотолочные" цифры, для распространённого случая. Если будет хоть немного конкретики - можно ответить на вопрос, предложить хороший полином, проанализировать помехоустойчиовсть и т.д. Что передается, в каком объеме, в каких условиях, требования к надежности/безопасности и т.д. ?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|