SlideShare a Scribd company logo
1 of 19
Download to read offline
WTFPGA?!
Дмитрий Недоспасов <dmitry@h.rdw.re>
DC7499
• Закончил аспирантуру TU Berlin, тема новые виды анализа чипов
• Работаю совместно с Olivier THOMAS и Texplained SARL во Фрации
• Фрилансер и тренер “IC RE 101” и “Keep it Synple Stupid”
• Преподаю “Hardware Security” в TU Berlin
• Буду разрабатывать конкурента Yubikey
• Twitter: @nedos

Email: dmitry@h.rdw.re
Кратко обо мне...
Что такое FPGA?
WTFPGA?!
• FPGA - Программируемая
Пользователем Вентильная Матрица.
• Позволяет реализовать зачет
конфигурируемых логических
элементов логическую схему.
• Зачет этого возможно реализовать
логические и комбинаторные и сек.
логические схемы.
• С помощью тактового сигнала
возможно очень точно описать
поведение логической схемы.
Дизайн
Simluation
Synthesis
Place and Route
RTLRTLHDL
RTLRTL
RTL
Schematic
RTLRTLBitstream
Схемотехника
Simluation
Synthesis
Place and Route
RTLRTLHDL
HDL
• Логические схемы не “програмируют” их
“описывают” (HDL - Hardware Description
Language).
• Языки HDL описывают как меняется
состояние схемы и сигналов в
зависимости от состояния других сигналов
или в следующем тактовом цикле.
• В императивных языков все выполняется в
последовательно, в HDL всё выполняется
паралельно.
• Есть множество языков, самые
популярные это Verilog и VHDL.
Конечный Автомат
Figure 11: UART Timing Diagram
UART START
UART DATA
UART STOP
Default assignments
valid <= 1’b0;
etu cnt <= (etu cnt + 1);
state <= state;
bit cnt <= bit cnt;
data out <= data out; etu half
state <= ‘UART DATA;
etu cnt <= 9’d0;
bit cnt <= 3’d0;
data out <= 8’d0;
din == 1’b1
etu cnt <= 9’d0;
etu full
etu cnt <= 9’d0;
data out <= {din, data out[7:1]};
bit cnt <= (bit cnt + 1);
bit cnt == 3’d7
state <= ‘UART STOP;
etu full
etu cnt <= 9’d0;
state <= ‘UART START;
valid <= din;
Figure 12: UART receiver state machine.
RTL Схема
and4b3
rx_data[7]_GND_1_o_equal_2_o<7>1
I0
I1
I2
I3
O
and4b4
rx_data[7]_GND_1_o_equal_2_o<7>2
I0
I1
I2
I3
O
and2
rx_data[7]_GND_1_o_equal_2_o<7>3
I0
I1
O
rx_data[7]_GND_1_o_equal_2_o<7>_imp:1
rx_data[7]_GND_1_o_equal_2_o<7>_imp
rx_data(0)
rx_data(1)
rx_data(2)
rx_data(3)
rx_data(4)
rx_data(5)
rx_data(6)
rx_data(7)
rx_data(7)_GND_1_o_equal_2_o
and2b2
_n00851
I0
I1
O
or2
I0
I1
O
and2b1
I0
I1
O
Madd_bit_cnt[2]_GND_2_o_add_13_OUT1
Madd_bit_cnt[2]_GND_2_o_add_13_OUT1
DataA(2:0)
DataB(2:0)
Result(2:0)
or2
_n0094<1>1
I0
I1
O
Mmux_etu_cnt[8]_GND_2_o_mux_6_OUT1
Mmux_etu_cnt[8]_GND_2_o_mux_6_OUT1
Data0(8:0)
Data1(8:0)
Sel(0)
Result(8:0)
inv
din_GND_2_o_equal_5_o1
I O
Mmux__n00821
Mmux__n00821
Data0(2:0)
Data1(2:0)
Sel(0)
Result(2:0)
inv
_n0094_inv1
I O
Mmux_GND_2_o_etu_cnt[8]_mux_10_OUT1
Mmux_GND_2_o_etu_cnt[8]_mux_10_OUT1
Data0(8:0)
Data1(8:0)
Sel(0)
Result(8:0)
Mmux_etu_cnt[8]_GND_2_o_mux_20_OUT1
Mmux_etu_cnt[8]_GND_2_o_mux_20_OUT1
Data0(8:0)
Data1(8:0)
Sel(0)
Result(8:0)
Madd_etu_cnt[8]_GND_2_o_add_3_OUT1
Madd_etu_cnt[8]_GND_2_o_add_3_OUT1
DataA(8:0)
DataB(8:0)
Result(8:0)
fde
C
CE
D Q
Mmux_state[1]_etu_cnt[8]_mux_28_OUT1
Mmux_state[1]_etu_cnt[8]_mux_28_OUT1
Data0(8:0)
Data1(8:0)
Data2(8:0)
Data3(8:0)
Sel(0:1)
Result(8:0)
and3
bit_cnt[2]_PWR_2_o_equal_15_o<2>1
I0
I1
I2
O
etu_half<8>_imp
etu_half<8>_imp
etu_cnt(0)
etu_cnt(1)
etu_cnt(2)
etu_cnt(3)
etu_cnt(4)
etu_cnt(5)
etu_cnt(6)
etu_cnt(7)
etu_cnt(8)
etu_half
C
D
bit_cnt(2)_PWR_
uart_rx:1
rx_usb
clk
din
rst
top_sergio:1
clk
rx
target_rx
Simluation
Synthesis
Place and Route
RTLRTL
RTL
Schematic
Конфигурационный Файл
Simluation
Synthesis
Place and Route RTLRTLBitstream
Железо
Papilio Pro
Header
FPGA
FTDI
ARM Cortex M3
UART
JTAG
LPC1343
Comms
FTDI
TtyUSB0 TtyUSB1
FPGA
JTAG UART
UART
ARM Cortex M3
UART
reset
ПИН
Пароль
Password
Спасибо за внимание

More Related Content

Similar to Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!"

Nedospasov defcon russia 23
Nedospasov defcon russia 23Nedospasov defcon russia 23
Nedospasov defcon russia 23DefconRussia
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPILeonid Yuriev
 
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!Yandex
 
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.Cisco Russia
 
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекSWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекPython Meetup
 
Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Ontico
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20DefconRussia
 
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Yandex
 
Цифровая микроэлектроника для математиков и программистов 2017
Цифровая микроэлектроника для математиков и программистов 2017Цифровая микроэлектроника для математиков и программистов 2017
Цифровая микроэлектроника для математиков и программистов 2017Anton Moiseev
 
Test traffic 100G generator and analyzer
Test traffic 100G generator and analyzerTest traffic 100G generator and analyzer
Test traffic 100G generator and analyzerishevchuk
 
ML on the Edge - Highload++ Siberia 2019
ML on the Edge - Highload++ Siberia 2019ML on the Edge - Highload++ Siberia 2019
ML on the Edge - Highload++ Siberia 2019Andrey Tatarinov
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Platonov Sergey
 
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Ontico
 
разработка бизнес приложений (8)
разработка бизнес приложений (8)разработка бизнес приложений (8)
разработка бизнес приложений (8)Alexander Gornik
 
Unity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman ChehowskiUnity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman ChehowskiRoman Chehowski
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest
 
Эффективный C++
Эффективный C++Эффективный C++
Эффективный C++Andrey Karpov
 
Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»SpbDotNet Community
 
доклад про Llvm
доклад про Llvmдоклад про Llvm
доклад про LlvmVadim Evard
 

Similar to Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!" (20)

Nedospasov defcon russia 23
Nedospasov defcon russia 23Nedospasov defcon russia 23
Nedospasov defcon russia 23
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
 
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
 
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
 
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекSWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
 
Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20
 
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
 
Цифровая микроэлектроника для математиков и программистов 2017
Цифровая микроэлектроника для математиков и программистов 2017Цифровая микроэлектроника для математиков и программистов 2017
Цифровая микроэлектроника для математиков и программистов 2017
 
Test traffic 100G generator and analyzer
Test traffic 100G generator and analyzerTest traffic 100G generator and analyzer
Test traffic 100G generator and analyzer
 
ML on the Edge - Highload++ Siberia 2019
ML on the Edge - Highload++ Siberia 2019ML on the Edge - Highload++ Siberia 2019
ML on the Edge - Highload++ Siberia 2019
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
 
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
 
разработка бизнес приложений (8)
разработка бизнес приложений (8)разработка бизнес приложений (8)
разработка бизнес приложений (8)
 
Python и Cython
Python и CythonPython и Cython
Python и Cython
 
Unity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman ChehowskiUnity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman Chehowski
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
 
Эффективный C++
Эффективный C++Эффективный C++
Эффективный C++
 
Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»
 
доклад про Llvm
доклад про Llvmдоклад про Llvm
доклад про Llvm
 

More from Defcon Moscow

Defcon Moscow #0x0A - Dmitry Evteev "Pentest vs. APT"
Defcon Moscow #0x0A - Dmitry Evteev "Pentest vs. APT"Defcon Moscow #0x0A - Dmitry Evteev "Pentest vs. APT"
Defcon Moscow #0x0A - Dmitry Evteev "Pentest vs. APT"Defcon Moscow
 
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"Defcon Moscow
 
Defcon Moscow #9 - Mikhail Elizarov "MITM"
Defcon Moscow #9 - Mikhail Elizarov "MITM"Defcon Moscow #9 - Mikhail Elizarov "MITM"
Defcon Moscow #9 - Mikhail Elizarov "MITM"Defcon Moscow
 
Defcon Moscow #9 - Timur Yunusov "Особенности проведения социотехнического те...
Defcon Moscow #9 - Timur Yunusov "Особенности проведения социотехнического те...Defcon Moscow #9 - Timur Yunusov "Особенности проведения социотехнического те...
Defcon Moscow #9 - Timur Yunusov "Особенности проведения социотехнического те...Defcon Moscow
 
Defcon Moscow #9 - Ivan Novikov "ElasticSearch is secure?"
Defcon Moscow #9 - Ivan Novikov "ElasticSearch is secure?"Defcon Moscow #9 - Ivan Novikov "ElasticSearch is secure?"
Defcon Moscow #9 - Ivan Novikov "ElasticSearch is secure?"Defcon Moscow
 
Defcon Moscow #9 - Sergey Vishnyakov
Defcon Moscow #9 - Sergey VishnyakovDefcon Moscow #9 - Sergey Vishnyakov
Defcon Moscow #9 - Sergey VishnyakovDefcon Moscow
 
Denis Makrushin & Maria Garnaeva - DeanonymizaTOR
Denis Makrushin & Maria Garnaeva - DeanonymizaTORDenis Makrushin & Maria Garnaeva - DeanonymizaTOR
Denis Makrushin & Maria Garnaeva - DeanonymizaTORDefcon Moscow
 
Goltsev Yuriy - Ломать - не строить!
Goltsev Yuriy - Ломать - не строить!Goltsev Yuriy - Ломать - не строить!
Goltsev Yuriy - Ломать - не строить!Defcon Moscow
 
Oleg Kupreev - 802.11 tricks and threats
Oleg Kupreev - 802.11 tricks and threatsOleg Kupreev - 802.11 tricks and threats
Oleg Kupreev - 802.11 tricks and threatsDefcon Moscow
 

More from Defcon Moscow (9)

Defcon Moscow #0x0A - Dmitry Evteev "Pentest vs. APT"
Defcon Moscow #0x0A - Dmitry Evteev "Pentest vs. APT"Defcon Moscow #0x0A - Dmitry Evteev "Pentest vs. APT"
Defcon Moscow #0x0A - Dmitry Evteev "Pentest vs. APT"
 
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"
 
Defcon Moscow #9 - Mikhail Elizarov "MITM"
Defcon Moscow #9 - Mikhail Elizarov "MITM"Defcon Moscow #9 - Mikhail Elizarov "MITM"
Defcon Moscow #9 - Mikhail Elizarov "MITM"
 
Defcon Moscow #9 - Timur Yunusov "Особенности проведения социотехнического те...
Defcon Moscow #9 - Timur Yunusov "Особенности проведения социотехнического те...Defcon Moscow #9 - Timur Yunusov "Особенности проведения социотехнического те...
Defcon Moscow #9 - Timur Yunusov "Особенности проведения социотехнического те...
 
Defcon Moscow #9 - Ivan Novikov "ElasticSearch is secure?"
Defcon Moscow #9 - Ivan Novikov "ElasticSearch is secure?"Defcon Moscow #9 - Ivan Novikov "ElasticSearch is secure?"
Defcon Moscow #9 - Ivan Novikov "ElasticSearch is secure?"
 
Defcon Moscow #9 - Sergey Vishnyakov
Defcon Moscow #9 - Sergey VishnyakovDefcon Moscow #9 - Sergey Vishnyakov
Defcon Moscow #9 - Sergey Vishnyakov
 
Denis Makrushin & Maria Garnaeva - DeanonymizaTOR
Denis Makrushin & Maria Garnaeva - DeanonymizaTORDenis Makrushin & Maria Garnaeva - DeanonymizaTOR
Denis Makrushin & Maria Garnaeva - DeanonymizaTOR
 
Goltsev Yuriy - Ломать - не строить!
Goltsev Yuriy - Ломать - не строить!Goltsev Yuriy - Ломать - не строить!
Goltsev Yuriy - Ломать - не строить!
 
Oleg Kupreev - 802.11 tricks and threats
Oleg Kupreev - 802.11 tricks and threatsOleg Kupreev - 802.11 tricks and threats
Oleg Kupreev - 802.11 tricks and threats
 

Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!"