mirror of
				https://github.com/Obfuscator-Collections/VMProtect.git
				synced 2025-10-30 19:41:31 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			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>
 |