Теория и практика защиты программ


         

соответственно; Sn средняя сумма


где
 - частоты появления оператора с номером n в программах 1 и 2 соответственно; Sn средняя сумма частот появления операторов с номером n

в обеих программах; Dn

- разность между частотами появления оператора с номером n в программах 1 и 2.

Мера для всей последовательности операторов получается путем суммирования по всем операторам и нормировки (чтобы снять зависимость от длины программы, сумму делят на полное число операторов в обеих программах). Такая мера подобия A(1,2) для программ 1 и 2 имеет вид:

,                                                                      (10.2)

где N - число операторов в языке.

Если частота появления операторов в обеих программах одинакова, мера подобия A(1,2)=1, если операторы, присутствующие в программах, образуют пересекающие множества A(1,2)=-1. Для рассмотренных последовательностей операторов мера подобия равна A(ИПС,РТ)=-0,8. Статистическая формула для корреляции имеет вид:

,

где
,
- средние значения частот появления всех операторов в программах 1 и 2 соответственно.

Значения коэффициентов корреляции, вычисленных по формуле (10.2) всегда находятся в пределах от 0 до 1. Если программы имеют почти один и тот же вид подобия, то коэффициент корреляции близок к 1, в случае вычисления коэффициента корреляции для программ ИПС и РТ, коэффициент корреляции равен C(ИПС,РТ)=0,56.

Вклад в значение коэффициента корреляции частоты появления операторов зависит от популярности применения некоторых операторов в программах разного типа. Этот вклад приводит к большему значению коэффициента корреляции по сравнению с мерой подобия. Это означает, что пороговое значение коэффициента корреляции при оценке подобия программ должно быть увеличено или, наоборот, соответствующие измерения должны быть скорректированы на величину, учитывающую степень подобия программ.

Распределение частот появления операторов наиболее полезно при сравнении двух программ, поскольку не зависит от порядка следования программ.

Содержание  Назад  Вперед