• Представление произвольных полиномов в виде конечных разностей с произвольным шагом

      Введение


      В данной статье рассматривается возможность представление произвольного полинома произвольной целой степени n в виде конечных разностей. Подход в данной статье отличается от уже имеющихся тем, что все формулы выводятся для произвольного полинома с произвольными коэффициентами, а также тем, что в качестве интервала между точками используется произвольный, а не единичный интервал. Полученные формулы универсальны, и могут без изменения использоваться как для вычисления «будущих», так и «прошлых» значений полинома. То есть, например, для любой кривой, выраженной квадратичным уравнением с произвольными коэффициентами, можно вычислить все значения имея лишь 3 заранее известных значения y, взятые через произвольный равный интервал φ. Как следствие, вводится утверждение, что через (n+1) равноотстоящих точек может быть проведена одна и только одна кривая, выраженная полиномом степени n.
      Читать дальше →
    • ASN1js и PKIjs — год после создания

        Почти год назад я рассказал о новых библиотеках PKIjs и ASN1js. Пришло время рассказать о развитии этих библиотек. Для ASN1js за это время были сделаны в основном «косметические» изменения. Из существенных изменений можно заметить только возможность конвертации любых объектов ASN.1 в JSON формат. А вот с PKIjs произошли более существенные перемены.

        Итак, текущие основные особенности PKIjs:
        • Полная поддержка Web Cryptography API;
        • Ограниченная возможность использования как в iPhone (через использование Safari), так и в Android приложениях (Google Chrome);
        • Расширилось количество примеров. В частности, добавились примеры использования PKIjs для проверки подписей в PDF файлах и для проверки подписей в S/MIME;
        • Использование всех алгоритмов подписи из Web Cryptography API:
          • RSASSA-PKCS1-v1_5 (PKCS#1 v1.5);
          • RSA-PSS (PKCS#1 v2);
          • ECDSA (подпись на ECC, Elliptic Curve Cryptography);
        • Первая реализация «certificate chain verification engine» (верификация цепочки сертификатов) на чистом JavaScript и проходящая основные тесты NIST;
        • Первая и пока единственная реализация «Suite B» для подписи и шифрования данных в виде CMS (Cryptographic Message Syntax) в «open-source» на чистом JavaScript;
          • Подпись CMS с помощью ECDSA;
          • Шифрование с применением схем «ephemeral-static» ECDH;
          • Использование AES-CBC и AES-GCM;
          • Использование расширенного списка алгоритмов хеширования: от SHA-1 до SHA-512;
          • Возможность создания зашифрованных сообщений на основе использования пароля с использованием алгоритмов серии AES;

        Читать дальше →
      • PKI (Public Key Infrastructure) с помощью JavaScript? Теперь это возможно с помощью библиотек PKIjs и ASN1js

          Представляю вашему вниманию две библиотеки, реализующие практически полный спектр требуемого функционала для организации инфраструктуры PKI: PKIjs и вспомогательную библиотеку ASN1js. Библиотеки свободны доступны и распространяются по лицензии, позволяющей использовать их код без особых ограничений, даже в коммерческих продуктах. Полный код данных библиотек доступен на GitHub: PKIjs + ASN1js.

          Дабы привлечь читателей прямо во введении приведу краткий список особенностей вышеупомянутых библиотек:
          1. Объектно-ориентированный код;
          2. Работа с HTML5 (ArrayBuffer, Promises, WebCrypto (используется «dev nightly build» Google Chrome));
          3. Возможность создавать, проверять, получать внутренние данные, изменять данные для следующих объектов:
            1. Сертификаты X.509
            2. Списки отзыва (CRL) X.509
            3. Запросы на сертификат (PKCS#10)
            4. OCSP запросы;
            5. Ответы OCSP сервера
            6. Time-stamping (TSP) запросы
            7. Ответы TSP сервера
            8. CMS Signed Data
            9. CMS Enveloped Data

          4. Реализация собственной «certificate chain validation engine» на JavaScript;
          5. … И многое другое! Смотрите под катом!


          Читать дальше →
        • Обзор форматов стандарта CAdES

            Данная статья представляет собой обзор стандарта CAdES (CMS Advanced Electronic Signatures). Статья была написана как на основе теоретических исследований, проведённых автором, так и на основе написания собственной реализации создания и проверки подписей форматов CAdES.

            В статье представлена информация из последней версии данного стандарта, имеющей номер 2.2.1 и опубликованной в апреле 2013-го года (все версии стандарта CAdES можно получить по следующей ссылке: www.etsi.org/deliver/etsi_ts/101700_101799/101733). В настоящее время в процессе создания находится новый документ описывающий стандарт CAdES и обозначаемый «EN 319-122». Черновой вариант (draft) данного документа можно найти по следующей ссылке: docbox.etsi.org/esi/Open/Latest_Drafts.

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

            Стандарт CAdES невозможно анализировать без первичного анализа стандарта CMS (Cryptographic Message Syntax). В связи с этим в статье также представлен первичный анализ данного стандарта, а также мотивы, связанные с появлением идей и решений, представленных в стандарте CAdES.

            Для понимания статьи от читателя требуется общее знание основ создания электронно-цифровых подписей и (в меньшей мере) знакомство с общей нотацией ASN.1.
            Читать дальше →
          • Free ASN.1:2008 compliance test suite

              Ранее я уже представлял на данном ресурсе свою статью ASN.1 простыми словами. Теперь я публикую свой новый труд — свободно распространяемый набор тестов для проверки совместимости со стандартом ASN.1:2008. А точнее даже два своих труда — как дополнение к предлагаемому набору тестов я предлагаю свой собственный ASN.1 BER кодировщик/декодировщик (в исходных текстах), который на 100% удовлетворяет требованиям предлагаемого мною набора тестов. Ниже дано более подробное описание всего комплекса.
              Читать дальше →
            • ASN.1 простыми словами (часть 3, заключительная)

                Продолжаю публикацию своей статьи "ASN.1 простыми словами". Предыдущие части статьи, размещённые на Хабре, можно найти здесь: ASN.1 простыми словами (кодирование типа REAL) и ASN.1 простыми словами (часть 2).
                Читать дальше →
                • +9
                • 14.7k
                • 4
              • ASN.1 простыми словами (кодирование типа REAL)

                Введение для Хабра


                Приведённый ниже текст является на самом деле первыми двумя главами моей статьи "ASN.1 простыми словами". Так как сама статья достаточно большая по меркам Хабра я решил сначала проверить являются ли знания по кодированию простых типов востребованными на этом ресурсе. В случае положительной реакции аудитории я продолжу публикацию всех остальных глав.


                Читать дальше →