01 Августа 2022

Pollard's Kangaroo находим решения дискретного логарифма secp256k1 PRIVATE KEY + NONCES в известном диапазоне

В этой статье мы рассмотрим самый быстрый алгоритм для ECDLP из области вычислительной теории чисел, кенгуру Полларда также называют алгоритм лямбды Полларда.

Метод кенгуру Полларда вычисляет дискретные логарифмы в произвольных циклических группах. Он применяется, если известно, что дискретный логарифм лежит в определенном диапазоне, скажем [ a , b ], а затем имеет ожидаемое время выполнения групповой операции.

Преимущество Pollard's Kangaroo:

использует очень мало памяти

можно распараллелить с линейным ускорением

можно эффективно отслеживать требования к объему памяти

Все это делает метод кенгуру самым мощным методом решения задачи дискретного логарифмирования.

Один из способов сломать схемы подписи ECDSA — это решить проблему дискретного логарифмирования.

В настройках ECDSA алгоритмы субэкспоненциального времени, такие как метод индексного исчисления, не применяются, а лучшим известным на сегодняшний день методом решения лежащем в их основе DLP являются метод кенгуру Полларда. Мы постараемся не нагружать вас с различными теоретическими аспектами. Перейдем сразу к экспериментальной части.

Как мы знаем в блокчейне Биткоина отправитель монет BTC всегда раскрывает свой публичный ключ.

Для метода кенгуру Полларда достаточно знать публичный ключ или значение сигнатуры R ( значение R - это тоже своего рода публичный ключ от Nonces т.к. это точка координата x на плоскости эллиптической кривой secp256k1)

Остается только определить диапазон PRIVATE KEY или диапазон NONCES.

Случается такое что некоторые устройства которые создают подписиECDSAв блокчейне Биткоина могут частично раскрывать байты информации о значение "K" (NONCES)

Мы считаем что это потенциальная угроза потери монет BTC и настоятельно рекомендуем всем всегда обновлять ПО и использовать только проверенные устройства.

В недалеком прошлом мы провели криптоанализ в блокчейне Биткоина и нашли несколько таких транзакции.

Итак, взгляните на этот Биткоин Адрес на сумму вывода монет 501.06516041 BTC

В транзакциях этого Биткоин Адреса 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE была частичная раскрываемость байтов информации о значение "K" (NONCES)

Как мы знаем из прошлой нашей статьи

habr.com/ru/post/671932/

habr.com/ru/post/671932/

Поиск диапазона секретного ключа

Давайте найдем эту транзакцию и с помощью метода кенгуру Полларда восстановим секретный ключ

Ранее мы записывали видеоинструкцию: «TERMINAL в Google Colab создаем все удобства для работ в GITHUB»

Откроем в терминале Google Colab [TerminalGoogleColab]

Для поиска RawTX воспользуемся репозиторием «01BlockchainGoogleDrive»

git clone https://github.com/demining/CryptoDeepTools.git

cd CryptoDeepTools/01BlockchainGoogleDrive/

chmod +x getrawtx.sh

./getrawtx.sh 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE


Запуск Bash-скрипта: getrawtx.sh

Всё содержимые транзакции Биткоин Адреса 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE сохранилось в файл: RawTX.json

Открываем файл: RawTX.json и находим эту транзакцию [строка №10]

Воспользуемся командой export и сохраним эту строку №10 из RawTX.json отдельно в RawTX.txt

export LINE=10 ; sed -n "${LINE}p" RawTX.json > RawTX.txt

cat RawTX.txt

Узнаем TxID откроем сайт Decode Raw Bitcoin Hexadecimal Transaction и вставим наш RawTXВ результате мы получаем TxID

В результате мы получаем TxID

TxID: b5add54960756c58ebabb332c5ef89098d2c3b8f2107b939ec542178e846108b

Открываем по ссылке TxID:

https://btc.exan.tech/tx/b5add54960756c58ebabb332c5ef89098d2...

Проверяем RawTX

Проверяем RawTX

Теперь узнаем частичную раскрываемость байтов информации о значение "K" (NONCES)

Для этого мы воспользуемся скриптом «RangeNonce»

«RangeNonce» - это скрипт по поиску диапазона секретного ключа

Выберем версию для дистрибутива GNU/Linux т.к. Google Colab предоставляет UBUNTU 18.04

RangeNonce

RangeNonce

Загрузим все файлы в Google Colab

RangeNonce + Google Colab

RangeNonce + Google Colab

Разрешим права доступа для скрипта и запустим скрипт «RangeNonce»

Команды:

chmod +x RangeNonce

./RangeNonce

cat Result.txt

Все сохранится в файл: Result.txt

Result.txt

Result.txt

Это и есть частичная раскрываемость байтов информации значение "K" (NONCES)

Итак, наш секретный ключ находится в диапазоне:

K = 070239c013e8f40c8c2a0e608ae15a6b00000000000000000000000000000000

K = 070239c013e8f40c8c2a0e608ae15a6bffffffffffffffffffffffffffffffff

Обратите внимание, на первоначальные 32 цифр и букв HEX формата значение сигнатуры Z совпадает с диапазоном секретного ключа то есть значение "K" (NONCES)

Это очень серьезная ошибка подписи ECDSA

Как мы говорили выше для метода кенгуру Полларда достаточно знать публичный ключ или значение сигнатуры R ( значение R - это тоже своего рода публичный ключ от Nonces т.к. это точка координата x на плоскости эллиптической кривой secp256k1)

Значение сигнатуры R в нашем случае:

R = 83fe1c06236449b69a7bee5be422c067d02c4ce3f4fa3756bd92c632f971de06

Скрипт RangeNonce добавил нужный нам префикс 02 создав сжатый публичный ключ

K_PUBKEY = 0283fe1c06236449b69a7bee5be422c067d02c4ce3f4fa3756bd92c632f971de06

Теперь у нас есть информация:

диапазон секретного ключа

сжатый публичный ключ

Воспользуемся исходным кодом для сборки программы Pollard's Kangaroo от французского разработчика Jean-Luc PONS

Обратите внимание, что вы можете самостоятельно сделать сборку на CUDA для GPU чтобы увеличить скорость расчетов

Мы сделаем обычную сборку для CPU

Команды:

cd /

cd content/CryptoDeepTools/06KangarooJeanLucPons/

ls

sudo apt-get update

sudo apt-get install g++ -y

sudo apt-get install libgmp3-dev libmpfr-dev -y

После всех установок пакетов сделаем сборку запустив простую команду:

make

Сборка прошла успешно!

Проверим версию:

./kangaroo -v

Итак, мы создали версию «Kangaroo v2.2»

Чтобы продемонстрировать работоспособность «Kangaroo v2.2» для CPU приподнимем диапазон и сохраним все в файл: rangepubkey.txt

Открываем текстовый файл: rangepubkey.txt

070239c013e8f40c8c2a0e608ae15a6b23d4a09295be678b2100000000000000

070239c013e8f40c8c2a0e608ae15a6b23d4a09295be678b21ffffffffffffff

0283fe1c06236449b69a7bee5be422c067d02c4ce3f4fa3756bd92c632f971de06

Очистим терминал командой:

clear

Запустим «Kangaroo v2.2» результат будет автоматический сохранен в файл: savenonce.txt

./kangaroo -ws -w save.work -wi 30 -o savenonce.txt rangepubkey.txt

Время поиска заняло 1 мин. 18 сек.

Результат в файле: savenonce.txt

Откроем файл: savenonce.txt

Мы получили секретный ключ это и есть значение "K" (NONCES)

Key# 0 [1S]Pub: 0x0283FE1C06236449B69A7BEE5BE422C067D02C4CE3F4FA3756BD92C632F971DE06

Priv: 0x70239C013E8F40C8C2A0E608AE15A6B23D4A09295BE678B21A5F1DCEAE1F634

070239C013E8F40C8C2A0E608AE15A6B23D4A09295BE678B21A5F1DCEAE1F634

K = 070239c013e8f40c8c2a0e608ae15a6b00000000000000000000000000000000 # RangeNonce

K = 070239C013E8F40C8C2A0E608AE15A6B23D4A09295BE678B21A5F1DCEAE1F634 # NONCES

K = 070239c013e8f40c8c2a0e608ae15a6bffffffffffffffffffffffffffffffff # RangeNonce

Закрытый ключ

Теперь зная значение "K" (NONCES) мы восстановим закрытый ключ к Биткоин Адресу: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE

Вернемся к началу, как мы помним скрипт «RangeNonce» раскрыл нам информацию о диапазоне значение "K" (NONCES), а так же информацию SIGNATURES

SIGNATURES

SIGNATURES

R = 83fe1c06236449b69a7bee5be422c067d02c4ce3f4fa3756bd92c632f971de06

S = 7405249d2aa9184b688f5307006fddc3bd4a7eb89294e3be3438636384d64ce7

Z = 070239c013e8f40c8c2a0e608ae15a6b1bb4b8fbcab3cff151a6e4e8e05e10b7

Получим закрытый ключ по формуле на Python-скрипт: calculate.py

PRIVKEY = ((((S * K) - Z) * modinv(R,N)) % N)

def h(n):

return hex(n).replace("0x","")

def extended_gcd(aa, bb):

lastremainder, remainder = abs(aa), abs(bb)

x, lastx, y, lasty = 0, 1, 1, 0

while remainder:

lastremainder, (quotient, remainder) = remainder, divmod(lastremainder, remainder)

x, lastx = lastx - quotient*x, x

y, lasty = lasty - quotient*y, y

return lastremainder, lastx * (-1 if aa < 0 else 1), lasty * (-1 if bb < 0 else 1)

def modinv(a, m):

g, x, y = extended_gcd(a, m)

if g != 1:

raise ValueError

return x % m

N = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141

R = 0x83fe1c06236449b69a7bee5be422c067d02c4ce3f4fa3756bd92c632f971de06

S = 0x7405249d2aa9184b688f5307006fddc3bd4a7eb89294e3be3438636384d64ce7

Z = 0x070239c013e8f40c8c2a0e608ae15a6b1bb4b8fbcab3cff151a6e4e8e05e10b7

K = 0x070239C013E8F40C8C2A0E608AE15A6B23D4A09295BE678B21A5F1DCEAE1F634

print (h((((S * K) - Z) * modinv(R,N)) % N))

Команды:

wget https://raw.githubusercontent.com/demining/CryptoDeepTools/m...

python3 calculate.py

PRIVKEY = 23d4a09295be678b21a5f1dceae1f634a69c1b41775f680ebf8165266471401b

Pollard's Kangaroo находим решения дискретного логарифма secp256k1 PRIVATE KEY + NONCES в известном диапазоне Криптовалюта, Биткоины, NFT, Финансы, Доллары, Фондовый рынок, Биржа, Рубль, Валюта, Инвестиции, Курс доллара, Т-Банк, Рост цен, Инвестиции в акции, Кризис, Сбербанк, Банк, Кредит, Деньги, Ипотека, Видео, YouTube, Длиннопост

Проверяем закрытый ключ на сайте bitaddress


ADDR: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE

WIF: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e

HEX: 23d4a09295be678b21a5f1dceae1f634a69c1b41775f680ebf8165266471401b

Pollard's Kangaroo находим решения дискретного логарифма secp256k1 PRIVATE KEY + NONCES в известном диапазоне Криптовалюта, Биткоины, NFT, Финансы, Доллары, Фондовый рынок, Биржа, Рубль, Валюта, Инвестиции, Курс доллара, Т-Банк, Рост цен, Инвестиции в акции, Кризис, Сбербанк, Банк, Кредит, Деньги, Ипотека, Видео, YouTube, Длиннопост

Закрытый ключ найден!

Данный видеоматериал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN


Telegram: https://t.me/cryptodeeptech

Видеоматериал: https://youtu.be/UGUJyxOhBBQ

Источник: https://cryptodeep.ru/kangaroo

Показать полностью 2
122

Ответ levoslavievseti в «Чувствительная подруга»2

В Вашей истории, уважаемый ТС, холодильник просто выкинули. Могу сказать, что Вам несказанно повезло.

У нас такой же мудак (не будем вуалировать) оставил полную морозилку мяса и уехал на лето. По прибытию в общагу, она у нас была секционного типа, не коридорная, нас ждал большой сюрприз. Вся секция ужасно воняла, даже с лестничного пролета пару этажами ниже был слышен этот запах.

Сначала мы думали, что какой то приблудный кот залез и помер, но все оказалось банальнее. В общаге я жил на тот момент уже пятый год, повидал и пьяных монголов и африканцев, с их любовью к странной еде, но такое случилось впервые.

Каменда была сразу же оповещена, и добровольно-принудительно, мы с девушкой отправились это чудо отмывать (не пропадать же технике!).

Как я относил в мусор пару пакетов с той жижей, что была мясом, это отдельная песня. На вечеринках копрофилов она стала бы хитом.

Уж не знаю, что за коричневые скорлупки остались в поддонах, но доставал я их даже из под уплотнительных резинок на дверях. Мы, два надмозга, решили что это яйца тараканов, но это не точно. А вот что точно, так это то, что блевать я ходил раза два, уж простите за подробности, но словами этот запах не передать)

Ответ levoslavievseti в «Чувствительная подруга» Ответ на пост, История, Общежитие, Длиннопост
Ответ levoslavievseti в «Чувствительная подруга» Ответ на пост, История, Общежитие, Длиннопост
Показать полностью 2
2761

Развод в автосервисе. Надёжно зафиксированный клиент в предварительных ласках не нуждается6

В принципе этим девизом руководствуется большинство автосервисов, когда выкатывают после ремонта сумму в пару раз выше, чем оговаривалась изначально.

Вообще моя позиция: если ввиду каких-либо сложностей в процессе ремонта стоимость возрастёт на 10-15% - это нормально, все, что свыше - требует обязательного согласования с клиентом...но это моя позиция, и все бы срать на нее хотели! Поэтому примеры из жизни:

1. В нашем сервисе не было стенда сход-развала. Я заменил кучу всего по передней подвеске, в том числе рулевые тяги и наконечники. Естественно все резьбовые соединения собраны на графитной смазке. Клиент записался к соседям на сход-развал через 2 дня (работает по графику). Звонит мне из того сервиса, находясь у них, ему там что-то показывают под его авто, слышно по телефону плохо, иду туда, в ремзоны к ним ножками.

Ему заявляют: разработка рулевых тяг 500*2 ₽. Задние сайлентблоки передних рычагов поменяли, ибо тем была пизда (поменяны 2 дня назад, и я вижу на "новых" сайлентблоках мои метки белым маркером) 1500*2 ₽ за замену и стоимость запчастей, сильно завышена. Иду к директору того сервиса (мы с ним знакомы, но на уровне "драссьте-до свидания"), объясняю ситуацию, вместе идём под подъемник, доказываю свою правоту, мне директор разрешает самому воспользоваться стендом, выставляю углы, все бесплатно для клиента.

2. Другой сервис, тоже соседи. Мой клиент после моей диагностики ходовой не смог попасть ко мне (записи было дня на три), поехал к соседям. Звонит: а нахуя ты мне амортизаторы не отписал сразу?

Нихуя не понимаю прикола...иду к ним в сервис. Меня пытается выпихнуть типа охранник (пенсионер-сторож), я настойчив, иду к клиенту, который общается с приемщиком. Ну да, вижу, аморты поменяли, причем без согласования. Иду к авто, на нем стоят новые аморты...stellox (самое дешманское говно)...а в заказ-наряде кайаба значится ...похуй, пляшем дальше!
Я: Где старые амортизаторы?
Мастер-приемщик: только что металлолом вывезли
Я: а если найду?
МП: кто тебя в ремзону пустит?
Клиент: клиента обязаны пустить, а это...пусть мой приемный сын допустим

Короче показывают нам в итоге старые амортизаторы, один пропилен болгаркой насквозь, при попытке разрезать пополам гайку на стойке стаба

3. Сторонний сервис, звонит мне клиент, которому я неделю назад делал подвеску, говорит, что я не затянул шаровую. Я в 10 минутах езды, приезжаю, авто на подъемнике. За неделю на всех гайках, которые я крутил - налет пыли, на одной - свежие следы откручивания...

Спрашиваю: чо за херня? Ответ: это я затянуть пытался, а там уже поворотный кулак разбило, не затянуть.

Дёргаю за рычаг - шаровая сидит на конусе. При незатянутой гайке она в конус не сядет, и будет разбивать отверстие эллипсом...но здесь она сидит в конусе...а значит и отверстие не разбито. Значит ее ослабили только что ...

Затягиваю гайку, посылаю всех нахуй, идём к сервис-менеджер или тех директору, хуй поймешь, получаем извинения и бесплатную замену колодок (за чем, собственно клиент в этот сервис и приехал, ибо в двух шагах от работы)

К слову, их работу я потом переделывал, ибо без чистки скоб новые колодки молоточком забили, не заметили порванных пыльников на поршнях

Всем ровных дорог, честных слесарей, добрых гаишников!

Показать полностью
0

Про честность, умеренность и заботу властей сейчас и чуть более 100 лет назад

Общался недавно по интересной для меня теме, услышал от собеседника утверждение о том, что дескать все беды прошедшие и нынешние из за того что Россию дескать обокрали белые, а Советской власти пришлось закручивать гайки и собирать с граждан деньги по той причине, что злодеи из белого движения украли все деньги из казны.

И вот тут, я немного удивился, так как у меня как то в голове отложился несколько иной сценарий событий, в котором деньги то конечно забрали и я бы даже сказал украли, это да, но вот решение о том, кто, куда и за что они уйдут принимал все же другой человек который у нас в мавзолее на красной площади лежит.

Итак, что нам известно про золото Российской империи, оно же "Золото Колчака", которого как раз и не хватило на то что бы страна после революции начала жить и дышать без голода и мучений?

Будем основываться на СМИ. (https://ria.ru/20220104/zoloto-1762080132.html)
Итак золото было, путешествовало через Казань и в дальнейшем оказалось в эшелоне у Колчака.
Процитирую вышеуказанный источник: "Войска Чехословацкого корпуса, составлявшие немалую часть его армии, капитулировали. В качестве платы за возвращение на родину они отдали Иркутскому ревкому чуть более 400 миллионов золотых. Судьба оставшихся 250 волнует исследователей уже больше века. Это и есть пропавшее "золото Колчака".

Суммы и прочие подробности разнятся, но дальше перейдем к другому источнику:
https://rg.ru/2013/11/17/kolchak-site.html

Снова цитирую "На вагоне были подняты английский, французский, американский, японский и чешский флаги, символизировавшие, что адмирал находится под защитой этих государств. 15 января состав прибыл на станцию Иннокентьевскую.15 января состав прибыл на станцию Иннокентьевскую. Стояли долго: Жанен общался с руководством Политцентра, которое соглашалось пропустить чехословацкий поезд, полный "экспроприированного" имущества и оружия, и идущие за ним груженые "военными трофеями" эшелоны в обмен на Колчака. Переговоры закончились тем, что в вагон вошел помощник чешского коменданта поезда и объявил, что Верховный правитель "передается иркутским властям".

Т.е. вот он поезд с казной. Вот Колчак. А вот Ленин с телеграммой.

"6 февраля 1920 года - во исполнение телеграммы Ленина - было принято постановление Иркутского Военно-революционного комитета о расстреле Колчака и Пепеляева."

Автор статьи придерживается отвратительно слезливого стиля,  но все же это РГ.

Теперь давайте сверим факты:
1.Казна была.
2.Казну вывез и хранил в эшелоне Колчак.
3. В обмен на выдачу Колчака революционные силы согласились пропустить эшелон дальше.
4. Вместо выяснения подробностей о том куда Колчак дел деньги,  Ленин решает его быстро расстрелять и прикопать, а на материалы дела наложить гриф секретности.
5. После того как эшелон с деньгами ушел из страны, от нее достаточно быстро отстали, хотя казалось бы, вот вам повод - вторгайтесь еще сильнее, советы нарушили ваши гарантии.

Тут на мой взгляд есть два логичных предположения:
1. Молодая советская власть откупилась казной РИ от иностранцев и оплатила ей же передачу Колчака, а что бы потом не всплыл вопрос о том "где деньги" грохнули основного свидетеля.
2. Молодая советская власть умудрилась выпустить поезд с казной, так как была очень честной и наивной, всем верила на слово.

В подтверждение моего предположения служит тот факт, что дело хоть и не секретно, но читать его все еще нельзя:
https://lenta.ru/news/2021/06/23/kolchak/

Ну и по результату суда, дело также не дали, так как запрос должен идти от родственников, а истец таковым не является.

"При рассмотрении административного дела установлено, что в Центральном архиве ФСБ России хранится архивное уголовное дело № Н-602 в отношении Колчака А.В.; Колчак А.В. признан не подлежащим реабилитации.

05 марта 2021 года Копытин И.В. обратился в Центральный архив ФСБ РФ с запросом о предоставлении информации о предоставлении доступа к материалам уголовного дела в отношении Колчака А.В., указав, что является эстонским военным историком и преподавателем истории, имеет степень доктора исторических наук.

01 апреля 2021 года обращение рассмотрено и в ответе № 1... Копытину И.В. разъяснено, что основания для предоставления доступа к материалам запрашиваемого архивного уголовного дела отсутствуют."


"В силу ст. 11 Закона РФ от 18.10.1991 № 1761-1 "О реабилитации жертв политических репрессий", реабилитированные лица, а с их согласия или в случае их смерти - родственники имеют право на ознакомление с материалами прекращенных уголовных и административных дел и получение копий документов. Ознакомление других лиц с указанными материалами производится в порядке, установленном для ознакомления с материалами государственных архивов. Использование полученных сведений в ущерб правам и законным интересам проходящих по делу лиц и их родственников не допускается и преследуется в установленном законом порядке."

https://www.mos-gorsud.ru/rs/meshchanskij/services/cases/kas...

К чему этот мой длиннопост?

К тому, что на мой взгляд как в 1920 году, лица стоящие у власти готовы платить любую цену за достижение своих целей, так и в 2022 году, лица у власти по прежнему щедро готовы платить любую цену за свои цели, и сопутствующие жертвы никогда не интересуют, ни сейчас ни 102 года назад.

Ну и естественно эти цели довольно далеки от "хорошего вам будущего и приятного настоящего".
Возможно Ленин даже в чем то был честнее, если предположить что он все таки верил в возможность реализации декларируемых идей.

Сейчас же опять у нас "Борьба за все хорошее, против всего плохого". Правда без особых идей, да и без внятных обещаний наступления "прекрасного завтра".

Но вот золото похоже все также в цене.
https://rusmet.ru/goldman-sachs-czena-na-zoloto-v-2022-godu-...

"В январе 2022 года Goldman Sachs опубликовал обновленный прогноз относительно цен на золото, в котором ожидался рост до $2150 за тройскую унцию в течение года ввиду замедления экономического роста США. Однако ситуация на Украине привела к тому, что цены уже выросли до $2050.

Подобная динамика вынудила банк вновь пересмотреть прогноз. По ожиданиям аналитиков Goldman Sachs, есть все предпосылки для дальнейшего роста цен до $2500 за унцию к концу года."


февраль 2022 "По данным ФТС, экспорт золота из России в январе 2022 года составил 12,89 т. В феврале он вырос почти до 27,5 т, а в марте—апреле упал до 0,1 т суммарно, сообщал «Интерфакс» со ссылкой на материалы Ассоциации недропользователей Магаданской области (это второй после Красноярского края крупнейший золотодобывающий регион России). После введения западных санкций ФТС перестала раскрывать статистические данные."

май 2022 "Золотодобывающая компания Petropavlovsk подала заявку на новую лицензию для экспорта золота третьим сторонам после того, как Газпромбанк уведомил ее об отказе от своих прав на покупку золота, добытого компанией."


май-июнь 2022 "Российские банки значительно сократили объем запасов драгоценных металлов, следует из статистики Банка России. На 1 апреля остатки на счетах, на которых отражаются подобные активы, составили 227,3 млрд руб. — это минимум с августа 2019 года. За февраль—март объем вложений в драгметаллы уменьшился на 20,2 млрд руб., или 17,2%, но в пересчете на физическое золото запасы снизились гораздо заметнее."

Современный аналог поезда с флагами символизирующими защиту, также в наличие, остается выбрать кандидата на роль "Колчака" и подсчитать точную цену вопроса.


На тему того есть тут политика или нет, решайте сами, и да, мне интересно высказать идею, а не защищать ее с пеной у рта, так что пост обсуждать в комментах мне лениво.
Показать полностью
Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов, волны постов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите