Какими способами можно скремблировать матрицу на основе 256-битного ключа? - PullRequest
0 голосов
/ 04 сентября 2018

Нужно построить алгоритм, который скремблирует матрицу на основе 256-битного ключа. Учитывая две m * n матрицы A и B и ключ K, я бы хотел, чтобы A и B были скремблированы одинаково. Так неофициально, если A == B, скремблировать (A, K) == скремблировать (B, K).

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

Чтобы уточнить, главная цель скремблирования состоит в том, чтобы запутать содержимое матрицы, в то же время позволяя проводить сравнения.

1 Ответ

0 голосов
/ 04 сентября 2018

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

Если вы хотите добавить в это секретный ключ, вы можете объединить данные изображения и ключ и вычислить хеш по этому. С теми же данными и ключом вы получите то же самое значение хеш-функции, и если вы измените либо, значение хеш-функции изменится.

(почти уникально: по принципу «голубиных отверстий», превращая большой вход в меньшее хеш-значение, должно быть несколько входов, которые генерируют одно и то же значение хеш-функции. На практике это редко вызывает беспокойство)

...