Г.А.Зорин

4.1.7. Дифференциальный анализ

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

К. Ясперс

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

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

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

При реализации метода целесообразно разделить весь процесс расследования на этапы (операции), четко разграничить блоки следственных действий, объединен­ных единой целью (идеей). Например, чтобы найти пре­ступника и преодолеть его ложные показания надо:

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

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

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

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

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

На рис. показаны два способа регистрации результатов термического анализа

Если образец нагревается с постоянной скоростью (рис. а) и его T s изменяется непрерывно, то зависимость температуры (рис. б) от времени линейна до начала эндотермического эффекта (до точки плавления T s). Далее вплоть до завершения плавления температура остается постоянной. Термический эффект проявляется в виде горизонтального участка (отклонения от основной наклонной линии). На рис. в приведена схема установки используемой в дифференциально-термическом анализе (ДТА).

Пока температуры эталона и образца одинаковы, их термо-ЭДС дифференциальной термопары равны 0. При возникновении процессов с изменением температуры T (сопровождается тепловыми эффектами) возникает некоторая разность температур DT между образцом и эталоном, которая регистрируется в виде нулевой величины. Когда в изучаемом объекте начинаются процессы, сопровождающиеся тепловыми эффектами, возникает разность температур DT между образцом и эталоном, которая регистрируется в виде ненулевой величины ЭДС дифференциальной термопары. Обычно используется и третья термопара, которая измеряет температуру нагревания блока. В результате получают зависимость DT от температуры (рис. г). На горизонтальной линии (базовой) при DT=0, заметен острый пик, связанный с тепловым эффектом в исследуемом образце. Температуру этого теплового эффекта принимают либо T 1 (температура начала отклонения от нулевой линии) либо T 2 (температура максимального отклонения от базовой линии). Температуру теплового эффекта выражают через T 2 . Аппаратурно величину пика на зависимости DT=f(T) можно значительно усилить, что дает возможность усилить любой минимальный тепловой эффект.

Приборы ДТА . Интервал рабочих температур 190 – 1600 0 С. образец берется в небольшом количестве (несколько миллиграммов) что дает возможность ликвидировать температурный градиент во всем образце. Скорость нагрева 1- 50 0 С/мин. При меньших скоростях чувствительность метода уменьшается, т.к. в некоторых случаях DT уменьшается с понижением скорости нагрева.

Применение ДТА и ТГА.

1. Метод ДТА более универсален по сравнению с ТГА, поскольку термогравиметрия используется только для изучения процессов с изменением массы.

2. Методом ДТА можно определить процессы идущие как с изменением массы, так и без нее (полиморфные превращения).

3. Весьма эффективно применение и ДТА и ТГА одновременно. В этом случае на кривых ДТА выделить тепловые эффекты, которые отвечают процессам, проходящим с изменением массы, и эффекты, соответствующие процессам, прошедшим без изменения массы.

Пример разложения каолина Al 4 (Si 4 O 10)(OH) 8 .


По данным ТГА в интервале 500 – 600 0 С происходит изменение массы образца, связанное с его дегидратацией. Дегидратация – эндотермический процесс, тепловой эффект которого можно обнаружить на ДТА.

Второй пик на кривой ДТА 950 – 980 0 С не имеет аналога на кривой ТГА он отвечает рекристаллизации дегидратированного каолина. Этот эффект экзотермический. Возникающая дегидратированная фаза при 600 – 950 0 С метастабильна, и ее распад связан с изменением энтальпии образца, что и приведено в виде экзотермического эффекта.

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

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

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

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

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

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

При классическом методе термического анализа (ТА) осуществляется непрерывная регистрация тепловых эффектов с помощью измерения температуры вещества через равные промежутки времени при нагревании или охлаждении с постоянной скоростью изменения температуры окружающей среды. Запись производится в координатах «температура вещества t − время t». В случае возникновения в веществе того ли иного превращения заметно меняется скорость его нагревания или охлаждения за счет выделения или поглощения тепла.

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

Рис. 4.1. Кривые нагревания

с эндо- 1 и экзоэффектом 2

Метод регистрации тепловых процессов в координатах «температура − время» (простая запись) недостаточно чувствителен. Особенно это относится к силикатным системам, где фазовые превращения сопровождаются малыми тепловыми эффектами (например, плавление − кристаллизация). Поэтому с целью увеличения чувствительности был разработан метод дифференциального термического анализа (ДТА), который имеет большой диапазон возможностей, его используют для решения следующих задач:

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

− качественный, а в некоторых случаях и количественный анализ механических смесей нескольких веществ;

− измерение температуры фазовых переходов индивидуальных веществ и систем, а также построение на их основе диаграмм состояния (диаграмм плавкости);

− установление кинетических и термодинамических параметров фазовых и химических превращений;

− определение теплофизических свойств веществ.

При проведении дифференциального термического анализа в процессе нагревания или охлаждения регистрируется разность температур между изученным веществом и эталоном. В качестве эталона выступает вещество, не имеюшее фазовых превращений в исследуемом интервале температур. Обычно при анализе неметиллических веществ в качестве эталонного вещества используют прокаленные при 1300°С оксид магния или оксид алюминия, а для низкотемпературных анализов − NaCl и KCl. Эталон и исследуемое вещество помещают одновременно в одну печь, чтобы они находились в одинаковом температурном поле.

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

Рис. 4.2. Схема дифференциальной термопары:

1 − гальванометр дифференциальной термопары;

2 − гальванометр простой термопары (стрелками

показано направление термотоков);

3 − исследуемое вещество; 4 − эталон

При одинаковом нагреве горячих спаев дифференциальной термопары возникающие в ней токи будут направлены навстречу друг другу и при их равенстве компенсироваться. В этом случае гальванометр дифференциальной термопары не покажает никакого отклонения (Dt = 0). Дифференциальная запись на термограмме получится в виде прямой линии, параллельной оси времени (нулевая или базисная линия). При проявлении теплового эффекта в веществе возникнет разность температур между исследуемым веществом и эталоном. Эндометрические эффекты отражаются на дифференциальной записи резкими отклонениями кривой в сторону оси абсцисс (вниз), а при экзоэффекте − в обратном направлении (вверх) (4.3, кривая ДТА).

Рис. 4. 3. Кривые дифференциальной (ДТА) и простой (ТА) записи:

t 1 и t 2 − температуры термоэффектов

Одна лишь дифференциальная запись не может быть полноценной, так как, обнаруживая даже самые незначительные термическое эффекты, она не позволяет определить температуры этих процессов. Поэтому ее комбинируют с простой записью (кривая ТА), получая таким образом одновременно две: простую − для определения температур эффектов и дифференциальную − для увеличения чувствительности установки. Для определения температур термоэффектов проецируют начало и максимумы отклонения дифференциальной записи на кривую температур (кривую простой записи).

Таким образом, такая запись является комбинацией простой (ТА) и дифференциальной (ДТА) записей. Одновременно с записью ТА и ДТА в современных приборах осуществляется запись еще двух кривых − термогравиметрической ТГ и дифференциальной термогравиметрической ДТГ. Кривая ТГ фиксирует величину потерь массы вещества при фазовых превращениях, а ДТГ − скорость изменения массы. Наличие таких кривых способствует интерпретации фазовых превращений в веществе, идущих с изменением массы.

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

T-тем-ра; t-время => T=f(t)

Эта зав-ть наз темпер кривой нагревания.Если в процессе нагревания в исслед вещ-ве происх какое-либо превращение(хим реакция),кот связ с поглощением или выделением теплоты,то зав-ть T=f(t) более или менее заметно отклоняется от прямолинейн направления:

Дифференциальные кривые нагревания.

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

К свободным концам подключ измерит прибор-минивольтметр.При наличии перепада температур между спаем и свободными концами в термопаре возн ЭДС,пропорц-е перепаду температур.Зная ЭДС и тем-ру свободных концов,опред тем-ру спая,кот помещают в исслед объект. В практике примен стандартн термопары из стандартн сплавов,для кот сущ градуировочн таблицы.В случ записи ДТА-кривых исп след схему.Спай 1ой термопары размещ в тигель с образцом,а спай др термопары-в тигель с инертным вещ-вом(с эталоном).Оба тигеля размещ в электропечи и нагрев в одинаков режиме.

Наиб часто использ платино-радий платиновые термопары,в кот 1 проволока из платины,2 из сплава платины и радия.Миливольтметр mV1 исп-ся для рег-ции темпер кривой,т.е. измер-е тем-ры образца в прцессе нагрева.Миливольтметр mV2 исп-ся для рег-ции ДТА-кривой,показ-й разность температур между образцом и эталоном.Если при нагреве в образце не происх никаких изменений, связ с выделением/поглощением тепла,то тем-ры образца и эталона одинаковые=>ЭДС обоих термопар тоже одинаковы и взаимокомпенсируют др друга,и прибор mV2 показывает 0.

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

ДТА-кривая предст собой набор пиков,направл вверх или вниз относительно нулевой или базисной линий.

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

Термогравиметрический анализ.(ТГМА)

При нагреве во многих в-вах происх эф-ты,связ с изменениемассы образца.Например,дегидратация,диссоциация,разложениеи и тд.Для того,чтобы получить И О термич поведен-и мат-лов использ запись изменения массы с течением времени в процессе нагрева в виде ТГМ кривых.Запись осущ с пом термовесов.В простейш случае держатель тигля с образцом размещ на 1 из плеч коромысла аналитич весов.Это позвол провод измерение ассы в процессе нагрева.

Обычно ТГ кривая и вид отдельного плато разделен ступеньками.

Наличие плато указывает на то,что масса образца не изм-ся.Ступенька показ. потерю массы,а её высота пропорц-на вел-не потери.В ряде случаев термо эф-ты с массов изенениями могут перекрываться,т.е. накладываться друг на друга.В этом случае ТГ кривая,назыв интегральной(показыв изменение m от начала до конца нагрева) не позвол колич-норазделить такие процессы.Для этого исп запись изменения в диф форме,т.е. одновременно записыв ДТГ кривую,показыв скорость изменения m.На такой кривой кажд эф-т изм-я m отображается в виде отрицательно направленного пика.

Площадь подпиком ДТГ-кривой пропорциональна величене изменения m.

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

1-тигель с образцом;2-держатель тигля;3-электропечь;4-коромысло весов;5-сердечник;6-цилиндрическая катушка;7-плоск.катушка;8-постоян магнит

Если в образце происх потеря m,коромысло весов будет смещаться,приводя в движение сердечник,кот смещ-ся внутри цилиндрич катушки, изменяя её индуктивность.Сигнал с дан катушки усилив-ся и записыв-ся в идее ТГ-кривой.Плоская катушка и магнит предст собой эл/механич дифференциатор.Если катушка движется между полосами магнита,в ней индуцир-ся ЭДС,её вел-натем больше,чем выше скорость движения катушки.При смещении коромысла катушка приходит в движение и возникающ в ней ЭДС усилив-ся и записыв-ся в виде ДТГ-кривой.Чем быстрее идёт потеря m,тем больше ЭДС и тем интенсивнее пик на кривой.

Диф. Термогравиметрическая кривая (ДТГ)

Обычно ДТГ кривые более воспроизводимы,чем ДТА кривые.По кривым ДТГ более точно опред-ся тем-ры начала и конца хим реакции, а по пику ДТГ кривой с большой точностью определяют те-ру max скорости реакции.ДТГ кривая позвол по max пиков лучше различить перекрывающиеся стадии реакции, а площадь заключ между пиком ДТГ кривой и нулевой линией соответствует изменению m образца в рез-те протекания отдельн стадий процесса.

Это - вторая статья из цикла «Криптография под прицелом» . Также стоит прочесть:

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

Вместо введения

Человек постоянно пользуется эффектами, которые проявляются при взаимодействии объектов, чтобы судить о свойствах самих объектов. С помощью такого подхода, например, было открыто строение атома. В начале XX века не было возможности увидеть сам атом, поэтому его строение представлялось в виде «булочки с изюмом», где в качестве изюма выступали электроны. Эта модель использовалась как основная до тех пор, пока Резерфорд и Гейгер не провели эксперимент по рассеиванию альфа-частиц в тонких пластинах. Эксперимент не позволил увидеть строение атома, но по второстепенному эффекту ученые смогли догадаться, что модель «булочки с изюмом» не работает. Другим очевидным примером служит вычисление объема тела произвольной формы. Самое простое, что можно сделать, - это опустить такое тело в воду и рассчитать объем по новому уровню воды. Похожие методы можно применить и для взлома криптографических алгоритмов.

В криптографии существует целый класс атак, называемых атаками по второстепенным каналам, которые используют физические параметры вычислительного устройства для определения ключей шифров. Основы атак были рассмотрены в предыдущей статье («Криптография под прицелом», #189), где секретный ключ алгоритма DES определялся по времени работы всего шифра. Если ты ее не читал, то настоятельно рекомендую это сделать, ибо в ней объясняется математическая составляющая атаки, а именно закон больших чисел Чебышева и коэффициент корреляции. В этой статье возвращаться к основам не будем, а больше сосредоточимся на микроэлектронике и статистике.

Скажи мне, как ты ешь, и я скажу... что ты ел

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

Как мы уже говорили, исполнение алгоритма изменяет свойства вычислительного устройства. Если ты до сих пор этому не веришь, то посмотри на рис. 1 и скажи, видишь ли ты AES. На нем изображено измерение входного напряжения всего микроконтроллера , которое обычно обозначается как Vdd . Это напряжение используется для работы всех блоков STM8, включая ЦПУ, память, устройства ввода/вывода и другие подсистемы. Измерение было сделано с помощью цифрового осциллоскопа Picoscope 3207A, пропускная способность которого 250 МГц. В данном случае интервал между двумя точками равен 352 нс, а на графике всего 19 886 точек. Так как частота микроконтроллера 16 МГц (период 62,5 нс), то в среднем напряжение измерялось для каждого 5-го такта, тем не менее раунды и даже операции каждого раунда могут быть явно различены (таблица замещения Sbox, перестановка MixColumn, сложение с ключом). Данный осциллоскоп позволяет уменьшить интервал вплоть до 100 пс (правда, в этом случае одно измерение будет содержать около 70 миллионов точек).

Несмотря на то что алгоритм AES симметричный, он имеет различное число базовых операций: 11 сложений с ключом, по 10 операций таблицы замены (Sbox), и лишь 9 операций над колонками MixColumn. На рис. 2 красным цветом выделены 11 сложений с ключом, зеленым цветом - 10 операций замены и черным цветом - 9 операций MixColumn. В начале и конце алгоритма могут происходить копирование или инициализация, поэтому они выделены синим цветом. Вообще, измеренное напряжение позволяет определить очень многое:

  1. Начало и окончание работы шифра, которые позволяют определить время работы всего шифра.
  2. Начало и окончание работы каждого раунда, которые опять же позволяют определить время работы раунда.
  3. Операции каждого раунда: сложение с ключом, таблица замены Sbox и так далее.

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

МОПсы и их питание

Большинство современных вычислительных устройств создается по технологии КМОП (комплементарная структура металл - оксид - полупроводник). Технология замечательна тем, что микросхема практически не потребляет энергии в статическом состоянии, то есть когда не производится никаких вычислений. Это сделано для того, чтобы сберечь твой кошелек и позаботиться об окружающей среде, так как материалы для этой технологии (в основном кремний) широко распространены. Энергия в этом устройстве потребляется только в момент транзакции, то есть когда 1 заменяется на 0 или 0 заменяется на 1 . Например, если на входы логического элемента И подаются два стабильных сигнала, то логический элемент не потребляет энергию (ну только самую малость). Если хотя бы одно входное значение изменяется, то происходит переключение транзисторов, которое требует энергии. Еще раз: если в течение минуты на вход элемента И подавались стабильные неизменные сигналы, то он не потреблял энергию, а вот если за эту минуту хотя бы один из входных сигналов поменялся, то в момент изменения энергия была затрачена на «пересчет» выходного значения. Таким образом, логические элементы - это один из потребителей энергии.

В микросхеме, помимо логических элементов, есть еще регистры, хранящие промежуточные значения вычислений. В отличие от логических элементов, для работы регистров требуется синхросигнал, который будет синхронизировать операции в микросхеме. Синхросигнал обычно имеет прямоугольную форму фиксированной частоты, например, STM8 Discovery использует 16 МГц, а современные процессоры от Intel и AMD способны работать выше 3,5 ГГц. Переключение регистра происходит следующим образом: на первый вход регистра подается сигнал от логических элементов, этот сигнал должен быть получен заранее и уже более не должен обновляться в данный такт. На второй вход регистра подается синхросигнал, в момент, когда синхросигнал переключается с низкого на высокое значение, происходит перезапись регистра и, соответственно, потребление энергии. Поэтому вторым и основным источником потребления энергии являются регистры памяти.

МОПсы и их поведение

На рис. 3 схематично изображена система любой инструкции или любого аппаратного дизайна. Есть регистры общего назначения R1 и R2 , которые хранят промежуточные значения вычислений. Есть «облако» логических элементов, которое позволяет выполнять те или иные операции (сложение, умножение, операции сдвига и так далее). Облако логических элементов, равно как и регистры общего назначения, контролируется регистрами специального назначения. Именно они определяют, какая операция будет выполняться и в какой момент.


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

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

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

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

Дифференциальный анализ питания. Теория

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

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

Дифференциальный анализ питания проходит в несколько этапов. Вначале определяется целевой регистр, то есть инструкция, результат работы которой ты будешь атаковать. Внимательно прочти еще раз, ты будешь атаковать не саму инструкцию, а ее результат, то есть значение, записываемое в регистр. Целевой регистр может использоваться несколько раз, и, как ты увидишь, это повлияет на атаку. Результат работы инструкции должен зависеть от известных тебе данных (исходных текстов или шифротекстов) и от неизвестного значения ключа. Для AES-128 обычно используют операции, связанные с одной таблицей замещения Sbox, так как в этом случае ключ можно искать побайтово, плюс Sbox нелинейная операция, и она позволяет быстрее отбросить неправильные значения ключей. Во время каждого шифрования измеряется кривая напряжения, затем с помощью известных данных и неизвестного ключа вычисляется значение целевого регистра (как это делается - объясняется ниже). Из этого значения выбирается один бит (например, первый), и все кривые напряжения разделяются на две группы. В первую группу (группа 1) входят те кривые, для которых этот бит установлен в 1, во вторую группу (группа 0) входят те кривые, для которых этот бит равен 0. Затем вычисляется среднее арифметическое каждой группы и рассматривается их разность, собственно поэтому анализ и называется дифференциальным. Если модель и ключ были верны, то на разности средних арифметических в тот момент, когда использовался результат моделируемого регистра, можно увидеть значительный всплеск. Теперь рассмотрим все более детально.

Дифференциальный анализ питания. Все об AES

Если нам доступны шифротексты, то мы можем моделировать результат Sbox последнего раунда. Мы знаем, что первый байт шифротекста вычислялся следующим образом: С(1) = Sbox xor K10(1) , где S9(1) - это первый байт результата работы девяти раундов, а K10(1) - это первый байт ключа последнего раунда. Согласно алгоритму AES, значение S9(1) должно быть получено, чтобы рассчитать конечное значение шифротекста, пропустить вычисление S9(1) невозможно, просто потому, что так задан алгоритм. Мы работаем с 8-битным микроконтроллером и незащищенной реализацией алгоритма AES, поэтому, скорее всего, значение S9(1) было получено и сохранено вначале в регистре (значение нужно получить, а все результаты вначале записываются в регистры общего назначения), а затем в стеке, чтобы использоваться в следующем раунде. Таким образом, мы определились с целевой инструкцией, которая зависит как от ключа, так и от шифротекста, плюс это нелинейная операция, что помогает в атаках по второстепенным каналам.

Давай выберем первый бит значения S9(1) = InvSbox[С(1) xor K10(1)] , с помощью которого мы будем классифицировать кривые напряжения. Оставшиеся биты можно использовать для улучшения/ускорения вычисления ключа, но мы пока будем работать лишь с одним первым битом.

Помнишь, мы говорили, что энергия переключения из 1 в 0 и из 0 в 1 отличается. Мы можем смоделировать результат, который должен быть записан в регистр, но мы не знаем предыдущее значение регистра, поэтому точно не можем определить, было ли переключение или нет. На самом деле это и не нужно. Мы просто полагаем, что предыдущее значение регистра не зависело линейным образом от нового значения. Попробую объяснить на примере. У нас есть N шифротекстов. Так как алгоритм AES все перемешивает и переставляет, то примерно в половине случаев из этих N шифротекстов наш искомый бит будет равен 1 , а в другой половине он равен 0 . Предположим теперь, что предыдущее значение регистра хранило промежуточный «случайный» результат шифра (результат другой Sbox, к примеру). Когда наш моделируемый бит равен 1 в половине случаев, предыдущее значение регистра было 0 (то есть в четверти случаев от N), и примерно в четверти случаев переключение будет происходить, а в четверти нет. То же самое с нулем: в среднем переключение из 1 в 0 будет у N/4 шифрований, и в оставшейся части переключений не будет (0 перезапишет 0). Получается, что среди N шифрований будет N/4 переключений из 0 в 1 и примерно столько же переключений из 1 в 0 .

Если предыдущее значение регистра было постоянным, например в нем записывался счетчик цикла, то он всегда равен либо 1 , либо 0 . В этом случае еще проще, так как одна из двух групп, созданных по моделируемому биту, будет всегда переключаться, а другая никогда.

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

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

Давай разберем, почему все остальные точки на разности средних арифметических будут стремиться к нулю. Это опять действует закон Чебышева: так как мы сортировали кривые с помощью нашего целевого регистра, то, скорее всего, все остальные инструкции будут случайным образом попадать в обе группы, следовательно, среднее арифметическое двух групп для всех остальных инструкций будет сходиться к одному и тому же значению. Таким образом, разность средних арифметических будет сходиться к нулю во всех точках, за исключением инструкций, которые тем или иным образом зависят от выбранного бита целевого регистра. Иногда, правда, можно встретить «призрачные» всплески. Они возникают в случае, если бит целевого регистра влияет на дальнейшие вычисления, но «призрачные» всплески можно использовать во благо, если понимать, откуда они берутся.

Дифференциальный анализ питания. Практика

Перейдем наконец от теории к практике. С помощью того же самого осциллоскопа было измерено напряжение для 10 тысяч шифрований. Чтобы убрать шумы, каждое шифрование выполнялось 1000 раз, а напряжение усреднялось. Дискретизация была увеличена в два раза, поэтому каждая кривая напряжения содержит 40 500 точек. Мы будем атаковать операцию, использующую значение регистра S9(1) = InvSbox[С(1) xor K10(1)] . Как ты потом убедишься, таких операций несколько. Для этого мы воспользуемся первым байтом каждого шифротекста и рассчитаем результаты регистра для всех шифрований и всех возможных значений байта ключа (см. табл.).

На основе значений из колонки 4 (первый бит S9(1) для ключа 0х00) таблицы мы отберем в группу 1 все кривые напряжений шифрований, для которых целевой бит S9(1) равен 1 , а в группу 0 - все кривые напряжений шифрований, для которых этот бит равен 0 . Теперь построим разность средних арифметических двух групп. Проделаем точно такую же операцию для оставшихся 255 ключей и построим их графики, как это сделано на рис. 4. Как видно из этого рисунка, у одного ключа есть значительный выброс ближе к концу шифрования, его увеличенное изображение показано на рис. 5.


На нем мы видим три всплеска (они пронумерованы от 1 до 3). Третий пик я бы объяснил тем, что значение S9(1) считывается из стека для вычисления Sbox, так как оно находится в зоне выполнения Sbox последнего раунда (от 6200 до 6420 - это зона Sbox и Shift Rows). А вот два предыдущих пика объяснить чуть сложнее. Второй пик связан с операцией сложения с ключом, когда значение S9(1) было непосредственно получено, а самый первый пик связан с операцией MixColumn (так как находится в зоне MixColumn). Здесь важно понимать, что сложение с ключом - это линейная операция, и если бит ключа равен 1 , то до сложения с ключом значение битов из таблицы было точно противоположным. Если бит ключа равен 0 , то биты до сложения с ключом были точно такие же. До сложения с ключом значение байта должно быть получено после операции MixColumn , и именно этот момент, когда происходит получение байта нашего ключа, мы видим на графике. Так как пик направлен в противоположную (отрицательную сторону), то, скорее всего, группы 1 и 0 поменялись местами (мы из меньшего вычитаем большее), то есть в группе 1 были все шифрования, для которых бит установлен в 0, а в группе 0 все шифрования, для которых бит установлен в 1. Это возможно в случае, если бит ключа равен 1, так как в этом случае наша модель из таблицы будет строго противоположной и это приведет к тому, что пик будет отрицательным.

Чтобы найти ключ, обычно строят график максимальных значений для ключа, как показано на рис. 6. Видно, что значение ключа 208=0хD0, наибольшее, и этот ключ, скорее всего, является верным.


Ради сравнения построим те же самые графики, но в качестве целевого бита выберем восьмой бит значения S9(1) (наименее значимый бит). Согласно предыдущим расчетам, этот бит должен быть равен 0, поэтому на рис. 8 мы должны увидеть первый пик в положительной зоне, а не в отрицательной, как это было для первого бита. Также мы должны получить тот же самый ключ, ибо он не менялся, а менялся лишь бит для атаки. Все пики должны быть в те же самые моменты времени, ибо сама операция место не поменяла. Картинки 7–8 получились согласно нашим гипотезам, плюс ко всему максимальное значение разности средних было получено для одного и того же значения ключа на разных целевых битах, поэтому, скорее всего, мы нашли правильный байт ключа (на микроконтроллере был ключ, взятый из стандарта AES, так что можешь проверить все его байты).



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

Что посмотреть?

Я уверен, что у тебя осталось множество вопросов по самой атаке. Предлагаю тебе поискать ответы в Сети. Для этого можно воспользоваться scholar.google.com и ключевыми словами: differential power analysis, power analysis attacks. Существует специальный сайт dpacontest.org, которые проводит соревнования по скорости и точности применения атак по второстепенным каналам. На этом сайте есть примеры кода и множество данных для атак. Ну и следи за различными событиями в России, где даются практикумы по этим атакам. Также советую взглянуть на материалы таких конференций, как COSADE, CHES и CARDIS.

Заключение

Ничто не происходит бесследно, в том числе выполнение криптографических алгоритмов. Во время исполнения шифров информация утекает по второстепенным каналам, например потребленной энергии. Чтобы произвести вычисление, нужно затратить энергию, поэтому полностью защититься от атак по второстепенным каналам невозможно, эта проблема фундаментальна. В статье показано, как в действительности проходит атака и как найти ключ шифра на примере AES-128, исполняемого на микроконтроллере STM8. Для нахождения ключа использовано минимум информации о модели потребленной энергии, но и ее было достаточно, чтобы успешно взломать алгоритм. Статья демонстрирует одну из первых атак, созданных в 1996 году, а с тех пор анализ по второстепенным каналам значительно эволюционировал. Частично улучшенные методы атаки будут рассмотрены в следующей статье, поэтому, как обычно, stay tuned...