Как было сказано, шифрование состоит из двух взаимно обратных процессов: зашифрование и расшифрование. Оба этих процесса на абстрактном уровне представимы математическими функциями, к которым предъявляются определенные требования. Математически, данные, используемые в шифровании, представимы в виде множеств над которыми построены данные функции. Иными словами, пусть существуют два множества, представляющее данные — M, и C; и каждая из двух функций(шифрующая и расшифровывающая) является отображением одного из этих множеств в другое.
Элементы этих множеств — и являются аргументами соответствующих функций. Так же, в эти функции уже включено понятие ключа. То есть тот необходимый ключ для шифрования или расшифрования является частью функции. Это позволяет рассматривать процессы шифрования абстрактно, вне зависимости от структуры используемых ключей. Хотя, в общем случае, для каждой из этих функций аргументами являются данные и вводимый ключ.
Если для шифрования и расшифрования используется один и тот же ключ K=K1=K2, то такой алгоритм относят к симметричным. Если же из ключа шифрования алгоритмически сложно получить ключ расшифрования, то алгоритм относят к асимметричным, то есть к алгоритмам с открытым ключом.
|
|