Как работает приставка к телевизору для просмотра цифровых каналов. Как работает электронная цифровая подпись Прибор В-Color DC1302

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

Roadmap

Это пятый урок из цикла «Погружение в крипту». Все уроки цикла в хронологическом порядке:

1. Генерация ключей

Причина стойкости RSA кроется в сложности факторизации больших чисел. Другими словами, перебором очень трудно подобрать такие простые числа, которые в произведении дают модуль n. Ключи генерируются одинаково для подписи и для шифрования.


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

2. Вычисление электронной подписи


3. Проверка электронной подписи


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

В общем, не стоит полагаться на стойкость этой схемы подписи RSA, особенно с такими «криптостойкими» ключами, как в нашем примере.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

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

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

Тебе наверняка знакомы римские и арабские цифры. В римской системе числа представляются в виде комбинации букв I, V, X, L, C, D, M, а в арабской с помощью комбинации символов 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Но существуют и другие формы представления числа. Одна из них -- это двоичная форма. Или, как её чаще называют, двоичная система счисления. В такой системе счисления любое число представляет собой последовательность только из "0" и "1".

Арабские Римские Двоичные
0 - 00
1 I 01
2 II 10
3 III 11

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

Независимо от того, с какой информацией работает цифровое устройство, глубоко внутри оно занимается обработкой чисел.

Почему именно "0" и "1", а не "0", "1" и "2", к примеру? На самом деле были вполне успешные попытки создать цифровую технику, которая использует не двоичную, а троичную систему исчисления ("0", "1" и "2"), но двоичная все же победила.

Возможно, победа досталась ей, потому что СССР развалился, а может потому, что "0" и "1" легче представить в виде электрических сигналов. А значит, цифровые устройства на основе двоичной системы исчисления проще и дешевле производить. Подробнее о двоичных числах я расскажу позже.

Структура цифрового устройства

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

Давай выберем что-нибудь из этого списка и посмотрим, как оно устроено. Пусть это будет микроконтроллер (МК)! Ладно, признаюсь. Микроконтроллер я выбрал неспроста. Дело в том, что именно появление микропроцессоров произвело настоящую революцию в электронике и выдвинуло её развитие на новый уровень.

МК является наиболее многочисленным и популярным видом микропроцессоров в мире. Особенным его делает то, что микроконтроллер представляет собой микро-PC -- целый компьютер в одной микросхеме. Представь себе компьютер размером, например, с копейку. Вот это и есть МК.

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

В наше время наибольшей популярностью пользуются, к примеру, микроконтроллеры AVR, PIC, ARM. Каждая из компаний, что выпускает перечисленные виды МК, производит десятки, если не сотни, разновидностей микроконтроллеров, предназначенных под все мыслимые и немыслимые задачи.

Как работает микроконтроллер

Несмотря на всю сложность конструкции настоящего микроконтроллера, рассказать, как он функционирует можно всего одним предложением: "В память микроконтроллера записывается текст программы, МК считывает команды из этой программы и выполняет их", -- вот и всё.

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

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

Большинство микроконтроллеров исповедуют RISC. Объясняется это тем, что при использовании сокращенного набора команд микроконтроллеры проще и дешевле для производства, их легче и быстрей осваивают разработчики аппаратуры. Между CISC и RISC много различий, но сейчас принципиально важно запомнить только то, что CISC -- много команд, RISC -- мало команд. Глубже с этими двумя идеями познакомимся как-нибудь в другой раз.

Что происходит, когда включается микроконтроллер?

Итак, давай представим идеальный мир, в котором у тебя есть МК и в его память уже записана программа. Или, как обычно говорят, МК "прошит" (при этом программу называют "прошивкой") и готов к бою.

Что произойдёт, когда ты подашь питание на свою схему с МК? Оказывается, ничего особенного. Там нет вообще никакой магии. Происходить будет следующее:

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

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

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

Как устроен типичный МК

Любая микропроцессорная система стоит на трёх китах:

  1. Процессор (АЛУ + устройство управления),
  2. Память (ROM, RAM, FLASH),
  3. Порты ввода-вывода .

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

МК, как я уже писал, тоже микропроцессор. Просто специализированный. Физическая структура микросхем МК разных серий может существенно различаться, но идейно они будут похожи и будут иметь такие, например, блоки как: ПЗУ, ОЗУ, АЛУ, порты ввода/вывода, таймеры, счетчики, регистры.

ПЗУ Постоянная память. Всё, что в неё записано, остаётся в ПЗУ и после того как устройство было отключено от питания.
ОЗУ Временная память. ОЗУ -- это рабочая память МК. В неё помещаются все промежуточные результаты выполнения команд или данные от внешних устройств.
АЛУ Математический мозг микроконтроллера. Именно он складывает, вычитает, умножает, а иногда и делит, сравнивает нолики и единички в процессе выполнения команд программы. Один из важнейших органов МК.
Порты I/O Просто устройства для общения МК с внешним миром. Без них ни во внешюю память записать, ни данные от датчика или клавиатуры получить нельзя.
Таймеры Готовил торт или курицу? Ставил таймер, чтобы он тебя оповестил, когда блюдо будет готово? Вот в МК таймер выполняет схожие функции: отсчитывает интервалы, выдаёт сигнал о срабатывании и т.д.
Счетчики Пригождаются, когда требуется что-либо подсчитать.
Регистры Самое непонятное слово для тех, кто хоть раз пытался освоить Асемблер самостоятельно. А между прочим они своего рода выполняют роль быстрой ОЗУ МК. Каждый регистр представляет собой своего рода ячейку памяти. И в каждом МК их всего несколько десятков.

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

Мозг микроконтроллера

Микропроцессор/микроконтроллер всегда работает по заложенной в него программе. Программа состоит из последовательности операций, которые МК умеет выполнять. Операции выполняются в ЦПУ -- это мозг микроконтроллера. Именно этот орган умеет производить арифметические и логические операции с числами. Но есть ещё четыре важных операции, которые он умеет делать:

  • чтение из ячейки памяти
  • запись в ячейку памяти
  • чтение из порта В/В
  • запись в порт В/В

Эти операции отвечают за чтение/запись информации в память и во внешние устройства через порты ввода/вывода. И без них любой процессор проверащается в бесполезный хлам.

Технически процессор состоит из АЛУ (калькулятор процессора) и управляющего устройства, которое дерижирует взаимодействием между портами ввода-вывода, памятью и арифметико-логическим устройством (АЛУ).

Память микроконтроллера

Ранее в таблице с типичными устройствами, входящими в МК, я указал два вида памяти: ПЗУ и ОЗУ. Различие между ними заключается в том, что в ПЗУ данные сохраняются между включениями устройства. Но при этом ПЗУ (ROM) довольно медленная память. Поэтому и существует ОЗУ (RAM), которая довольно быстра, но умеет хранить данные только тогда, когда на устройство подано питание. Стоит выключить устройство и все данные оттуда...пшик и нету.

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

В зарубежном мире ОЗУ и ПЗУ называют RAM и ROM:

  1. RAM (Random Access Memory) -- память со случайны доступом
  2. ROM (Read Only Memory) -- память только для чтения

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

ПЗУ

Сейчас всё больше получила распространение ПЗУ память типа FLASH (или, по-нашему, ЭСПЗУ). Она позволяет сохранять данные даже тогда, когда устройство выключено. Поэтому в современных МК, например в МК AVR в качестве ПЗУ используются именно FLASH-память.

Раньше микросхемы ПЗУ-памяти были однократно-программируемыми. Поэтому если были записаны программа или данные с ошибками, то такую микросхемы просто выкидывали. Чуть позже появились ПЗУ, которые можно было перезаписывать многократно. Это были чипы с ультрафиолетовым стиранием. Они довольно долго прожили и даже сейчас встречаются в некоторых устройствах из 1990-х...2000-х годов. Например, вот такая ПЗУ родом из СССР.

У них был один существенный минус -- при случайно засветке кристалла (тот, что виден в окошечке) программа могла быть повреждена. А также ПЗУ до сих пор работает медленней, чем ОЗУ.

ОЗУ

Оперативная память в отличие от ПЗУ, ППЗУ и ЭСПЗУ является энергозависимой и при выключении питания устройства все данные в ОЗУ пропадают. Но без неё не обходится ни одно микропроцессорное устройство. Так как в процессе работы требуется где-то хранить результаты вычислений и данные, с которыми работает процессор. ПЗУ для этих целей не подходит из-за своей медлительности.

ПАМЯТЬ ПРОГРАММ И ПАМЯТЬ ДАННЫХ

Помимо разделения на энергозависимую (ОЗУ) и энергонезависимую память в микроконтроллерах есть разделение на память данных и память программ. Это значит, что в МК есть специальная память, которая предназначена только для хранения программы МК. В нынешние времена обычно это FLASH ПЗУ. Именно из этой памяти микроконтроллер считывает команды, которые выполняет.

Отдельно от памяти программ существует память данных, в которую помещаются промежуточные результаты работы и любые другие данные, требующиеся программе. Память программ -- это обычное ОЗУ.

Такое разделение хорошо тем, что никакая ошибка в программе не сможет повредить саму программу. К примеру, когда по ошибке МК попытается записать на место какой-нибудь команды в программе случайное число. Получается что программа надёжно защищена от повреждения. Кстати, у такого разделения есть своё особо название -- "гарвардская архитектура".

В 1930-х годах правительство США поручило Гарвардскому и Принстонскому университетам разработать архитектуру ЭВМ для военно-морской артиллерии. В конце 1930-х годов в Гарвардском университете Говардом Эйкеном была разработана архитектура компьютера Марк I, в дальнейшем называемая по имени этого университета.

Ниже я схематично изобразил гарвардскую архитектуру:

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

ИЕРАРХИЯ ПАМЯТИ

КАК УСТРОЕН МОЗГ МИКРОКОНТРОЛЛЕРА

Ты уже значешь, что мозгом МК является ЦПУ -- центральный процессор, который состоит из АЛУ (арифметико-логическое устройство) и устройства управления (УУ). УУ дерижирует всем оркестром из памяти, внешних устройств и АЛУ. Благодаря ему МК может выполнять команды в том порядке в каком мы этого хотим.

АЛУ -- это калькулятор, а УУ говорит АЛУ что, с чем, когда и в какой последовательности вычислять или сравнивать. АЛУ умеет складывать, вычитать, иногда делить и умножать, выпонять логические операции: И, ИЛИ, НЕ (о них будет чуть позже)

Любой компьютер, МК в том числе, умеет сегодня работать только с двоичными числами, составленными из "0" и "1". Именно эта простая идея привела к революции в области электроники и взрывному развитию цифровой техники.

Предположим, что АЛУ надо сложить два числа: 2 и 5. В упрощенном виде это будет выглядеть так:

При этом УУ знает в каком месте памяти взять число "2", в каком число "5" и в какое место памяти поместить результат. УУ знает обо всём этом потому, что оно прочитало об этом в команде из программы, которую в данный момент прочитало в программе. Более подробно про арефмитические операции с двоичными числами и как устроен сумматор АЛУ изнутри я расскажу чуть позже.

Хорошо, скажешь ты, а что если нужно получить эти числа не из программы, а из вне, например, с датчика? Как быть? Вот тут в игру и вступают порты ввода-вывода, с помощью которых МК может принимать и передавать данных на внешние устройства: дисплеи, датчики, моторы, задвижки, принтеры и т.д.

ЛОГИЧЕСКИЕ ОПЕРАЦИИ

Тебе наверняка хорошо знакомо шуточное высказывание про "женскую логику"? Но речь пойдет не о ней, а логике в принципе. Логика оперирует причинно-следственными связями: если солнце взошло, то стало светло. Причина "солнце взошло" вызвала следствие "стало светло". При этом про каждое утверждение мы можем сказать "ИСТИНА" или "ЛОЖЬ".

Например:

  • "Птицы плавают под водой" -- это ложь
  • "Вода мокрая" -- при комнатной температуре это утверждение истинно

Как ты заметил, второе утверждение при определённых условиях может быть как истинным, так и ложным. В нашем компьютере есть только числа и инженеры с математичками придумали обозначать истину "1", а ложь "0". Это дало возможность записывать истинность утверждения в виде двоичных чисел:

  • "Птицы плавают под водой" = 0
  • "Вода мокрая" = 1

А ещё такая запись позволила математикам выполнять с этими утверждениями целые операции -- логические операции. Первым до этого додумался Джордж Буль. По имени которого и названа такая алгебра: "булева алгебра", которая оказалась очень удобной для цифровых машин.

Вторая половина АЛУ -- это логические операции. Они позволяют "сравнивать" утверждения. Базовых логических операций всего несколько штук: И, ИЛИ, НЕ, -- но этого достаточно, так как более сложные могут комбинироваться из этих трёх.

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

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

Логическое операция НЕ меняет истинность утверждения на противоположное значение. Это логическое отрицание. Например:

Солнце всходит каждый день = ИСТИНА

НЕ (Солнце всходит каждый день) = НЕ ИСТИНА = ЛОЖЬ

Благодаря логическим операция мы можем сравнивать двоичные числа, а так как наши двоичные числа всегда что-то обозначают, например, какой-нибудь сигнал. То получается, что благодаря булевой алгебре мы можем сравнивать настоящие сигналы. Этим логическая часть АЛУ и занимается.

УСТРОЙСТВО ВВОДА-ВЫВОДА

Наш МК должен общаться с внешним миром. Только тогда он будет представлять из себя полезное устройство. Для этого у МК есть особые устройства, которые называются устройствами ввода-вывода.
Благодаря этим устройствам мы можем посылать в микроконтроллер сигналы от датчиков, клавиатуры и других внешних приборов. А МК после обработки таких сигналов отправит через устройства вывода ответ, с помощью которого можно будет регулировать скорость вращения двигателя или яркость свечения лампы.

Подведу итоги:

  1. Цифровая электроника -- верхушка айсберга электроники
  2. Цифровое устройство знает и понимает только числа
  3. Любая информация: сообщение, текст, видео, звук, -- могут быть закодированы с помощью двоичных чисел
  4. Микроконтроллер -- это микрокомпьютер на одной микросхеме
  5. Любая микропроцессорная система состоит из трёх частей: процессор, память, устройства ввода-вывода
  6. Процессорс состоит из АЛУ и управляющего устройства
  7. АЛУ умеет выполнять арифметические и логические операции с двоичными числами

Оставайся с нами. В следующих статьях я расскажу более подробно как устроена память МК, порты ввода-вывода и АЛУ. А после этого мы пойдём ещё дальше и в итоге дойдём до аналоговой электроники.

p.s.
Нашёл ошибку? Сообщи мне!

/blog/tsifrovaya-elektronika-chto-eto/ В этом рассказе первые шаги в мир электроники делаются с необычного направления. Своё путешествие по электронике ты начинаешь с мира цифровой схемотехники, с микроконтроллеров 2016-11-17 2016-12-26 цифровая электроника, цифровая схемотехника, микроконтроллер, логические элементы

Большой радиолюбитель и конструктор программ

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

Создание ЭЦП

Существуют разные способы сформировать электронную цифровую подпись. На практике самым удобным и распространенным способом является создание ЭЦП с помощью двух ключей — открытого и закрытого. Оба этих ключа создаются с помощью специальной шифровальной программы (например, «Крипто-про»). Для создания закрытого ключа необходимо либо хаотично двигать мышку, либо бессистемно нажимать клавиши на клавиатуре. Программа преобразует эти движения в очень длинный набор символов (его размер 512 бит; о том, много это или мало — ниже, в разделе «Дополнительная информация»). Так создается закрытый ключ.

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

Зачем нужны удостоверяющие центры

Решают важнейшую задачу: они подтверждают подлинность информации о владельце ключа и его полномочиях. Если бы УЦ не существовало, любой, кто купил бы программу для шифрования, мог объявить свой открытый ключ ключом главного бухгалтера «Газпрома» или начальника инспекции по крупнейшим налогоплательщикам.

Поэтому бухгалтер (руководитель), для оформления электронной цифровой подписи должен предоставить в УЦ документы, удостоверяющие его личность, доверенность от компании и написать запрос на выдачу сертификата открытого ключа подписи. Центр выдает электронный и бумажный сертификаты открытого ключа подписи. Электронный сертификат — это файл, который представляет из себя открытый ключ клиента, подписанный ЭЦП удостоверяющего центра. Бумажный сертификат содержит следующие данные: открытый ключ ЭЦП, ФИО его владельца, срок действия сертификата (обычно один год), область применения ключа (перечень документов, которые можно подписывать с помощью ключа, на который выдан сертификат), информация об организации, представителем которой является владелец ключа.

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

Открытым шифруем, закрытым расшифровываем

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

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

После проверки инспекция отправляет организации протокол входного контроля. Инспектор подписывает протокол своим закрытым ключом. Затем шифрует протокол открытым ключом компании и направляет файл с зашифрованной информацией в адрес компании. Бухгалтер открывает зашифрованную в файле информацию своим закрытым ключом.

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

Что будет, если небрежно хранить закрытый ключ

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

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

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

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

Дополнительная информация
Насколько надежна ЭЦП

Как мы уже упоминали, размер закрытого ключа ЭЦП, используемой при сдаче отчетности, составляет 512 бит. Для того, чтобы понять, какую степень надежности обеспечивает такой размер ключа, приведем пример. На подбор ключа размером 72 бита у группы исследователей, использовавших сотни компьютеров, ушло три года. Размер нашего ключа — 512 бит. Условия проведенного эксперимента позволяют вычислить количество лет, которое потребуется на его подбор. Этот срок выражается числом со 130-ю нулями. Для сравнения: возраст Земли оценивается в 4,5 миллиарда лет, а миллиард — число с 9 нулями.

Чем ЭЦП отличается от старых шифровок

Одним из первых шифрование информации (криптографию) на практике применил император Гай Юлий Цезарь. Он отправлял в удаленные провинции послания, где вместо буквы A ставил букву D, вместо буквы B — букву E и т д. То есть использовал алфавитный сдвиг на три буквы. Этого было достаточно, чтобы враги, перехватившие послание, не могли его расшифровать. Зато адресаты в провинциях, которым секрет шифра был известен, легко читали распоряжения из столицы.
С тех пор прошло больше двух тысяч лет. За это время было придумано огромное множество шифров (у Цезаря это был простейший алфавитный сдвиг на 3 буквы, а в аппаратах-шифраторах второй мировой войны уже применялись жуткие тысячезначные числа). Однако вплоть до недавнего времени ничего принципиально нового наука о шифровании не изобретала. Суть оставалась прежней: до сеанса документооборота отправитель сообщения и его получатель должны были разделить секрет шифра (для чего требовалась либо личная встреча, либо использование каких-то сверхнадежных каналов связи). Такое шифрование, при котором участникам документооборота необходимо передать друг другу секрет шифра, называется симметричная криптография.

Однако в семидесятые годы прошлого века был изобретен принципиально новый способ криптографической защиты информации. Он не требует предварительного обмена секретом шифра, поэтому и был назван ассиметричной криптографией. Именно такой способ шифрования используется в работе ЭЦП. Чтобы послать кому-либо зашифрованную информацию, достаточно самому иметь ключи ЭЦП и знать открытый ключ адресата.

> Как работает цифровая камера

Цифровая камера захватывает свет и фокусирует его через объектив на сенсор, сделанный из кремния. Она состоит из сетки мелких фотоэлементов, которые чувствительны к свету. Каждый фотоэлемент называется пикселем, сокращение от «элемент изображения». Миллионы этих отдельных пикселей находятся в датчике цифровой зеркальной фотокамеры.

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

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

Глаз является относительно чувствительным детектором. Он может обнаружить один фотон, но эта информация не передается мозгу, потому что она не превышает минимального порога соотношения сигнала к шуму в схеме шумовой фильтрации в зрительной системе. Этот порог обуславливает поступление нескольких фотонов для фиксирования их мозгом. Цифровая камера почти также чувствительна, как глаза, и оба являются гораздо более чувствительными, чем фотопленка, которая требует множество фотонов для обнаружения.

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

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

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

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

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

Не все пиксели чувствительны к свету, только фотодиодные. Процент пикселей, которые является светочувствительными, называется коэффициентом заполнения. Для некоторых датчиков, таких как CMOD, коэффициент заполнения может быть только от 30 до 40 процентов всей площади фотоэлементов. Остальная часть области на CMOD -датчике состоит из электронных схем, таких как усилители и схемы шумоподавления.

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

Электроны генерируются тех пор, пока фотоны воздействуют на датчик в течение продолжительности воздействия или интеграции. Они хранятся в потенциальной яме до окончания облучения. Размер ямы называют полной емкостью, и это определяет, сколько электронов может быть собрано, прежде чем яма заполнится и зарегистрирует в полном объеме. В некоторых датчиках после заполнения одной ямы, электроны могут перекинуться на прилегающие ямы, вызывая блюминг, который виден в качестве вертикальных пиков на ярких звездах. Некоторые камеры имеют антиюлюминговые возможности для сокращения или предотвращения этого явления. Большинство DSLR-камер контролируют блюминг очень хорошо, и это не является проблемой для астрофотографии.

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

Не каждый фотон, попадающий на детектор, будет зарегистрирован. Количество, которое будет зарегистрировано, определяется квантовой эффективностью датчика. Квантовая эффективность измеряется в процентах. Если датчик имеет квантовую эффективность в 40 процентов, это означает, что четыре из каждых десяти фотонов, которые попадают на датчик, будут зарегистрированы и преобразованы в электроны. Согласно Roger N. Clarke, квантовый КПД в современных цифровых зеркальных камерах составляет от 20 до 50 процентов, в зависимости от длины волны. Топовые модели астрономических CCD-камер могут иметь квантовую эффективность до 80 процентов и более, хотя это относится к изображениям в градациях серого цвета.

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

Когда АЦ преобразователь оцифровывает динамический диапазон, он разбивает его в пошаговом режиме. Общее количество шагов задается битной глубиной преобразователя. Большинство камер DSLR работают с 12 битами (4096 шагов) тональной глубины.

Выходной сигнал датчика технически называется аналого-цифрового единицей (ADU) или цифровой номер (DN). Число электронов в ADU определяется коэффициентом усиления системы. Усиление 4 означает, что АЦ преобразователь оцифровывает сигнал так, что каждый ADU соответствует 4 электронам.

Класс экспозиции ISO соответствует классу скорости пленки. Это общая оценка чувствительности к свету. Цифровые датчики камеры имеют только одну чувствительность, но позволяют использовать различные настройки ISO путем изменения коэффициента усиления камеры. Когда усиление в два раза, то число электронов в ADU понижается в 2 раза.

При увеличении ISO в цифровой камере, меньше электронов преобразуются в один ADU. Повышение ISO уменьшает динамический диапазон. При ISO 1600 может быть использовано всего около 1/16 от полной емкости потенциальной ямы датчика. Это может быть полезно для астрономических изображений тусклых предметов, электроны от которых не могут быть собраны другим способом, чтобы заполнить потенциальную яму. Камера только преобразует небольшое количество электронов из этих редких фотонов и сопоставляет этот ограниченный динамический диапазон полной битовой глубине, при этом становится возможной большая дифференциации между шагами. Это также дает больше шагов, чтобы работать с этими слабыми данными, когда они растягиваются позже при обработке, чтобы увеличить контраст и видимость.

Для каждого пикселя в датчике, данные яркости, представленные числом от 0 до 4095 для 12-разрядного АЦ конвертера, вместе с координатами местоположения пикселя, хранятся в файле. Эти данные могут временно сохраняются во встроенной буферной памяти камеры, прежде чем записываются в съемной карте памяти камеры.

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

Это те цифры, которые производятся в процессе оцифровки, с которыми мы можем работать на наших компьютерах. Цифры представлены в виде битов, а представлении «двоичных цифр». Биты используют основание 2 в двоичной системе счисления, где есть только цифры один и ноль, а не на основе 10, где есть цифры от 0 до 9, с чем мы, как правило, работаем. Компьютеры используют двоичные числа, потому что транзисторы, из которых они сделаны, имеют только два состояния включено и выключено, которые представляются цифрами один и ноль соответственно. Все числа могут быть представлены таким образом. Это то, что делает компьютеры настолько мощными при работе с числами, транзисторы это делают очень быстро.

Пространственная выборка

Светочувствительный элемент в матрице камеры соответствуют один к одному с пикселями в цифровом изображении, когда он поступает на выход. Многие люди также называют такие элементы в матрице камеры общим термином "пиксели". Эти элементы расположены в прямоугольном массиве. В Canon 20D, массив 3504 х 2336 пикселей, что в общей сложности 8,2 миллиона пикселей. Эту сетку можно представить как шахматную доску, где каждый квадрат очень мал. Квадраты настолько малы, что, если смотреть с расстояния они заставляют глаз и мозг думать, что изображение является непрерывным. Если вы увеличите любое цифровое изображение до достаточно большого размера, вы сможете увидеть отдельные пиксели. Когда это происходит, мы называем изображение "нечетким".

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

Хотя цифровая камера может записывать 12 бит или 4096 шагов яркости информации, почти все выходные устройства могут отображать только 8 бит или 256 шагов в цветовой канал. Изначальные 12-битные (2 в 12 степени = 4096) входные данные должны быть преобразованы в 8 битные (2 в 8 степени = 256) данные для вывода.

В приведенном выше примере, номинальный пиксель имеет уровень яркости 252 в красном канале, 231 в зеленом канале, и 217 в канале сигнала синего цвета. Яркость каждого цвета может варьироваться от 0 до 255, при 256 общего количества шагов в каждом цветовом канале, когда он отображается на мониторе компьютера, или для вывода на настольном принтере. Ноль означает чистый черный цвет, а 255 указывает чистый белый.

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

Тональная выборка

Свет и тона в мире изменяются непрерывным образом. После захода Солнца в ясный день небо на западе варьируется от яркого вблизи горизонта до темно-голубого цвета над головой. Эти оттенки синего цвета постоянно меняться. Они плавно переходят от светлого к темному.

Цифровые камеры при измерении света разрывают его непрерывно изменяющиеся сигналы в дискретные шаги, которые могут быть представлены числами (цифры). Они оцифровывают изображение.

64 шага

32 шага

16 шагов

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

В приведенных выше примерах, мы можем увидеть эффект от различного числа тонов, когда мы переходим от черного цвета к белому. Мы можем четко дифференцировать небольшое количество тонов как прерывистость. Но когда число увеличивается, где-то около 128 шагов, они, кажутся непрерывными для нашего восприятия.

Компьютеры и цифры

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

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

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

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

Представление изображение в виде числа позволяет нам всецело управлять им. И, поскольку изображение является набором чисел, оно может быть дублировано любое количество раз без потери качества.

Линейные или нелинейные данные

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

Данные, полученные с помощью датчика CMOS в цифровой зеркальной фотокамере и записанные в сыром файле, являются линейными. Линейные данные, как правило, выглядят очень темными по сравнению с нормальным фотографиями (см. рисунок ниже).

Линейная кривая

Человеческое визуальное восприятие яркости лучше описывается логарифмической кривой, чем линейной кривой. Другие человеческие чувства, такие как слух, и даже вкус, также логарифмические. Это означает, что мы лучше различаем разницу на нижнем конце шкалы восприятия, чем мы на высоком конце. Например, мы можем очень легко отличить по весу один фунт и два фунта, когда мы их поднимем. Но у нас возникают трудности при попытке отличить вес в 100 фунтов и 101 фунтов. Тем не менее, разница же, один фунт.

Логарифмическая кривая

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

Из-за того, что человеческая визуальная система восприятия не работает в линейном порядке, нелинейный закон должен быть применен при "растяжке" линейных данных из цифровой зеркальной фотокамеры, чтобы тональность фотографий лучше соответствовала нашему визуальному восприятию. Эти нелинейные поправки делаются с помощью программного обеспечения внутри камеры при записи изображения в файл в формате JPEG. Если сырой файл сохраняется в камере, эти нелинейные корректировки делаются в программном обеспечении позже, когда данные открыты в программе обработки изображений.

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

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

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

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

В ярком изображении наклон верхней части кривой уменьшается в светлых областях изображения. Это сжимает тона и уменьшает контраст этих тонов в изображении.

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

© 2014 сайт

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

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

Принцип работы фотоматрицы

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

Существует два основных типа сенсоров: ПЗС (Прибор с Зарядовой Связью, он же CCD – Charge-Coupled Device) и КМОП (Комплементарный Металл-Оксид-Полупроводник, он же CMOS – Complementary Metal-Oxide-Semiconductor). Матрицы обоих типов преобразовывают энергию фотонов в электрический сигнал, который затем подлежит оцифровке, однако если в случае с ПЗС матрицей сигнал, сгенерированный фотодиодами, поступает в процессор камеры в аналоговой форме и лишь затем централизованно оцифровывается, то у КМОП матрицы каждый фотодиод снабжён индивидуальным аналого-цифровым преобразователем (АЦП), и данные поступают в процессор уже в дискретном виде. В целом, различия между КМОП и ПЗС матрицами хоть и принципиальны для инженера, но абсолютно несущественны для фотографа. Для производителей же фотооборудования имеет значение ещё и тот факт, что КМОП матрицы, будучи сложнее и дороже ПЗС матриц в разработке, оказываются при этом выгоднее последних при массовом производстве. Так что будущее, скорее всего, за технологией КМОП в силу чисто экономических причин.

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

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

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

Спасибо за внимание!

Василий А.

Post scriptum

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

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



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: