<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Artem Baykov</title><generator>teletype.in</generator><description><![CDATA[Artem Baykov]]></description><link>https://teletype.in/@baykart?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=baykart</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/baykart?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/baykart?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Thu, 09 Apr 2026 06:55:38 GMT</pubDate><lastBuildDate>Thu, 09 Apr 2026 06:55:38 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@baykart/W0wwZT9Qv_C</guid><link>https://teletype.in/@baykart/W0wwZT9Qv_C?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=baykart</link><comments>https://teletype.in/@baykart/W0wwZT9Qv_C?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=baykart#comments</comments><dc:creator>baykart</dc:creator><title>Как купить Velocidrone за биткоин</title><pubDate>Tue, 03 Jan 2023 20:44:38 GMT</pubDate><description><![CDATA[Периодически встречаю вопрос о том, как получить Velocidrone в РФ в условиях санкций. 
Опишу здесь путь, которым я решил этот вопрос для себя.]]></description><content:encoded><![CDATA[
  <p id="WgqZ">Периодически встречаю вопрос о том, как получить Velocidrone в РФ в условиях санкций. <br />Опишу здесь путь, которым я решил этот вопрос для себя.</p>
  <p id="9VYY">Чтобы получить Velocidrone за биткоины нужен настроенный VPN (по крайней мере для первого запуска он необходим) и свой криптокошелек. </p>
  <p id="dVn9">VPN, встроенный в браузер (плагин для браузера и тп) не подойдет. Лучше вообще поднять приватный. Стоит это удовольствие всего 200 рублей в месяц. <br />Не буду повторяться и писать как это сделать, но процесс настройки хорошо описан, например, тут: <a href="https://vdt.the23.ru/?vpn" target="_blank">https://vdt.the23.ru/?vpn</a></p>
  <p id="PeXg">Создать биткоин кошелек легче всего в приложении Bitcoin Wallet, ссылки на него в сторах тут: <a href="https://wallet.bitcoin.com/" target="_blank">https://wallet.bitcoin.com/</a><br />Получить номер своего биткоин кошелька в приложении так: &quot;Мой BTC Кошелек&quot; -&gt; &quot;Получить&quot; -&gt; &quot;Скопировать адрес&quot;.</p>
  <p id="CLF9">Два основных способа пополнения кошелька - это биржа и обменники. <br />Хоть биржа и кажется лучшим вариантом, но для перевода небольшой суммы я предпочел воспользоваться обменником (решил, что лучше потеряю пару тысяч рублей, чем солью сканы своих документов непонятно кому). </p>
  <p id="YM2D">Список обменников с отзывами можно посмотреть на сайте-агрегаторе <a href="https://www.bestchange.ru/list.html" target="_blank">https://www.bestchange.ru/list.html</a><br />Я долго не выбирал, смотрел на минимальную сумму обмена и в итоге воспользовался этим: <a href="https://onemoment.cc/" target="_blank">https://onemoment.cc/</a>. Но не агитирую пользоваться именно им. <br />И думаю, что схема обмена плюс-минус везде одинаковая: указываешь сумму перевода, номер карты откуда будешь делать перевод и своего биткоин-кошелька в ответ получаешь номер карты куда и надо сделать перевод.<br />Полагаю, что номер своей карты нужно указывать для того, чтобы обменник в автоматическом режиме смог сопоставить запрос на обмен с банковской транзакцией. Но на всякий случай я создал виртуальную карту в приложении Тинькофф специально для этого перевода, после чего сразу ее удалил.</p>
  <p id="TPwW">Тут стоит упомянуть, что Velocidrone стоит чуть меньше 20$, но фактически нужно будет заплатить на несколько долларов больше - это плата майнерам за проведение транзакции. <br />В моем случае эта &quot;комиссия&quot; составила чуть больше 2$. Об этом стоило подумать еще на этапе пополения криптокошелька, но  я продолбал этот момент и пришлось покупать биткоин еще раз, а из-за минимальной суммы обмена в обменнике я на это потратил чуть больше, чем если бы рассчитал все заранее.</p>
  <p id="LMt4">Кстати, транзакция в блокчейне занимает время, около получаса, но ее выполнение можно отследить, например, в том же приложении Bitcoin Wallet.</p>
  <p id="AJSI">С кошельком, набитым криптоденьгами, можно отправиться наконец за покупкой. Но не на <a href="https://www.velocidrone.com/" target="_blank">www.velocidrone.com</a>, а на <a href="https://www.team-blacksheep.com/simulator" target="_blank">www.team-blacksheep.com/simulator</a>. </p>
  <p id="j4lP">Именно на сайте TBS можно купить симулятор за крипту. Процесс оформления заказа описывать смысла нет, там все просто. Единственное, что можно упомянуть - это то, что для покупки нужно зарегистрировать там аккаунт, который после покупки будет перенесен на сайт <a href="https://www.velocidrone.com/" target="_blank">velocidrone.com.</a></p>
  <p id="k35X">После оформления заказа надо дождаться появления способов оплаты (почему-то они появляются на странице не сразу) и выбрать &quot;PAY VIA CRYPTO&quot;. После выбора валюты оплаты (в нашем случае биткоин) должен появиться qr-код, который сканируется через приложение Bitcoin Wallet (&quot;Мой BTC Кошелек&quot; -&gt; &quot;Отправить&quot; -&gt; &quot;Сканировать QR-код&quot;). </p>
  <p id="rd5s">После завершения оплаты надо включить VPN, перейти на <a href="https://www.velocidrone.com/account/my_licenses" target="_blank">https://www.velocidrone.com/account/my_licenses</a> (надо войти под той же учетной записью, которая была зарегестрирована ранее на <a href="https://www.team-blacksheep.com/simulator" target="_blank">www.team-blacksheep.com</a>) и скачать оттуда симулятор.<br />После установки симулятора на компьютер надо запустить его не выключая VPN (vpn необходим по крайней мере при первом запуске), и используя все ту же учетку завершить регистрацию приложения.</p>
  <p id="MoZl">Все, на этом процесс получения velocidrone завершен. <br />К сожалению, описанный выше способ можно использовать для получения только самого симулятора, дополнения к нему в настоящий момент нельзя купить через <a href="https://www.team-blacksheep.com/simulator" target="_blank">www.team-blacksheep.com</a> за криптовалюту.</p>
  <p id="4rJ3">(<em>Информация в тексте не является индивидуальной инвестиционной рекомендацией. Решение об использовании биткоина и любых других финансовых инструментов пользователь принимает самостоятельно.</em>)</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@baykart/z33GiRtLMBT</guid><link>https://teletype.in/@baykart/z33GiRtLMBT?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=baykart</link><comments>https://teletype.in/@baykart/z33GiRtLMBT?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=baykart#comments</comments><dc:creator>baykart</dc:creator><title>Почему работает автокорреляционный метод в криптоанализе</title><pubDate>Wed, 15 Dec 2021 10:42:19 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/83/8f/838f9e2c-55d0-45e2-abd6-55f26677d38d.jpeg"></media:content><tt:hashtag>шифр</tt:hashtag><tt:hashtag>шифр_виженера</tt:hashtag><tt:hashtag>метод_фридмана</tt:hashtag><tt:hashtag>криптоанализ</tt:hashtag><tt:hashtag>криптография</tt:hashtag><tt:hashtag>xor</tt:hashtag><tt:hashtag>xor_шифрование</tt:hashtag><description><![CDATA[Метод, предложенный Уильямом Фридманом, известен и пременяется для криптоанализа шифра Виженера уже более ста лет.
Но по какой-то причине сложно найти простое обьяснение работы этого метода с парой примеров &quot;на пальцах&quot;.]]></description><content:encoded><![CDATA[
  <p id="rGdj"><a href="https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81_%D1%81%D0%BE%D0%B2%D0%BF%D0%B0%D0%B4%D0%B5%D0%BD%D0%B8%D0%B9" target="_blank">Метод, предложенный Уильямом Фридманом</a>, известен и пременяется для криптоанализа <a href="https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80_%D0%92%D0%B8%D0%B6%D0%B5%D0%BD%D0%B5%D1%80%D0%B0" target="_blank">шифра Виженера</a> уже более ста лет.<br />Но по какой-то причине сложно найти простое обьяснение работы этого метода с парой примеров &quot;на пальцах&quot;.</p>
  <p id="eSL1">Кстати, надо сказать, что описанный выше <a href="https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80_%D0%92%D0%B8%D0%B6%D0%B5%D0%BD%D0%B5%D1%80%D0%B0" target="_blank">автокорреляционный метод</a> применим в целом к <a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%B8%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D0%BD%D1%8B%D0%B9_%D1%88%D0%B8%D1%84%D1%80" target="_blank">полиалфовитным шифрам</a>, а не только к шифру Виженера. <br />Более того, особый интерес с этой точки зрения представляет шифрование операцией XOR с ключом ограниченного размера (циклически повторяющемся для соответствия длине открытого текста).</p>
  <h1 id="Hu5j">Итак, почему же работает метод Фридмана?</h1>
  <p id="8Hwk">Алгоритм нахождения длины ключа шифрования этим способом заключается в поочередном сравнении зашифрованной строки со строками, полученными из нее же сдвигом на 1, 2, 3...n символов вправо. Длина ключа будет равна сдвигу, на котором индекс совпадений (обратнопропорциональный <a href="https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81_%D1%81%D0%BE%D0%B2%D0%BF%D0%B0%D0%B4%D0%B5%D0%BD%D0%B8%D0%B9" target="_blank">расстоянию Хэмминга</a>) будет близок к известному среднему его значению для используемого языка.</p>
  <p id="bi75">Это объясняется парой моментов:</p>
  <p id="zyFb"><strong>1. Если шифротекст разделить на блоки, длина которых будет кратна длине ключа шифрования, и сравнить их попарно между собой, то количество совпадающих между ними символов будет таким же, как если бы сравнивались те же самые блоки, но из открытого текста. </strong></p>
  <p id="BIUY">Потому что символы, находящиеся на одной и той же позиции в этих блоках шифруются одним и тем же символом ключа шифрования.<br />Сравнение блоков шифротекста любой другой длины ближе к сравнению двух случайных наборов символов.</p>
  <p id="eRRL"><strong>2. При сравнении двух осмысленных строк (а в нашем случае строки и ее копии, сдвинутой на несколько символов) количество совпадающих символов будет больше, чем при сравнении двух строк, состоящих из просто случайных символов. </strong></p>
  <p id="Cog5">Так происходит из-за того, что некоторые буквы встречаются в словах чаще, чем другие. Этот перевес в сторону части алфавита и приводит к аномалиям при сравнении реальных тестов.<br /><br />Как раз это мне не кажется интуитивно понятным, но это очень легко объяснить. <br />Для простоты представим, что существует язык, алфавит которого состоит всего из двух букв: А и Б. </p>
  <p id="nYOv">Случайно сгенерированная строка в этом языке будет содержать примерно одинаковое количество обеих букв алфавита. <br />Тогда вероятность того, что при сравнении ее с другой случайной строкой, два символа на какой-то определенной позиции будут совпадать, составляет интуитивно понятные 50%.</p>
  <p id="v4j0">Теперь представим, что в &quot;реальных&quot; текстах этого выдуманного языка буква А встречается в 9 раз чаще, чем буква Б.<br />Так же интуитивно понятно, что две строки, соответствующие такой пропорции (почти полностью состоящие из одной буквы) будут иметь в среднем больше совпадающих символов, чем две случайные строки. </p>
  <p id="FsOl">Если же взять больший по размеру алфавит, но представить, что он используется в языке, слова которого все так же на 90% состоят из одной буквы, то разница в индексе совпадений между реальными текстами и случайными строками будет еще больше.<br /><br />В существующих языках из-за меньшего разброса частот появления разных букв в словах, конечно, такие корреляции будут намного реже. Но количество совпадений между осмысленными текстами и случайными строками все равно будет отличаться.</p>
  <h1 id="lG7b">XOR вместо таблицы Виженера</h1>
  <p id="avNE">Автокорреляционный метод, очевидно, одинаково применим не только к шифру Виженера, но и к другим полиалфавитным шифрам.</p>
  <p id="BXU3">Но если зашифрованное сообщение получено операцией XOR между символами ключа и исходного текста, то в некоторых случаях для поиска длины ключа эффективнее будет использовать бинарное представление шифротекста вместо явного посимвольного сравнения.</p>
  <p id="Z2Cq">Этому способствует совокупность 3 фактов:</p>
  <p id="gpcg"><strong>1. Поиск несовпадающих битов можно свести так же к операции исключающего ИЛИ между двумя сравниваемыми подстроками и последующим подсчетом разрядов результата, равных единице.</strong></p>
  <p id="IUaV"><strong>2. Если над зашифрованной строкой и ее копией, циклически сдвинутой на N символов, выполнить операцию побитового исключающего &quot;ИЛИ&quot;, то количество переменных, влияющих на результат будет зависеть от того, кратно ли N длине ключа шифрования. </strong></p>
  <p id="IiWc">И вот почему:<br />Так как каждый бит шифротекста в процессе шифрования и сам был получен XOR-ом над определенными разрядами открытого текста и ключа, в операции фактически участвуют четыре значения: два бита открытого текста (из оригинальной и сдвинутой строки: P1, P2) и два соответствующих им бита ключа (K1, K2):</p>
  <pre id="OSCq">(i-ый бит символа шифротекста) XOR ((i+N)-ый бит символа шифротекста) = 
(P1 XOR K1) XOR (P2 XOR K2)</pre>
  <p id="xmct">Это в общем случае. Но если N кратен длине ключа шифрования, то символы из двух рассматриваемых строк были получены шифрованием одним и тем же символом ключа (K). <br />А это значит, что в силу самообратимости и идемпотентности исключающего &quot;ИЛИ&quot;, ключ в этом случае вообще перестает влиять на конечный результат:</p>
  <pre id="rlBP">(P1 XOR K) XOR (P2 XOR K) = 
(P1 XOR P2) XOR (K XOR K) = 
(P1 XOR P2)</pre>
  <p id="fCHs">Поэтому для сдвигов шифротекста, кратных длине ключа, каждый разряд результата будет зависеть от двух битов, а для не кратных - от четырех.</p>
  <p id="znjv"><strong>3. В некоторых случаях вероятность получить 1 в результате XOR-a с 4-мя операндами больше, чем с 2-мя. Это проще объяснить на монетке. </strong></p>
  <p id="YSwb">Допустим, есть монета, которая чаще падает орлом вверх. Если подбросить такую монету четное количество раз, то, вероятнее всего, &quot;орел&quot; выпадет тоже в четном количестве случаев. <br />Все потому, что вообще наиболее ожидаемый результат нескольких бросков такой монетки - &quot;все орлы&quot;. </p>
  <p id="ul2U">И именно из-за этой комбинации происходит &quot;перекос&quot; вероятности в сторону четного количества выпавших орлов при четном количестве бросков. Но с увеличением количества бросков падает вероятность того, что не выпадет ни одной решки. </p>
  <p id="aExu">То есть выкинуть 4-ех орлов подряд сложнее, чем 2-ух. И, следовательно, вероятность выпадения нечетного количества орлов в случае 4-ех бросков хоть и меньше 50%, но больше, чем в случае 2-ух.</p>
  <p id="0kIS">Немного цифр для наглядности:</p>
  <pre id="vqkP" data-lang="markdown">| Комбинация 2 битов                                     | Частота (при вероятности единицы 90%) | Частота (при вероятности единицы 60%) |
|--------------------------------------------------------|---------------------------------------|---------------------------------------|
| 00                                                     | 0.01                                  | 0.16                                  |
| 11                                                     | 0.81                                  | 0.36                                  |
| Любая комбинация с четным количеством нулей и единиц   | 0.82                                  | 0.52                                  |
| 01                                                     | 0.09                                  | 0.24                                  |
| 10                                                     | 0.09                                  | 0.24                                  |
| Любая комбинация с нечетным количеством нулей и единиц | 0.18                                  | 0.48                                  |</pre>
  <p id="ln7X"></p>
  <pre id="k2p0" data-lang="markdown">| Комбинация 4 битов                                     | Частота (при вероятности единицы 90%) | Частота (при вероятности единицы 60%) |
|--------------------------------------------------------|---------------------------------------|---------------------------------------|
| 0000                                                   | 0.0001                                | 0.0256                                |
| 0011                                                   | 0.0081                                | 0.0576                                |
| 0101                                                   | 0.0081                                | 0.0576                                |
| 0110                                                   | 0.0081                                | 0.0576                                |
| 1001                                                   | 0.0081                                | 0.0576                                |
| 1010                                                   | 0.0081                                | 0.0576                                |
| 1100                                                   | 0.0081                                | 0.0576                                |
| 1111                                                   | 0.6561                                | 0.1296                                | 
| Любая комбинация с четным количеством нулей и единиц   | 0.7048                                | 0.5008                                |
| 0001                                                   | 0.0009                                | 0.0384                                |
| 0010                                                   | 0.0009                                | 0.0384                                |
| 0100                                                   | 0.0009                                | 0.0384                                |
| 1000                                                   | 0.0009                                | 0.0384                                |
| 0111                                                   | 0.0729                                | 0.0864                                |
| 1011                                                   | 0.0729                                | 0.0864                                |
| 1101                                                   | 0.0729                                | 0.0864                                |
| 1110                                                   | 0.0729                                | 0.0864                                | 
| Любая комбинация с нечетным количеством нулей и единиц | 0.2952                                | 0.4992                                |</pre>
  <p id="7wC2" data-align="center">* * * </p>
  <p id="eL7z">Таким образом эффективность этого способа зависит от бинарного представления символов алфавита, используемого в исходном открытом тексте. А точнее от наличия &quot;перекоса&quot; в распределении вероятностей появления 0 или 1 на определенной позиции в двоичном представлении символов алфавита. </p>
  <p id="YaKr">Для примера рассмотрим представление букв латинского алфавита в ASCII-кодировке:</p>
  <pre id="4bRT" data-lang="markdown">| Символ | Двоичное представление | Символ | Двоичное представление |
|--------|------------------------|--------|------------------------|
| A      | 01000001               | a      | 01100001               |
| B      | 01000010               | b      | 01100010               |
| C      | 01000011               | c      | 01100011               |
| D      | 01000100               | d      | 01100100               |
| E      | 01000101               | e      | 01100101               |
| F      | 01000110               | f      | 01100110               |
| G      | 01000111               | g      | 01100111               |
| H      | 01001000               | h      | 01101000               |
| I      | 01001001               | i      | 01101001               |
| J      | 01001010               | j      | 01101010               |
| K      | 01001011               | k      | 01101011               |
| L      | 01001100               | l      | 01101100               |
| M      | 01001101               | m      | 01101101               |
| N      | 01001110               | n      | 01101110               |
| O      | 01001111               | o      | 01101111               |
| P      | 01010000               | p      | 01110000               |
| Q      | 01010001               | q      | 01110001               |
| R      | 01010010               | r      | 01110010               |
| S      | 01010011               | s      | 01110011               |
| T      | 01010100               | t      | 01110100               |
| U      | 01010101               | u      | 01110101               |
| V      | 01010110               | v      | 01110110               |
| W      | 01010111               | w      | 01110111               |
| X      | 01011000               | x      | 01111000               |
| Y      | 01011001               | y      | 01111001               |
| Z      | 01011010               | z      | 01111010               |</pre>
  <p id="3Zyn">Видно, что два старших бита одинаковы для всех букв в обоих регистрах и результат XOR-a по ним всегда будет равен 0, поэтому их можно сразу выбросить из рассмотрения. </p>
  <p id="1olC">Для всех остальных разрядов вероятности появления единицы/нуля будут примерно такими:</p>
  <pre id="ZIfk" data-lang="markdown">| Разряд        | 5   | 4    | 3    | 2    | 1   | 0   |
|---------------|-----|------|------|------|-----|-----|
| Вероятность 1 | 0.5 | 0.42 | 0.42 | 0.46 | 0.5 | 0.5 |
| Вероятность 0 | 0.5 | 0.58 | 0.58 | 0.54 | 0.5 | 0.5 |</pre>
  <p id="O4Ir">Вероятность появления единицы в 2, 3 и 4 разрядах каждого символа ниже, чем вероятность появления нуля. А это как раз тот случай, который попадает по условие 3-го пункта выше. </p>
  <p id="PngD">Так что даже если исходный текст до шифрования представлял собой строку из случайных букв в ASCII-кодировке, все равно есть вероятность найти длину ключа через работу с битовым представлением шифротекста.</p>
  <tt-tags id="iTK1">
    <tt-tag name="шифр">#шифр</tt-tag>
    <tt-tag name="шифр_виженера">#шифр_виженера</tt-tag>
    <tt-tag name="метод_фридмана">#метод_фридмана</tt-tag>
    <tt-tag name="криптоанализ">#криптоанализ</tt-tag>
    <tt-tag name="криптография">#криптография</tt-tag>
    <tt-tag name="xor">#xor</tt-tag>
    <tt-tag name="xor_шифрование">#xor_шифрование</tt-tag>
  </tt-tags>

]]></content:encoded></item></channel></rss>