Карта Германии 1:1 в PDF-формате? Легко!

Карта Германии 1:1 в PDF-формате? Легко!

Карта Германии 1:1 в PDF-формате? Легко!

Как оказалось, в файл PDF можно втиснуть страницу космических размеров. Лимиты, указанные в спецификациях формата, отображают возможности конкретного приложения для просмотра таких документов — Adobe Acrobat.

О том, что формат PDF не ограничивает размеры страниц таких документов, сказано, например, в соответствующей статье Википедии. Тем не менее программист Алекс Чань (Alex Chan), известная под ником alexwlchan, неоднократно сталкивалась с мнением, будто максимальный размер PDF-страниц — 381 км по стороне.

Таким листом можно накрыть половину Германии на карте масштабом 1:1, однако откуда взялось это магическое число?

 

В приложениях к спецификациям PDF 1.7 (PDF) отмечено, что лимиты на величину и количество объектов в таких файлах связаны с возможностями принтеров и соответствующих приложений. В Acrobat 5.0 и выше размеры страниц ограничены 200 х 200 дюймов; в этих границах дефолт можно для каждой менять с помощью записи UserUnit (число отображает кратность измерения на странице относительно типографского пункта, в программах Adobe равен 1/72 дюйма).

Версии Acrobat 7.0 и новее поддерживают верхнее значение UserUnit в 75 000, то есть страница PDF по каждой стороне не должна превышать 15 млн дюймов (381 км). Чтобы удостовериться, что для PDF это не предел, Чань изучила структуру таких файлов и собрала дополнительную информацию, задавая наводящие вопросы ChatGPT, а затем приступила к экспериментам, создав несколько простейших образцов вручную.

Как выяснилось, увеличить размеры страниц можно не только с помощью UserUnit, но также манипулируя значением MediaBox (размер материала, на котором производится печать). При превышении лимитов Acrobat приложение продолжало упорно показывать в метаданных 15 млн дюймов, а такой же трюк с UserUnit оно вообще не заметило (не выдало ни предупреждения, ни ошибки).

В ходе исследования было установлено, что встроенная в macOS программа Preview.app не поддерживает UserUnit и потому полностью игнорирует такие значения, считая, что во всех PDF установлен дефолт 1/72 дюйма. Верхний предел, как в случае с Acrobat, для этого приложения выставить невозможно, поэтому оно спокойно покажет в свойствах файла, что ширина страницы соизмерима с расстоянием от Земли до Луны.

 

Когда в ходе экспериментов Preview.app заявила, что PDF больше вселенной (примерно 37 млрд световых лет в квадрате), Чань решила остановиться. Распечатывать такие страницы даже не стоит пытаться.

Apple выложила код постквантовой криптографии на GitHub

Apple продолжает строить цифровой бункер на случай, если квантовые компьютеры однажды начнут вскрывать современное шифрование. Компания выложила на GitHub исходники corecrypto (своей низкоуровневой криптографической библиотеки) и подробно рассказала, как проверяет защиту iPhone, macOS от будущих квантовых атак.

Вообще вся эта история началась ещё в 2024 году с появления PQ3 в iMessage.

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

Корпорация заранее готовится к моменту, когда квантовые машины смогут ломать классическую криптографию быстрее, чем пользователи успеют придумать пароль «12345678».

Теперь Apple пошла дальше и открыла код corecrypto — библиотеки, которая отвечает за шифрование, цифровые подписи, хеширование и генерацию случайных чисел в экосистеме компании. Именно через неё работают Security framework, CryptoKit и CommonCrypto.

В репозитории появились реализации ML-KEM и ML-DSA — двух постквантовых алгоритмов, которые Apple выбрала для своей криптографии. Первый нужен для безопасного обмена ключами шифрования, второй — для цифровых подписей. Оба стандарта утверждены NIST как защита от угроз будущих квантовых компьютеров.

Но самое интересное — не сами алгоритмы, а то, как Apple всё это проверяет.

Компания выдала огромный технический разбор о том, как тестировала код перед публикацией. И судя по описанию, внутри Apple криптографию гоняют так, будто готовят запуск ядерного реактора. Обычных тестов им оказалось мало: пришлось строить собственную систему формальной верификации, потому что существующие инструменты не покрывали все сценарии.

Проблема в том, что corecrypto работает сразу на куче устройств с разными версиями Apple Silicon, а часть кода написана не только на C, но и вручную оптимизирована под ARM64.

В итоге Apple утверждает, что формальная верификация уже помогла найти критические ошибки, которые обычное тестирование не заметило бы. Например, компания обнаружила пропущенный шаг в ранней реализации ML-DSA. В редких случаях это могло приводить к некорректным криптографическим вычислениям без каких-либо предупреждений. Заодно инженеры нашли ошибку даже в стороннем математическом доказательстве и самостоятельно её исправили для своих параметров.

RSS: Новости на портале Anti-Malware.ru