Pull to refresh
32
14
Send message

В России «раскололи» зарубежную постквантовую схему электронной подписи

Level of difficultyMedium
Reading time2 min
Views1.1K

В лаборатории криптографии российской компании «Криптонит» построена первая структурная атака, ставящая под сомнение надёжность оригинальной схемы pqsigRM и её новой модификации Enhanced pqsigRM.

Безопасность кодовых криптосистем с открытым ключом основывается, в том числе, на выборе базового кода, исправляющего ошибки. Например, использование кодов Рида — Маллера в криптосистеме Мак-Элиса не является безопасным, так как на такую версию криптосистемы ранее сотрудниками лаборатории криптографии НПК «Криптонит» уже была построена эффективная атака. 

Однако в основе схемы Enchanced pqsigRM лежит модифицированная конструкция, в которой коды Рида — Маллера специальным образом комбинируются друг с другом, чтобы запутать структуру исходных кодов. 

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

Читать далее

Почему Apache Spark становится ядром аналитических платформ в России: тренды, особенности и прогнозы для бизнеса

Level of difficultyMedium
Reading time11 min
Views3.4K

Эксперты компании «Криптонит» проанализировали главные тренды использования Apache Spark в бизнесе, выделили особенности его применения в России и спрогнозировали дальнейшее развитие на основе выявленных тенденций.

Растущая востребованность Spark объясняется не только открытым исходным кодом и гибкостью, но и лёгкостью интеграции с современными технологиями — от машинного обучения до облачных платформ.

«В России Apache Spark становится не просто популярным фреймворком для обработки данных, а частью экосистемы отечественных решений в сфере Big Data. Особенно это касается объектов критической инфраструктуры, где всегда отдаётся предпочтение только самым надёжным и проверенным решениям», — пояснил Иван Попович, руководитель направления обработки данных компании «Криптонит».

Для критически важных отраслей (госуправление, финансы, энергетика) важна локализация данных и соответствие требованиям регуляторов.

«Открытый исходный код здесь играет ключевую роль, так как обеспечивает прозрачность и возможность тщательной верификации. Также он даёт уникальную возможность адаптировать решение под конкретные требования проекта. Хотя само по себе наличие открытого кода не является гарантией безопасности, Apache Spark за 15 лет своего развития доказал эффективность и надёжность в самых различных областях применения», — добавил эксперт.

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

Читать далее

Prime Target — разбираем сериал «Опасные числа» вместе с криптографами

Level of difficultyEasy
Reading time5 min
Views5.5K

Теме криптографии посвящён сериал Prime Target (в русской локализации называется «Опасные числа»). Он включает в себя множество математических и криптографических отсылок, которые обогащают его сюжет и подчёркивают интеллектуальные вызовы, стоящие перед героями. В этой статье вместе с настоящими криптографами мы разберём, какие атрибуты были использованы в сериале, и что из них похоже на правду.

 — Коллеги, пожалуйста, представьтесь нашим читателям.

— Иван Чижов, заместитель руководителя лаборатории криптографии по научной работе компании «Криптонит».

— Илья Герасимов. Я аспирант кафедры информационной безопасности ВМК МГУ и работаю специалистом-исследователем в лаборатории криптографии «Криптонита».

 — Интересно! Главный герой сериала — тоже аспирант.

— И тоже математик, но на этом наше сходство заканчивается [смеётся]. Скажем так, область научных интересов у него другая. Я занимаюсь криптографией на эллиптических кривых, а главный герой сериала ищет закономерности в числовых рядах.

 — В этом есть какой-то смысл?

— Да. Этим занимается теория чисел. Математика отражает законы природы и выявляет закономерности. Например, у главного героя на стене висит вырезка из газеты с фотографией раковины моллюска и заголовком «Primes of the Past».

Читать далее

Вампирское зрение: как работает бесконтактное измерение пульса по видео

Level of difficultyMedium
Reading time4 min
Views3.5K

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

Дистанционная фотоплетизмография (ДФПГ, rPPG) — это метод измерения пульса по видеозаписи. Он потенциально применим в телемедицине, а также для оценки эмоционального состояния людей, например водителей и пилотов, но пока не получил широкого распространения из-за чувствительности к различным искажениям. 

Метод базируется на регистрации едва заметных изменений цвета кожи при увеличении объёма кровеносных сосудов после каждого сокращения (систолы) левого желудочка сердца. 

Существующие системы ДФПГ достаточно надёжны только в идеальных условиях. Если же человек использует макияж, частично закрывает лицо, движется, или в кадре меняется освещённость, то частота его сердечных сокращений определяется неверно. 

В отделе перспективных исследований компании «Криптонит» предложили использовать для ДФПГ новый метод, который устраняет эти недостатки за счёт более эффективного подхода к регистрации и анализу видеосигнала. Вместо привычного цветового пространства RGB используется CIELAB, поскольку в нём светимость выделена в отдельный канал. Это позволило отсечь артефакты, связанные с изменениями освещения в кадре. 

Для записи видео в эксперименте использовалась недорогая веб-камера Logitech 720p, из которой был удалён инфракрасный (ИК) фильтр. Это было сделано для того, чтобы исключить влияние макияжа на измерения, так как длинноволновое излучение лучше проникает через него. 

Читать далее

Рейтинги языков программирования: что за ними скрывается?

Level of difficultyEasy
Reading time8 min
Views15K

Написать эту статью меня побудил один забавный случай. Он хорошо демонстрирует, что не стоит слепо доверять одному источнику, каким бы авторитетным он ни был. Впрочем, обо всём по порядку. 

Когда только начинаешь карьеру разработчика, часто гложет сомнение: верно ли я выбрал язык программирования? Может, он уже устарел, или наоборот — слишком новый и не факт, что перспективный? Легко ли будет найти по нему актуальные книги и уроки? Много ли таких неофитов будет вместе со мной обивать пороги ИТ-компаний через год-два? 

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

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

Индексы популярности

Всё началось с того, что мне попался на глаза свежий рейтинг актуальности ЯП, где в TOP 10 внезапно ворвался Delphi. Пытаясь разобраться в причинах его внезапной популярности в 2025 году, я стал искать методики составления таких списков и нашёл много любопытного. Как обычно, дьявол кроется в деталях. 

Индекс TIOBE — известный инструмент мониторинга, показывающий динамику интереса к разным ЯП. Он учитывает частоту поисковых запросов, связанных с ЯП. Для этого каждый месяц в Google, Bing, Yahoo! и Baidu отправляются запросы по определённому шаблону, чтобы отсеивать из выдачи мусор и корректно сравнивать статистические данные. Дополнительно в рейтинге учитывается число образовательных материалов о ЯП: количество видеоуроков на YouTube, книг на Amazon и упоминаний на Wikipedia. 

Читать далее

Пришёл, накодил, победил: хакатон глазами победителей и организаторов

Level of difficultyEasy
Reading time5 min
Views1.4K

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

Для работодателя хакатон заменяет десятки собеседований и знакомство с заявленными в резюме проектами (которые ещё неизвестно кто и как делал). Он сразу получает представление о реальных возможностях готовой команды разработчиков и может пригласить лучшую на свой проект.

Российская ИТ-компания «Криптонит» тоже участвует в хакатонах, причём в разных качествах. Наши молодые специалисты пробуют силы в профильных конкурсах, а их более опытные наставники сами организуют хакатоны для поиска сильных команд. Вот пара историй для лучшего понимания деталей.

Читать далее

Loss Landscape Analysis — новая библиотека для анализа точности обучения и оценки обобщающей способности нейросетей

Level of difficultyMedium
Reading time12 min
Views2.7K

Мой коллега Никита Габдуллин работает в Отделе перспективных исследований ИТ-компании «Криптонит». Он автор библиотеки Loss Landscape Analysis (LLA) и научной статьи о ней, препринт которой доступен на английском языке. Здесь мы публикуем адаптированную русскоязычную статью с некоторыми вольностями, которые не приняты в академической среде, но упрощают восприятие текста.

При работе с нейросетями-классификаторами у всех на слуху какие-то известные архитектуры, которые характеризуются числом параметров, скоростью вычислений (инференса), точностью выполнения той или иной известной задачи. Популярны соревнования, посвящённые тому, насколько точно можно решить задачу классификации на типовых датасетах, и часто борьба уже идёт за доли процента [PWC]. Однако в реальных задачах нейросети часто показывают себя куда хуже, чем в «лабораторных» условиях, что переводит акццнт внимания с тренировочных и тестовых (train-test) задач на проверку обобщающей способности (generalization) нейросетей.

В наших работах мы столкнулись с тем, что нейросети одного типа могут иметь практически идентичные показатели train-test, но демонстрировать кардинально отличающиеся результаты на датасетах, отличных от тренировочного. Без углублённого анализа непонятно, за счёт чего возникают такие эффекты. Поэтому для таких нейросетей очень сложно выполнить оценку их реальной обобщающей способности. Это вдохновило нас на поиски методов, которые позволили бы проанализировать обобщающую способность нейросети с теми или иными весами, среди которых метод построения ландшафта функции потерь (loss landscape) показался интересным кандидатом.

В интернете несложно найти чрезвычайно красивые визуализации результатов анализа ландшафта функции потерь [LLcom], некоторые из которых даже пытаются продавать как произведения искусства. Однако, любуясь такими картинами, легко забыть, что это — в первую очередь инструмент анализа каких-то свойств нейросетей. Получение красивых картинок — средство, а не цель. Найти хорошую библиотеку по данной тематике для применения в исследовательской работе оказалось куда сложнее, чем найти сайты с красивыми картинками.

Читать далее

С песней к звёздам! Как генеративный ИИ помог астроному-любителю

Level of difficultyEasy
Reading time6 min
Views4.1K

Привет, Хабр! Меня зовут Андрей. Я работаю научным журналистом в российской компании «Криптонит». Увлечения у меня под стать профессии: научная фантастика и наблюдательная астрономия. Вглядываясь в звёздное небо в одну из морозных ночей, я испытал настоящее вдохновение, рецептом которого и хочу поделиться в этой статье.

Источник вдохновения

Не секрет, что время от времени все авторы переживают творческий кризис. Как можно писать проникновенно, если один день похож на другой и ничего воодушевляющего не происходит? Один из способов преодолеть кризис — полностью сменить окружение в поисках свежих идей и эмоций. Гикам вроде меня для этого прекрасно подходят астрономические наблюдения!

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

Читать далее

(Не)доверенный ИИ: обучать нельзя запретить

Level of difficultyMedium
Reading time15 min
Views2.2K

Как заставить ChatGPT и другие LLM выдать секретные данные? Как взломать электронный замок с биометрией? Как сделать логическую бомбу с помощью ИИ? Можно ли обучать ИИ без доступа к реальным данным компании? Эти и другие вопросы обсудили на IV встрече экспертного сообщества по криптографии и большим данным, организованной компанией «Криптонит» и посвящённой доверенному ИИ.

Читать далее

Жизнь, смерть и ̶р̶о̶б̶о̶т̶ы̶ управление ресурсами в Scala

Level of difficultyMedium
Reading time23 min
Views1K

Вы когда-нибудь задумывались о том, как выделяется память для переменных, и в какой конкретно момент она очищается? Как сборщик мусора «решает», что переменная уже не нужна и можно ли как-то повлиять на его решение?

В новой статье директор департамента разработки компании «Криптонит» Алексей Шуксто рассказал об интересных особенностях управления жизненным циклом объектов в Scala и Java разных версий. С необходимостью вникать в эту внутреннюю кухню сталкиваются все, кто использует в своих программах потоки, подключения к БД и другим сторонним сервисам, анализирует метрики, обрабатывает исключения… все, кто пишет что-то сложнее «Hello World!» и хочет добиться предсказуемого результата.

Читать далее

Tower — библиотека для асинхронных middleware

Level of difficultyMedium
Reading time8 min
Views2K

Привет, Хабр! Ведущий системный программист компании "Криптонит" Михаил Доронин поделился опытом написания промежуточного ПО — middleware. Оно часто используется в веб-разработке. Например, веб-сервер может использовать middleware для обработки запросов до того, как они будут переданы основному приложению. Так удобно выполнять аутентификацию, логирование, сжатие данных и другую обработку запросов. Наша команда разработчиков на Rust использует для создания middleware библиотеку Tower. О ней и пойдёт речь в этой статье.

Ключевым понятием Tower является типаж Service, суть которого на псевдо-Rust некоторого (надеюсь, не столь отдалённого) будущего, сводится к следующей записи:

Читать далее

Алгоритм Чена — новая квантовая угроза? Разбираем риски раскрытия данных с криптографами компании «Криптонит»

Level of difficultyMedium
Reading time5 min
Views3.8K

Каждый день мы пользуемся криптографическими схемами, не особо задумываясь об этом. Именно криптография обеспечивает защиту наших коммуникаций через интернет, включая все B2B, B2C и G2C взаимодействия. Без неё не было бы безналичных платежей и онлайн-торговли, электронных госуслуг и других современных технологий, способствующих развитию рынка и общества.

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

Под угрозой окажутся банки, телеком, ритейл, коммерческая и государственная тайна. Удалённая работа, дистанционное обслуживание и многие бизнес-процессы станут попросту невозможны. Поэтому важно разрабатывать альтернативные криптографические схемы, которые базируются на принципиально других математических задачах. Это одно из направлений работы лаборатории криптографии компании «Криптонит». 

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

В качестве примера возьмём нашумевшую этой весной публикацию «Квантовые алгоритмы для задач на решётках», обсуждение которой в криптографическом сообществе продолжается до сих пор. По мере разбора препринта экспертами, отношение к целой группе постквантовых механизмов менялось от «всё пропало!» до «они снова выдержали суровое испытание».

Читать далее

Как математики приближают создание квантовых компьютеров

Level of difficultyMedium
Reading time2 min
Views4.3K

Эксперт компании «Криптонит» Игорь Нетай несколько лет назад выдвинул гипотезу, которая только сейчас подтвердилась в научном сообществе. Какая гипотеза и причём здесь квантовые компьютеры — рассказываем ниже.

Читать далее

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

Level of difficultyMedium
Reading time3 min
Views4.5K

Об этом и о других перспективных направлениях криптографии эксперты компании «Криптонит» рассказали на прошедшей в июне конференции CTCrypt 2024.

Читать далее

С++ вам не нянька! Делайте, что хотите, но виноваты будете сами

Reading time7 min
Views7.8K

Поговорили о перспективах С++, его особенностях и востребованности на рынке с Андреем Никитиным, ведущим инженером-разработчиком направления системного программирования Нижегородского подразделения компании «Криптонит».

С++ уже более сорока лет. В чём причина его популярности?

В плане семантики — это универсальный язык, но чаще С++ используется как объектно-ориентированный — с наследованием, интерфейсами и так далее. С++ позволяет строить что угодно — универсальные абстракции, иерархии любой сложности, логические слои, стеки протоколов... Обычно среди сильных сторон упоминают кроссплатформенность, но её нет «по умолчанию». Это не Java, программы на которой транслируются в байт-код и запускаются в виртуальной машине. В C++ нужно сразу писать код под все планируемые архитектуры и операционные системы, учитывать зависимые библиотеки. Всё это требует значительных усилий. Кроссплатформенность в С++ не данность, а отдельное требование, которое нужно учитывать на этапе разработки.

Почему С++ используют в «Криптоните» сейчас, когда есть более современные языки?

У нас в компании есть разные проекты. Некоторые из них начинались много лет назад, когда ещё не были популярны Rust, Golang и другие новомодные языки. При этом нам были важны требования производительности и «близости к железу». С++ был у всех на слуху. Он как раз обеспечивал сочетание высокоуровневого языка и возможность использования низкоуровневых функций. Сейчас мы продолжаем его использовать, потому что нет смысла портировать эти многолетние проекты на другие языки. Всё уже выверено и оптимизировано.

Читать далее

День защиты (от) детей: подборка игр от семейки айтишников

Level of difficultyEasy
Reading time8 min
Views8.6K

Привет, Хабр! Меня зовут Андрей. Я работаю в ИТ-компании «Криптонит» и воспитываю шестилетнюю дочь. Совмещать это весьма непросто, поэтому хочу поделиться лайфхаками о том, как провести время с ребёнком и не сойти с ума и увлечь его разными занимательными задачками.

Каждое воскресение мои мечты отоспаться разбиваются о детскую непосредственность дочери Кати:

— Пап, ты можешь со мной поиграть?! — тормошит она чуть свет и, скорее, требует, чем просит.

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

Этот бой проигран ещё до начала. Морфей в ужасе бежал от Кати, и я его понимаю. Дочь уже не даст покоя. Она будет «папкать» и натурально прыгать по тебе, пока не получит своё.

Чтобы в следующие выходные было чуть легче, на неделе я придумываю разные активности. Одни помогают сделать ребёнка «самозанятым» хотя бы на 10-15 минут, а другие достаточно просты, чтобы играть в них даже не до конца проснувшимся. Вот некоторые из них в помощь молодым родителям.

Прямоугольники

Для этой игры понадобится листок в клеточку, 1-2 кубика и пара карандашей (фломастеров) разных цветов. Ещё желательно приготовить ручку, чтобы нагляднее записывать цифры. Сама игра отдалённо похожа на «тетрис», только все фигуры — прямоугольники. 

Перед началом игры отмечаем на листке игровое поле произвольного размера, например 24 на 32 клетки. Затем два игрока по очереди рисуют прямоугольники. Их размер задаётся выпавшими цифрами на кубиках как длины сторон в клетках. 

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

Читать далее

«Кодиеум» — новая отечественная разработка для криптографии будущего

Level of difficultyMedium
Reading time5 min
Views3.4K

Российская компания «Криптонит» представила на «РусКрипто’2024» криптографический механизм «Кодиеум». Он устойчив ко всем известным атакам и останется стойким даже в случае появления мощного квантового компьютера.

Читать далее

Зачем в Scala трамплины и как их использовать

Level of difficultyHard
Reading time11 min
Views3.5K

В этой статье директор департамента разработки российской компании «Криптонит» и «скалист» Алексей Шуксто рассказывает о специфической технике функционального программирования, которая называется «трамплин» (trampoline).

Если кратко, то «трамплин» — это постоянный вызов в цикле новых частей вычисления вплоть до получения конечного результата. Трамплин можно рассматривать как шаблон проектирования, который позволяет избежать переполнения стека при рекурсивных вызовах функций.

Достигается это следующим образом: когда функция вызывает саму себя, то вместо этого вызова управление передаётся другой функции — трамплину. Эта функция-трамплин вызывает исходную функцию с нужными параметрами и, если нужно, передаёт управление другой функции-трамплину. Таким образом, при рекурсивных вызовах функций никакая информация не сохраняется на стеке, а управление всегда передаётся между функциями-трамплинами.

Чтобы вникнуть в детали, поясним ещё несколько моментов:

Читать далее

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

Level of difficultyMedium
Reading time7 min
Views2.8K

Сегодня всё чаще требуется учитывать географическую привязку и выполнять поиск в локальном окружении клиента. Иными словами, регулярно возникает необходимость найти что-то (или кого-то) рядом с конкретным пользователем. «Где ближайший банкомат?», «Кто из друзей поблизости?», «Какие тут аптеки?». Подобные запросы миллионами поступают в сервисы геолокации каждый день, при этом существующие подходы к решению этой задачи не исчерпали возможностей оптимизации. Наверняка вы не раз сетовали на то, как долго обновляются метки на карте.

В этой статье эксперт отдела перспективных исследований российской компании «Криптонит» Игорь Нетай рассказывает о способе ускорить обнаружение объектов, принадлежащих одному географическому региону с произвольно заданными размерами. Материал станет частью научной работы о перспективах применения H-кривых в геохешинге.

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

Координаты одной строкой

Удобство географической персонализации постепенно вытеснило паранойю, и во многих онлайн-сервисах теперь открыто используются данные о местоположении пользователей и различных объектов. Делаете заказ через интернет? Вам предложат забрать его в пункте выдачи поближе к дому. Вызываете такси? Сначала запрос передаётся водителям рядом с вами. Ищете кафе? На карте отобразятся ближайшие.

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

Читать далее

SALMONN — универсальная модель для всех типов аудиоданных

Level of difficultyMedium
Reading time7 min
Views4.3K

Человек без труда воспринимает речь на фоне тихой музыки и звуков окружающей среды. Более того, прямо во время разговора он может мысленно подпевать и реагировать на звуки. До недавнего времени нейросети так не умели. Одни были заточены на распознавание речи, другие — на обработку музыки, а третьи — на анализ различных звуковых событий. Всё изменилось с появлением работы китайских исследователей, создавших единую мультимодальную модель SALMONN. Это нейронная сеть с открытым исходным кодом, предназначенная для обработки аудиоданных любого типа: речи, музыки и различных звуков.

В этой статье мы рассказываем об особенностях SALMONN на основе научной публикации его разработчиков.  Адаптировать материал помогли наши эксперты в области обработки и синтеза речи. Перевод и разбор препринта о SALMONN выполнен исследователем лаборатории больших данных и статистики компании «Криптонит» Анной Холькиной.

Ключевой идеей проекта SALMONN стала интеграция большой языковой модели (LLM) с двумя энкодерами: одним из модели Whisper для восприятия речи и другим (BEATs) для остальных звуков. В качестве предобученной LLM используется Vicuna, созданная на основе модели LLaMA с 13 миллиардами параметров и обученная на данных лучших диалогов с ChatGPT (также авторы SALMONN выпустили версию своей модели на основе Vicuna с 7 миллиардами параметров).

Читать далее
1

Information

Rating
664-th
Works in
Registered
Activity