ПРИЛОЖЕНИЕ Г
(обязательное)
Генерация случайных чисел для идентификации
Цель состоит в том, чтобы добавлять 64-битное случайное число в процессе обмена дистанционного программирования, чтобы обеспечить дуплексную идентификацию.
Решением этой проблемы является относительно простой метод, основанный на сдвиге, за которым следует сложение (по модулю 2) последовательностей правильно инициализируемых битов.
Принцип
64-битный регистр R1 содержит коэффициенты предполагаемого полиноминального генератора 63-го порядка (по модулю 2), который генерирует последовательность максимальной длины (), объединяя ее с 64-битным словом следующим образом.
R0 содержит инициализированное значение, которое должно быть различно от одного устройства к другому и по возможности засекречено. Ключ рассматриваемого устройства - это и есть значение, которое удовлетворяет этому критерию. Это значение затем складывается (по модулю 2) с двумя индексами, полная длина которых составляет 64-битное слово. Эти слова выбираются из удаленных удобочитаемых индексов, которые должны, вероятно, подвергнуться наибольшему отклонению между двумя случаями дистанционного программирования.
64-битное число, помещенное в R2, объединяется функцией f со словом, содержащим коэффициенты выбранного полиномиального генератора (R1).
Если наиболее значимый бит R2 равен 1, тогда:
R2 сдвигается на 1 бит влево и складывается (по модулю 2) с R1
(R2 = R1 + R2).
В противном случае R2 сдвигается на 1 бит влево.
Таким образом мы получаем первое случайное число NA(1), используемое устройством в структуре Р2 первого обмена дистанционного программирования; последующие случайные числа NA(i) получаются в соответствии с той же самой процедурой посредством замены инициализированного значения предварительно рассчитанным числом NA (i-1):
= 1:NA(1) = f ((К + (INDEX1, INDEX2)), R1);
> 1:NA(i) = f((NA(i-1) + (INDEX1, INDEX2)), R1)
Значение полиномиального генератора или в шестнадцатеричном коде 80 00 00 00 00 00 00 03 (Н)
Блок-схема