diff options
Diffstat (limited to 'help/ru/manager/keygen/algorithms.htm')
-rw-r--r-- | help/ru/manager/keygen/algorithms.htm | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/help/ru/manager/keygen/algorithms.htm b/help/ru/manager/keygen/algorithms.htm new file mode 100644 index 0000000..05b9bc3 --- /dev/null +++ b/help/ru/manager/keygen/algorithms.htm @@ -0,0 +1,79 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <link rel="Stylesheet" type="text/css" href= + "../../default.css" /> + <meta http-equiv="Content-Type" content= + "text/html; charset=utf-8" /> + + <title>Алгоритмы шифрования серийных номеров</title> + <style type="text/css"> + </style> +</head> + +<body> + <h1>Алгоритмы шифрования серийных номеров</h1> + + <p>Надежность ключей системы лицензирования основывается на + применении асимметричных алгоритмов шифрования. В текущей версии + реализован алгоритм RSA с длиной ключа от 1024 до 16384 бит. В + будущих версиях планируется добавление других алгоритмов, + основанных на ECC, а также схем, совмещающих симметричные и + асимметричные шифры.</p> + + <p>Используемый алгоритм уникален для каждого продукта. Ключи, + созданные с одним алгоритмом, не подойдут к другому, поэтому + смена алгоритмов после создания хоть одной лицензии не + допускается. Модуль защиты, располагающийся в защищаемой + программе, "знает" каким алгоритмом должен быть зашифрован + серийный номер и не примет ключ, созданный другим алгоритмом или + тем же алгоритмом, но с другими параметрами (скажем, с другой + длиной ключа).</p> + + <h3>Алгоритм RSA</h3> + + <p>Шифрование серийного номера алгоритмом RSA происходит по + следующей схеме:</p> + + <ul> + <li><strong>Добавление случайных данных в начало + номера</strong> - метод основывается на RFC2313, однако + реализация немного отличается от описаной там. В начало + серийного номера добавляютя байты: 00 02 NN...NN 00, где NN..NN + - от 8 до 16 случайных ненулевых байт. Количество байт + выбирается случайным, однако принимается во внимание длина + серийного номера и максимальная вместительность ключа.</li> + + <li><strong>Добавление случайных данных в конец номера</strong> + - окончательное количество байт в серийном номере должно + равняться количеству бит в ключах алгоритма, деленному на 8. + Серийный номер дополняется до этого числа байт случайными + данными. В результате получается следующий формат серийного + номера: 00 02 NN..NN 00 DD..DD MM..MM, где NN - набор случайных + ненулевых байтов, DD - исходный серийный номер, MM -набор + случайных байтов (в т.ч. и нулевых). Суммарная длина + последовательности должна равняться количеству бит, + применяемому в алгоритме, деленному на 8.</li> + + <li><strong>Шифрование</strong> - производится по стандатной + схеме, реализованной во многих библиотеках, работающих с + большими числами. Генератор на PHP содержит всю необходимую + информацию в открытом виде.</li> + + <li><strong>Упаковка</strong> - полученный после шифрования + набор байт кодируется в base-64 - это и есть серийный номер, + который отправляется покупателю.</li> + </ul><br /> + <br /> + <br /> + <br /> + <br /> + <hr noshade="noshade" size="1" /> + + <div align="center"> + © 2006-2015 Copyright VMProtect Software + </div> +</body> +</html> |