mirror of
https://github.com/Obfuscator-Collections/VMProtect.git
synced 2024-12-26 16:29:34 +03:00
5ec92ee05e
Version 3.x.x
80 lines
4.6 KiB
HTML
80 lines
4.6 KiB
HTML
<!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>
|