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

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


Гуру
******

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



Цитата(_Pasha @ Feb 2 2011, 11:08) *
Поле адреса устройства считается при подсчете CRC7, но реально не передается.


Это как?


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


.
******

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



вместо
addr,byte1,byte2,byte3,byte4,crc
передаётся
byte1,byte2,byte3,byte4,crc

при сравнении на приёме вместо addr подставляется свой адрес девайса, который девайс ессно знает.


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


Гуру
******

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



Цитата(GetSmart @ Mar 22 2011, 06:42) *
вместо
addr,byte1,byte2,byte3,byte4,crc
передаётся
byte1,byte2,byte3,byte4,crc

при сравнении на приёме вместо addr подставляется свой адрес девайса, который девайс ессно знает.



Ваше объяснение ничего не объясняет. Это просто некорректная переформулировка некорректного первоначального описания.

Устройство что, на шине одно, если "адрес не передается"? Если действительно так - тогда нет никакой разницы в вероятности пропуска ошибки.


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


.
******

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



Описание вполне ясное. Все всё поняли, кроме Oldring-а sm.gif

Устройств много. А передавать адрес не обязательно, т.к. в алгоритмах девайсов с неправильным адресом CRC все-равно не совпадёт и пакет не будет "принят". Только у девайса с правильным адресом CRC совпадёт.


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


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

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



Цитата(GetSmart @ Mar 22 2011, 11:41) *
Устройств много. А передавать адрес не обязательно, т.к. в алгоритмах девайсов с неправильным адресом CRC все-равно не совпадёт и пакет не будет "принят". Только у девайса с правильным адресом CRC совпадёт.

Тогда надо значительно увеличивать кодовое расстояние.
Вот с википедии характеристика CRC8:
Цитата
MaxLen: 15 байт (127 бит) - обнаружение
одинарных, двойных, тройных и всех нечетных ошибок

CRC7 будет соответственно обнаруживать одинарные, двойные и тройные ошибки ВО ВСЁМ сообщении.
То есть, максимально имеем 3 бита на адрес, и при этом любая дополнительная ошибка может перевести сообщение в разряд "правильных" для неправильного адреса.
В общем, подход весьма скользкий.


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


.
******

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



Цитата(MrYuran @ Mar 22 2011, 14:01) *
CRC7 будет соответственно обнаруживать одинарные, двойные и тройные ошибки ВО ВСЁМ сообщении.
То есть, максимально имеем 3 бита на адрес, и при этом любая дополнительная ошибка может перевести сообщение в разряд "правильных" для неправильного адреса.
В общем, подход весьма скользкий.

Он "скользкий" так же как и сама CRC, когда незнакомый с ней человек с ней знакомится.
Там всё просчитывается. Не на супер компутере, а скорее на калькуляторе.
Непереданный байт адреса не является ошибкой. Потому как можно взять 8 бит адреса и так работать. Что уже противоречит ограничению в 3 бита.


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


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

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



Конкретные параметры топикстартер не указал, поэтому принимаю вариант предложеный GetSmart c CRC8.
Задача: сравнить вероятности необнаруживаемого искажения посылок 6 байт и 5 байт для CRC8.
Вероятность искажения одного бита в канале связи принимаем p=10-3. Тогда:
Для 48 бит p(crc8)=1.4*10-9
Для 40 бит p(crc8)=6.8*10-10
Вывод: если адрес не передавать, то надежность будет выше в два раза.
PS. Лень сейчас модельку переделать для CRC7, поэтому привожу готовое для CRC8.
Порядок цифр примерно тот-же.

Сообщение отредактировал i-mir - Mar 22 2011, 09:19
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 22 2011, 09:26
Сообщение #23


Гуру
******

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



Цитата(GetSmart @ Mar 22 2011, 11:41) *
Описание вполне ясное. Все всё поняли, кроме Oldring-а sm.gif

Устройств много. А передавать адрес не обязательно, т.к. в алгоритмах девайсов с неправильным адресом CRC все-равно не совпадёт и пакет не будет "принят". Только у девайса с правильным адресом CRC совпадёт.


Если устройств много, тогда передавать адрес как раз обязательно. Иначе устройства не поймут, к кому пакет адресован. И принимать обязательно. Но при расчете CRC в устройстве эти биты известны заранее. Дело нt в том, понял я или нет, дело в чёткости формулировок, необходимой для анализа.

Потому что если адрес передается, то ошибки в нём точно так же приводят к неправильному приёму пакета. А дальше многое зависит от количества устройств на шине и распределения их адресов. В крайнем случае 128 устройств на шине, пакеты к которым посылаются с равной вероятностью, всё сводится просто к оценке вероятности пропуска ошибки в пакете длиной 39 бит. На самом деле, не сильно выше, чем для пакета, длиной 32 бита, особенно, если ошибки приема битов в блоке могут коррелировать. Если же устройств сильно меньше 128, то дополнительным выбором хорошего распределения их адресов можно дополнительно снизить вероятность ошибочного приема адреса.


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


.
******

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



Цитата(Oldring @ Mar 22 2011, 14:26) *
...Иначе устройства не поймут, к кому пакет адресован.
...Дело на в том, понял я или нет, дело в чёткости формулировок, необходимой для анализа.

Это не верно.
Чёткая формулировка - при отсутсвии искажений в канале связи передавать адрес не обязательно. Устройства 100% поймут кому адресован пакет. CRC содержит адрес девайса точно так же как простейшая контрольная сумма например в HEX файле, если из HEX строки убрать первый байт.

При наличии ошибок вопрос стоит только в их кол-ве, при котором пакеты будут правильно приниматься. Причём относительно ситуации с присутствием адреса в пакете, то бишь классическим свойствам CRC.

Сообщение отредактировал GetSmart - Mar 22 2011, 09:38


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


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

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



Цитата(GetSmart @ Mar 22 2011, 11:38) *
Чёткая формулировка - при отсутсвии искажений в канале связи передавать адрес не обязательно. Устройства 100% поймут кому адресован пакет.

При гарантированном отсутствии помех и CRC считать смысла нет. Подал адрес, и всё!
В том-то и задача, что топикстартер хочет и от помех перестраховаться, и длину передачи уменьшить. Я так не делал бы. Чем более избыточный код, тем больше ошибок будет обнаружено.
Хотя, если проверка сводится к байту CRC, то как раз будет менее достоверной информация для более длинного пакета. Но дело в том, что искажения одного байта адреса менее вероятны, чем искажения по всей длине пакета. Поэтому вероятность ложного принятия чужого пакета будет меньше.
Что, если из-за многобитовой ошибки устройство посчитает своим пакет, предназначенный не ему?
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 22 2011, 09:48
Сообщение #26


Гуру
******

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



Цитата(GetSmart @ Mar 22 2011, 12:38) *
Это не верно.
Чёткая формулировка - при отсутсвии искажений в канале связи передавать адрес не обязательно. Устройства 100% поймут кому адресован пакет.


Тогда я вас совершенно не понимаю.
Два устройства сидят на шине. Адрес не передается. Как устройства понимают, кому адресован пакет?


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


.
******

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



Цитата(Oldring @ Mar 22 2011, 14:48) *
Как устройства понимают, кому адресован пакет?

Через (квази) обратное преобразование из CRC.

Даже ViKo всё понял и задал правильный вопрос.


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


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

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



Цитата(GetSmart @ Mar 22 2011, 12:08) *
Непереданный байт адреса не является ошибкой. Потому как можно взять 8 бит адреса и так работать. Что уже противоречит ограничению в 3 бита.

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


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


.
******

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



Цитата(ViKo @ Mar 22 2011, 14:47) *
Что, если из-за многобитовой ошибки устройство посчитает своим пакет, предназначенный не ему?

Ровно та же ситуация и с обычной CRC. Вопрос только в относительности надёжности.


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


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

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



Цитата(GetSmart @ Mar 22 2011, 11:51) *
Даже ViKo всё понял...

почему "даже"?

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

Не та же ситуация. Я чуть выше подкорректировал свой ответ. Зависит от длины сообщения.

Здесь еще важно, что опаснее - передать сообщение не тому адресату, или передать ошибочное сообщение тому, кому нужно. Первое мне видится более тяжелым. Поэтому байт адреса я оставил бы.
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:02
Рейтинг@Mail.ru


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