<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Каталог статей</title>
		<link>https://www.rudoysecurity.org/publ/</link>
		<description>Каталог статей</description>
		<lastBuildDate>Thu, 12 Feb 2026 23:57:54 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://www.rudoysecurity.org/publ/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Типичные ошибки реализации XOR-шифрования (гаммирования) и одноразового блокнота в Delphi</title>
			<description>&lt;h1&gt;Типичные ошибки реализации XOR-шифрования (гаммирования) и одноразового блокнота в Delphi: фундаментальная путаница между текстовыми и бинарными данными&lt;/h1&gt;

&lt;h2&gt;Введение&lt;/h2&gt;

&lt;p&gt;В криптографических реализациях на Delphi, особенно при работе с XOR-шифрованием и одноразовым блокнотом, программисты часто допускают систематические ошибки, коренящиеся в непонимании фундаментального различия между текстовыми (&lt;code&gt;String&lt;/code&gt;) и бинарными (&lt;code&gt;TBytes&lt;/code&gt;) данными и их представлениями в бинарных строк (Binary string). Это исследование анализирует типичные ошибки, их причины, последствия и предоставляет практические рекомендации для корректной реализации&amp;nbsp;.&lt;/p&gt;

&lt;h2&gt;1. Криптографические основы: XOR-шифрование и одноразовый блокнот&lt;/h2&gt;

&lt;h3&gt;1.1 XOR-шифрование&lt;/h3&gt;

&lt;p&gt;XOR-шифрование &amp;mdash; это аддитивный шифр, использующий операцию исключающего ИЛИ (XOR) между открытым текстом и ключом. Алгоритм основан на свойствах операции XOR: A&amp;oplus;0=A, A&amp;oplus;A=0, A&amp;oplus;B=B&amp;oplus;A, (A&amp;oplus;B)&amp;oplus;C=A&amp;oplus;(B&amp;oplus;C). При использовании повторяющегося ключа этот метод уязвим для частотного анализа, но с полностью случайным ключом, равным по длине сообщению и использованным однократно, он превращается в теоретически невзламываемый одноразовый блокнот&amp;nbsp;.&lt;/p&gt;

&lt;h3&gt;1.2 Одноразовый блокнот (OTP)&lt;/h3&gt;

&lt;p&gt;Одноразовый блокнот &amp;mdash; это криптографический метод, обеспечивающий абсолютную секретность при соблюдении четырёх условий:&lt;/p&gt;

&lt;ol&gt;
 &lt;li data-shift=&quot;1&quot; data-value=&quot;1.&quot;&gt;
 &lt;p&gt;Ключ должен быть не короче открытого текста&lt;/p&gt;
 &lt;/li&gt;
 &lt;li data-shift=&quot;1&quot; data-value=&quot;2.&quot;&gt;
 &lt;p&gt;Ключ должен быть действительно случайным (truly random)&lt;/p&gt;
 &lt;/li&gt;
 &lt;li data-shift=&quot;1&quot; data-value=&quot;3.&quot;&gt;
 &lt;p&gt;Ключ никогда не должен повторно использоваться (даже частично)&lt;/p&gt;
 &lt;/li&gt;
 &lt;li data-shift=&quot;1&quot; data-value=&quot;4.&quot;&gt;
 &lt;p&gt;Ключ должен оставаться полностью секретным для всех, кроме законных участников обмена&lt;/p&gt;
 &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Нарушение любого из этих условий делает систему уязвимой. Математически доказано, что при соблюдении всех условий OTP обеспечивает совершенную секретность&amp;nbsp;.&lt;/p&gt;

&lt;h2&gt;2. Типы данных в Delphi: фундаментальное различие&lt;/h2&gt;

&lt;h3&gt;2.1 String (UnicodeString в современных версиях)&lt;/h3&gt;

&lt;p&gt;В Delphi 2009 и выше тип&amp;nbsp;&lt;code&gt;String&lt;/code&gt;&amp;nbsp;представляет собой&amp;nbsp;&lt;code&gt;UnicodeString&lt;/code&gt;&amp;nbsp;с кодировкой UTF-16. Каждый символ занимает 2 байта (16 бит), что обеспечивает поддержку всех языков мира, включая кириллицу. Однако это текстовый тип, предназначенный для хранения символов, а не произвольных бинарных данных. Путаницу дополнительно вносят руководящие документы, спецификации, стандарты по алгоритмам шифрования - &lt;strong&gt;в криптографии под понятием &quot;строка&quot; понимается Binary string&lt;/strong&gt; (символьное представление массива байтов в виде 1 и 0), а в языках программирования&amp;nbsp; String - буквально &quot;строка&quot; - текстовая строка символов.&lt;/p&gt;</description>
			
			<link>https://www.rudoysecurity.org/publ/stati_administratora/tipichnye_oshibki_realizacii_xor_shifrovanija_gammirovanija_i_odnorazovogo_bloknota_v_delphi/1-1-0-6</link>
			<category>Статьи администратора</category><dc:creator>Rudoysecurity</dc:creator>
			<guid>https://www.rudoysecurity.org/publ/stati_administratora/tipichnye_oshibki_realizacii_xor_shifrovanija_gammirovanija_i_odnorazovogo_bloknota_v_delphi/1-1-0-6</guid>
			<pubDate>Thu, 12 Feb 2026 23:57:54 GMT</pubDate>
		</item>
		<item>
			<title>Использование DCOM для СЗИ от НСД к информации</title>
			<description>&lt;DIV&gt;В&amp;nbsp;фирмах с ограниченным бюджетом IT-отделов (например, малый бизнес или муниципаньные структуры провинциальных городов), программистам приходится одновременно решать вопросы целого ряда проблем. Работадатель не понимает, что программисты делятся на системных и прикладных, веб- , разработчиков, проектировщиков структуры хранения данных, внедренцев готовых решений&amp;nbsp;и т.д.. Приходится часто быть, в лучшем случае, &quot;два-в-одном&quot;. &lt;/DIV&gt;
&lt;DIV&gt;Далее приводится статья, в которой рассказывается, как с использованием Интегрированных сред разработки (типа Borland Delphi или Microsoft Visual) внедрить в имеющиеся прикладные программы (независимо от того, на каком языке они написаны)&amp;nbsp;систему защиты информации от несанкционированного доступа с помощью технологии динамической&amp;nbsp;распределенной компонентной модели объектов на основе DСОМ-сервера.&amp;nbsp;&lt;/DIV&gt;</description>
			
			<link>https://www.rudoysecurity.org/publ/stati_administratora/ispolzovanie_dcom_dlja_szi_ot_nsd_k_informacii/1-1-0-4</link>
			<category>Статьи администратора</category><dc:creator>Rudoysecurity</dc:creator>
			<guid>https://www.rudoysecurity.org/publ/stati_administratora/ispolzovanie_dcom_dlja_szi_ot_nsd_k_informacii/1-1-0-4</guid>
			<pubDate>Mon, 18 Jul 2011 12:25:11 GMT</pubDate>
		</item>
		<item>
			<title>Если есть сайт, нужны клиенты</title>
			<description>&lt;DIV align=center&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: #ff0000&quot;&gt;Если есть сайт, нужны клиенты!!!&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV align=center&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: #ff0000&quot;&gt;Начните раскрутку с регистрации в каталогах и контекстной рекламы!&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;</description>
			
			<link>https://www.rudoysecurity.org/publ/stati_administratora/esli_sajt_nuzhny_klienty/1-1-0-3</link>
			<category>Статьи администратора</category><dc:creator>Rudoysecurity</dc:creator>
			<guid>https://www.rudoysecurity.org/publ/stati_administratora/esli_sajt_nuzhny_klienty/1-1-0-3</guid>
			<pubDate>Wed, 02 Jun 2010 05:23:46 GMT</pubDate>
		</item>
		<item>
			<title>Зачем нужна регистрация в каталогах через 1PS.RU</title>
			<description>&lt;P&gt;Регистрация в каталогах&lt;/P&gt;</description>
			
			<link>https://www.rudoysecurity.org/publ/stati_administratora/zachem_nuzhna_registracija_v_katalogakh_cherez_1ps_ru/1-1-0-2</link>
			<category>Статьи администратора</category><dc:creator>Rudoysecurity</dc:creator>
			<guid>https://www.rudoysecurity.org/publ/stati_administratora/zachem_nuzhna_registracija_v_katalogakh_cherez_1ps_ru/1-1-0-2</guid>
			<pubDate>Wed, 02 Jun 2010 05:21:35 GMT</pubDate>
		</item>
		<item>
			<title>ЭЦП в документах Microsoft Office</title>
			<description>&lt;P&gt;&lt;SPAN style=&quot;COLOR: #006400&quot;&gt;&lt;STRONG&gt;Использование цифровых подписей в документах Microsoft Office&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
			
			<link>https://www.rudoysecurity.org/publ/stati_administratora/digitalidmso_statja/1-1-0-1</link>
			<category>Статьи администратора</category><dc:creator>Andrey Rudoy</dc:creator>
			<guid>https://www.rudoysecurity.org/publ/stati_administratora/digitalidmso_statja/1-1-0-1</guid>
			<pubDate>Sun, 20 Sep 2009 06:53:59 GMT</pubDate>
		</item>
	</channel>
</rss>