Вычисление коэффициента корреляции между двумя файлами - шестнадцатеричное значение гистограммы
Я новый студент CS, и мой учитель попросил нас взять 2 текстовых файла и сравнить их шестнадцатеричные значения. Содержимое каждого файла - "abcde ... XYZ" и "accde ... XYZ" соответственно. Я получил процентное значение вхождения каждого символа в таблицу Excel, теперь мне нужно знать, что он имеет в виду под "Рассчитать коэффициент корреляции" между этими двумя файлами.
Если вам нужно больше, чтобы понять мой вопрос, не стесняйтесь спрашивать.
1 ответ
Гистограмма - это графическое представление распределения.
[Дискретное] распределение - это упорядоченная серия подсчета количества выборок определенного значения или, в случае распределения вероятности, значений вероятности: вероятность того, что выборка, выбранная случайным образом, будет иметь это конкретное значение.
Сначала вам нужно создать два бинарных файла, применив к ним одну и ту же цепочку криптографического шифрования, точно так, как описано в задании. Само по себе это выглядит довольно практично для этих криптографических алгоритмов и различных режимов блочного шифрования (ECB, CBC и т. Д.).
Затем для каждого файла нужно подсчитать число каждого инвидуального шестнадцатеричного значения, предоставив вам массив от 0 до 255 (или говоря "шестнадцатеричный" от $00 до $FF), содержащий счет для каждого соответствующего двоичного октета, найденного в файле. Обратите внимание, что число ячеек (также называемых "ячейками" в гистограмме lingo) в массиве точно равно 256, при этом значение ячейки равно 0, если в файле не было найдено ни одного байта с соответствующим шестнадцатеричным значением.
Эти массивы представляют собой дискретное распределение шестнадцатеричных значений, найденных в каждом файле; обычнонормализуют эти массивы, типичный подход заключается в создании другого массива того же размера (здесь 256 ячеек), но содержащего реальные значения, где каждое значение является отношением количества выборок для этой ячейки и общего количества выборок. Таким образом, такой массив содержит * распределение вероятностей шестнадцатеричных значений, найденных в файле * (хотя это и является предпочтительным распределением, мы часто говорим о них как о "распределении", а не о распределении "вероятности") (также... некоторые педантичные типы могут насмехаться над этими вероятностями, но давайте не будем путать вещи на этом этапе...).
Затем я предлагаю вам отобразить эти распределения в типичном формате гистограммы / гистограммы, и это само по себе даст вам визуальное представление о том, насколько похожи эти два распределения. Я сомневаюсь, чтобы испортить удовольствие от открытия, но я могу намекнуть, что вы не должны разочаровываться, если эти два графика действительно различны.)
Последним шагом будет вычисление формального значения корреляции для этих двух распределений, то есть единственное значение, "суммирующее", насколько эти два схожи. Вот где я не могу дать вам полную информацию о вашем задании, отчасти потому, что стесняюсь предложить конкретную функцию корреляции; Есть несколько для этой цели; Обратитесь к вашему инструктору или ТА за предложениями.
Бонус / в шутку, вы можете вычислять и отображать одинаковые распределения, гистограммы и коэффициент корреляции для незашифрованных файлов (очевидно, здесь вы ожидаете, что они будут очень похожи).