VMProtect/help/ru/manager/keygen/algorithms.htm
VNGhostMans 5ec92ee05e first commit
Version 3.x.x
2023-05-14 20:21:09 +07:00

80 lines
4.6 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>