Проверка: число

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



Комментировать »

Некоторое время назад я написал утилиту, кодирующую произвольные байтовые значения в строки англосаксонских рун. Используется кодирование, эквивалентное Base32, но с алфавитом из рун. Алфавит, понятно, может быть любым, но в случае рун для отображения в привычных компьютерных системах потребуется поддержка Unicode.

Таблицы Unicode – весьма богатое нововведение. Unicode позволяет записывать в тексте числа древними шумерскими цифрами, вот так: 𒁹 𒌍𒐋 𒌋𒌋𒐈. (Если на вашем устройстве эти цифры не отображаются, то, вероятно, устройство не содержит подходящих шрифтов; такое всё ещё возможно; более того, мне пришлось столкнуться с существенными трудностями при размещении этой записки в WordPress – стандартный редактор данной CMS отказывался принимать соответствующие символы, пришлось применять некоторые хитрости.)

В принципе, шумерская (вавилонская) система записи – позиционная, по основанию 60, но имеет свои особенности, создающие неоднозначности при интерпретации: там используется плавающая “шестидесятеричная точка”, которая не обозначается; кроме того, в классическом варианте, нет цифры для нуля. 𒁹 𒌍𒐋 𒌋𒌋𒐈, в зависимости от контекста, можно интерпретировать не только очевидным способом, как 5783 (1*60^2 + 36*60 + 23), но и, например, как 96.38333(3) (1*60 + 36 + 23/60). Клинописные цифры, соответствующие числам от 1 до 59, записывались засечками; так, 𒐈 – это 3, а 𒌋𒌋 – это 2*10, то есть, 20 (𒌋 обозначает 10). Unicode, – по крайней мере, в теории, – позволяет все эти засечки напечатать и вывести на экран компьютера в виде текста, благодаря наличию разнообразных кодовых таблиц, среди которых есть и таблица с шумерскими древними цифрами.

Именно засечки, штрихи и прочие дополнительные “чёрточки” (умляуты и тому подобные знаки) Unicode создают исключительные проблемы при преобразовании символов. Рассмотрим в качестве примера кириллическую букву “И” с “краткой”, то есть, “Й” (“кратка” – это чёрточка над “И”). Правила Unicode позволяют обозначить данную букву как одним кодом (Й), так и комбинацией из двух – из сочетания кода буквы “И” (без “кратки”) и отдельного кода, обозначающего “кратку”, который предусмотрен в Unicode. То есть, одна буква расщепляется на два представления! Фольклорное фонетическое восприятие букв сталкивается с универсальным “чисто топологическим” и с треском прогрывает последнему. Результат, вообще говоря, может доставить неожиданных проблем разработчику программного кода, выполняющего преобразования кодировок. Поэтому в тех случаях, когда нужно запись Unicode приводить к другим кодировкам, которые не сохраняют разделение по принципам начертания, используются те или иные соглашения о нормализации, предназначение которых состоит в том, чтобы согласованным способом привести наборы кодов к единому символу. Это один из самых нетривиальных моментов в практике Unicode.



Комментировать »

В ноябре 2012 года, десять лет назад, регистраторы RU-CENTER и R01 включили поддержку DNSSEC для имён в доменных зонах .su, .com, .net. В этом перечне важен домен .su – открытое внедрение DNSSEC в российских реестрах началось именно с него. А включение поддержки означало, что все клиенты даных регистраторов смогут настроить DNSSEC для своих зон. (К сожалению, за прошедшие десять лет слишком многое изменилось, а в результате перемен – утрачена масса полезных исторических веб-страниц, поэтому не могу привести ссылку на текст исходной новости; впрочем, копию пока что можно найти в web.archive.ru.)

Вообще, если посмотреть на сайт под доменом nox.su, то там сказано, что “криптографическая информация, соответствующая домену nox.su, внесена в файл зоны .su 23.11.2011” – то есть, ровно 11 лет назад и годом ранее, чем доступ к DNSSEC появился у упомянутых регистраторов. Это объясняется тем, что с nox.su мне помогли специалисты ТЦИ и RU-CENTER (большая им благодарность!): соответствующую DS-запись в реестр внесли, так сказать, в обход общедоступного интерфейса.

За эти годы DNSSEC не обрела особой популярности. Не только в российских доменах, но и во всей глобальной DNS. Сейчас в зоне .ru лишь около 6 тыс. имён с DS-записью (статистика по другим TLD – картину улучшает не сильно). В моде другие направления и другие этапы доставки данных, а в качестве едва ли не единственного метода защиты информации, на прикладном уровне, используется TLS.

Например, если говорить про DNS, то это DoH (DNS-over-HTTPS) и DoT (DNS-over-TLS). Естественно, эти технологии не позволяют, на уровне клиента, проверить подлинность данных именно DNS-ответа, однако делают возможной аутентификацию узла-источника, который эти данные принёс (DNS-резолвер), защищают канал передачи от прослушивания и подмены. Обычно, всё это доступно только на “последней миле” (то есть, от резолвера до клиента). Использование DoH/DoT не отменяет, конечно, возможности проверки DNSSEC, как и не решает основной задачи DNSSEC – подтверждения подлинности адресной информации.



Комментировать »

В ноябре 2007 года на dxdt.ru выходили записки, касающиеся, например, современности авиации, а также технических аспектов радиолокации. Вот небольшая записка про систему стабилизации NOTAR:

Есть и относительно новая схема стабилизации вращения – NOTAR (от англ. No Tail Rotor), которая, несмотря на то что увековечена в фильмах о Джеймсе Бонде, в широких кругах известна мало.

А вот познавательная заметка про Активные Фазированные Антенные Решётки (АФАР), которая востребована и сейчас:

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



Комментировать »

Выпустил ежегодное обновление технического описания протокола TLS. Каких-то больших дополнений в этом году не вышло, но актуализировал весь текст. (Есть, впрочем, очень краткое новое приложение (В), посвящённое ГОСТ-TLS.)



Комментарии (2) »

Certificate Transparency – это набор связанных с иерархией Удостоверяющих Центров (УЦ) TLS технологий, который позволяет вести специальные логи выпускаемых и выпущенных сертификатов. Предполагается, что логи общедоступны, а их наличие позволит обнаружить сертификаты, выпущенные с нарушением правил. Чтобы усилить действие Certificate Transparency (CT), браузеры (или другие программы, которые выполняют валидацию сертификатов) могут требовать подтверждения того, что конкретный сертификат был учтён в том или ином логе CT. Удобная реализация такого требования подразумевает наличие некоторых подписанных ключами логов меток в составе самого сертификата. Такие метки называются SCT – Signed Certificate Timestamp.

Метку SCT выдаёт оператор CT-лога в ответ на добавление сертификата в лог. Когда Certificate Transparency первой версии только проектировали, то этот момент, к сожалению, не учитывали. Поэтому проявилась проблема “курицы и яйца”: чтобы выпустить сертификат с SCT-меткой – нужно получить метку, а чтобы получить метку – нужно выпустить сертификат (для того, чтобы отправить его в лог). В качестве некоторого “обходного решения” (“костыля” – скажут те, кто “хорошо в теме”) предложили ввести пресертификаты.

Пресертификат – он такой же, как и TLS-сертификат, но содержит специальное расширение (Poison), которое отмечено как критически важное (Critical), но при этом не должно распознаваться обычным валидатором. Хитрость, на которую делается расчёт, состоит в том, что, согласно рекомендациям, в случае обнаружения неизвестного расширения с флагом Critical процедура валидации должна считать сертификат не валидным. Все прочие поля пресертификата в точности совпадают с соответствующими полями сертификата, в этом весь смысл. Однако “отравленный” пресертификат как бы нельзя использовать на практике для аутентификации. И, обычно, это работает. Но, конечно, полагать, что все разнообразные валидаторы строго следуют рекомендациям по обработке расширений – слишком смело.

Тем не менее, пресертификаты широко используются в CT: УЦ, готовясь выпустить сертификат с SCT-меткой, прежде генерирует и подписывает пресертификат с теми же параметрами (имя, серийный номер и т.д.), но с poison-расширением, отправляет пресертификат в CT-лог, получает в ответ метку с подписью лога, которую уже размещает в полноценный сертификат. Таким образом в логе возникает отметка о пресертификате, которая позволяет получить все содержательные данные о сертификате. В сертификате же появляется SCT-метка, подтверждающая, что оператор лога видел сведения о сертификате. Валидность метки может проверить валидирующая программа – для проверки используется ключ лога. Этот процесс нарушает рекомендации по работе УЦ, поскольку запрещено выпускать два сертификата с одним серийным номером (и одним именем УЦ), но этот момент принято выносить за скобки.

Впрочем, во второй версии Certificate Transparency от пресертификатов отказались – для размещения сведений о сертификате используются сообщения другого формата, их формирование не требует выпуска как бы настоящего, но “испорченного” сертификата.



Комментировать »

В удостоверяющем центре ТЦИ (или в Центре Сертификации) появилась возможность выпуска сертификатов S/MIME, предназначенных для электронной почты – то есть, для подписывания и, соответственно, проверки подписи на email-сообщениях.



Комментировать »

Credit: Gilliet, B.Визирь поместил в тёмную комнату слона и позвал нескольких мудрецов, которые слона никогда не видели. Предупредив мудрецов о том, что в комнате слон, визирь предложил им пройти в комнату и “исследовать слона на ощупь”, а потом словами описать, какой он, этот загадочный слон. Посетившие комнату мудрецы сильно разошлись в своих описаниях слона: “он как толстое дерево”, “он как большая змея”, “он плоский, как лист пальмы”. Но слон-то был один, слон-то был един, а проблемы с предложенными его описаниями локализовались (во всех смыслах), как только визирь вывел животное из комнаты и представил взору мудрецов, но уже в статусе единого объекта.

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



Комментировать »

Bartolomeu Velho, 1568; WikimediaЕсли выбрать систему координат таким образом, что Солнце движется в ней прямолинейно со скоростью несколько сотен км/сек., то траектория Земли окажется кривой, напоминающей синусоиду. В этой системе координат Земля вовсе не “вращается вокруг Солнца”, в том “наивном” смысле, что не описывает окружность, в центре которой Солнце.

Для навигации на поверхности Земли – удобны другие системы координат, в которых Солнце вращается вокруг Земли, поскольку она зафиксирована. Расхожее утверждение, что “Земля вращается вокруг Солнца” – не более чем фигура речи, пусть и очень популярная. Например, для того, чтобы получить существенные вычислительные преимущества при предсказании астрономических событий Солнечной системы, наблюдаемых с Земли, самой по себе гелиоцентрической системы не достаточно, нужно ещё учитывать геометрию орбит планет, иначе потребуется, как и в развитом геоцентрическом случае, вводить множество дополнительных “параметров”, чтобы наблюдения как-то сходились с моделью.

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

Вернёмся к движению планет. То, что Солнце существенно больше Земли, а наблюдаемое движение светила по небу можно объяснить при помощи модели, в которой именно Земля движется вокруг, выяснили ещё древние греки. Но, скажем, измерение годичного параллакса звёзд, как подтверждение движения Земли по орбите, удалось произвести только в 19 веке. Следует ли считать, что до этого момента утверждение “Земля вращается вокруг Солнца” было всего лишь популярным обобщением? Нет, конечно. Это утверждение, в изолированной форме, и сейчас не несёт особого смысла. То есть, процесс выбора моделей мира был длительным, непростым, и не сводился к тому, как сейчас нередко принято объяснять: “Коперник открыл, что Земля вращается вокруг Солнца”. Никаких особенных причин утверждать, что именно Земля движется, нет, а практическое удобство гелиоцентрических систем совсем в другом.

Но главное полезное наблюдение состоит не в этом. Так, в разных системах отсчёта, в разных системах координат, движение светил будет описываться различными формулами, которым соответствуют различные траектории. Результаты нередко выглядят неожиданными: например, траектория Луны, движушейся вокруг Солнца, очень близка к окружности. Действительно, от одной формулы можно перейти к другой. Именно на этом уровне и образуется новое знание, отличающееся от простого заучивания кратких “утверждений”. Это знание позволяет понять, почему разные системы отсчёта, представленные в наивном виде (“Земля вращается вокруг Солнца”), как бы “противоречат” друг другу. То есть, знание, – по крайней мере, математическое, – здесь соответствует механизму разрешения противоречий. Этот механизм находится на пару уровней выше утверждения “Земля вращается вокруг Солнца”. Естественно, астрономические успехи связаны с определением и строгим формулированием элементов этого механизма. На первом этапе – понимание того, что наблюдаемая картина движения светил может быть интерпретирована различными способами. На втором – создание логических конструкций, позволяющих вычленить существенные характеристики того, как различные модели переходят одна в другую, с сохранением наблюдаемого результата. И уже на третьем этапе – выяснение причин такого перехода и их строгое описание. Простое утверждение “Солнце вращается вокруг Земли” не играет сколь-нибудь значительной роли, гораздо важнее понимание того, что подразумевается под “вращением”, насколько это понятие универсально.



Комментировать »

Сайт dxdt.ru переехал на другой сервер и к другому провайдеру.



Комментировать »

“Коммерсант” пишет про результаты соцопроса, которые связывает, ни много ни мало, с “уровнем научной грамотности” (“невысоким”).

“Как показал опрос ВЦИОМа, 35% россиян считают, что Солнце вращается вокруг Земли. О том, что Земля вращается вокруг Солнца, знает 61% респондентов.”

Понятно, что влияет массовый “научпоп”, а опрос – манипулятивный, но всё равно довольно забавно читать выводы о “научной грамотности”, сделанные по результатам ответа на довольно бессмысленный вопрос, который был сформулирован следующим образом: “Согласны ли вы с утверждением: «Солнце вращается вокруг Земли»?”. Проблема в том, что интерпретация предложенного утверждения зависит от используемой модели и системы координат. Так, можно выбрать систему с зафиксированной Землёй в начале координат и, в таком случае, Солнце вращается вокруг Земли. Подобная система оказывается удобной при решении определённых задач. Можно выбрать систему, где началом координат является Солнце, а Земля движется вокруг – такая система хорошо подходит для других задач. А можно привязать начало координат к какому-нибудь далёкому пульсару. Но все эти хитрости не делают конкретную систему “истинной” настолько, чтобы с ней соглашаться или нет. Поэтому, если уж и судить о “научной грамотности”, то, скорее, как раз по высокой доле “неочевидных” ответов.



Комментарии (3) »