WEBVTT 00:00:00.000 --> 00:00:16.050 33C3 Музика 00:00:16.050 --> 00:00:22.529 Геральд: Добре, привітайте Пола ван Обела, аспіранта Університету Радбуда 00:00:22.529 --> 00:00:29.540 в Неймегені, і він збирається виступити з доповіддю про фізично неклоновані функції. 00:00:29.540 --> 00:00:31.258 Поаплодуємо, будь ласка. 00:00:31.258 --> 00:00:38.809 оплески Дякую. 00:00:38.809 --> 00:00:42.250 Пол: Дякую, дякую за запрошення, дякую, що запросили в прайм-тайм, 00:00:42.250 --> 00:00:45.329 коли всі нарешті прокидаються, але ще не п'яні. 00:00:45.329 --> 00:00:46.329 тихий сміх 00:00:46.329 --> 00:00:52.680 І дякую, що дозволили мені позмагатися з з космічним треком. Отже, мій Геральд 00:00:52.680 --> 00:01:00.350 пояснив, хто я такий, але робота в цьому виступі, взагалі-то, не моя. Це 00:01:00.350 --> 00:01:06.300 багатьох авторів, і цитати будуть майже на кожному слайді. Не звертайте 00:01:06.300 --> 00:01:10.680 на них увагу. Мені було дуже важко зробити два різних набори 00:01:10.680 --> 00:01:17.040 слайдів. Завантажте слайди пізніше, якщо щось вас зацікавило. Весь задум 00:01:17.040 --> 00:01:20.720 - зацікавити вас цим матеріалом, щоб ви почали читати статті, 00:01:20.720 --> 00:01:25.220 і змусити вас впроваджувати ці речі самостійно. Отже, без зайвих сумнівів і 00:01:25.220 --> 00:01:30.790 без подальшої егоцентричної балаканини, давайте подивимось на проблему, яку намагаємось 00:01:30.790 --> 00:01:40.330 вирішити. У сфері комп'ютерної безпеки, з 1980-х років помітили, що може знадобитися 00:01:40.330 --> 00:01:46.040 унікальна ідентифікація та автентифікація пристроїв. А потім, зокрема, інтегровані 00:01:46.040 --> 00:01:52.420 схеми. Отже, ми хочемо відрізнити мікросхеми, унікально, від однакових 00:01:52.420 --> 00:02:00.230 виробничих масок, рівномірно, і з високою точністю, безпомилково. Ех, легке завдання, 00:02:00.230 --> 00:02:07.290 чи не так? Отже, щоб пояснити, як ми отримуємо до фізично неклонованих функцій, 00:02:07.290 --> 00:02:11.260 я спочатку поясню трохи історії боротьби з підробками. І 00:02:11.260 --> 00:02:15.630 боротьба з підробкою, ви можете думати про гроші, ви можете уявити собі картки з магнітною стрічкою, 00:02:15.630 --> 00:02:22.420 що посвідчують особу, і лічильники ядерних бомб, або, як їх зазвичай 00:02:22.420 --> 00:02:28.960 називають «Договір з обмеженою річчю» ідентифікатори. Давайте почнемо з 00:02:28.960 --> 00:02:35.910 грошей. Історично склалося так, що гроші були захищені дуже складними зображеннями. 00:02:35.910 --> 00:02:41.981 Це приклад після Революції Гідності в США, і мені особисто дуже подобається, 00:02:41.981 --> 00:02:47.011 скажімо, «Підробляти - це смерть». Тому що, знаєте, хоча це був 00:02:47.011 --> 00:02:52.600 злочин проти держави, вас було витягнуто і четвертовано, коли це зробили. Тоді ми 00:02:52.600 --> 00:02:56.340 перемотаємось на кілька століть вперед, я б хотів дізнатися у глядачів, хто 00:02:56.340 --> 00:03:02.260 коли-небудь бачив таке? ... Досить часто. Хто-небудь може сказати мені, що це? 00:03:02.260 --> 00:03:04.870 коментарі аудиторії (не чути) 00:03:04.870 --> 00:03:12.610 Сузір'я Євросоюзу. Воно призначене щоб запобігати ксероксам 00:03:12.610 --> 00:03:17.220 копіювати ваші гроші. Отже, коли ксерокс виявить цю штуку, він просто 00:03:17.220 --> 00:03:22.290 не... він скаже: «Я не хочу копіювати». Ви можете використовувати це на своїх 00:03:22.290 --> 00:03:29.480 речах, якщо хочете. Але ми бачимо спільну тему в цих кількох 00:03:29.480 --> 00:03:35.060 століть, а саме: ви позначаєте всі дійсні купюри однаково, а потім переконуєтесь, 00:03:35.060 --> 00:03:41.770 що можете перевірити ці позначки, щоб визначити, що вони є легітимними. 00:03:41.770 --> 00:03:47.980 Альтернативою цьому було б мати різні позначки для кожної купюри, і підписувати 00:03:47.980 --> 00:03:54.620 їх. Але, ви потрапляєте в цілу купу питань, наприклад, як мені потім 00:03:54.620 --> 00:04:01.250 запобігти копіюванню цієї відмітки для конкретної банкноти і не скопіювати її сто 00:04:01.250 --> 00:04:04.750 тисяч разів, і просто, знаєте, не скопіювавши при цьому підпис. Адже 00:04:04.750 --> 00:04:17.190 ніхто не перевіряє паперові гроші онлайн. Отже, у 1983 році Бейдер запропонував 00:04:17.190 --> 00:04:23.540 спосіб боротьби з підробкою, який полягав у розсипанні відрізків довільної довжини 00:04:23.540 --> 00:04:30.570 до того, як він стане папером... муллом. (?) 00:04:30.570 --> 00:04:38.650 Потім ви заробляєте гроші, використовуєте сканер зі світловим бар'єром, тобто 00:04:38.650 --> 00:04:43.010 все, що робить ксерокс. Потім з'являється візерунок, який з'являється навколо 00:04:43.010 --> 00:04:47.810 світлової смуги. І ви витягаєте цей візерунок, перетворюючи його на серію 00:04:47.810 --> 00:04:54.190 бітів і підписуєте цей шаблон. Потім ви друкуєте підпис на купюрі. Тепер 00:04:54.190 --> 00:04:57.241 з цим є проблеми, які пояснюються в цих документах, я не 00:04:57.241 --> 00:05:04.980 маю часу заглиблюватися в них, але в принципі, це працює. Потім, далі, картки. 00:05:04.980 --> 00:05:09.130 Ви знаєте магнітні смужки і ПІН-код, ми використовуємо їх в Європі, я думаю, що 00:05:09.130 --> 00:05:16.110 ви все ще використовуєте їх у США, я не впевнений. Оскільки ніхто не вміє копіювати 00:05:16.110 --> 00:05:24.770 магстрапси, так? Отже, ти додаєш щось на карту, щоб її можна було виявити 00:05:24.770 --> 00:05:30.299 коли хтось скопіював картку на підробку. Отже, ви використовуєте голограми. Наскільки 00:05:30.299 --> 00:05:35.800 я знаю, голограми зараз можна копіювати, Я не маю посилань на літературу, 00:05:35.800 --> 00:05:47.320 але багато чого можна зробити. У 1980 році у 1980 році вже пропонував це: Ви навмання 00:05:47.320 --> 00:05:57.400 розсіюєте магнітні волокна у покритті, ви скануєте ці волокна за допомогою, ну, 00:05:57.400 --> 00:06:03.500 електромагнітного датчика, і перетворюєте їх в імпульси, а імпульси з годинником 00:06:03.500 --> 00:06:08.530 і т.д., знову перетворити їх на біти, підписуєте цей шаблон і т.д. Існує також 00:06:08.530 --> 00:06:12.341 така гарна пропозиція, де ви навмання розсіяти провідні частинки у 00:06:12.341 --> 00:06:17.780 в ізоляційному матеріалі і сканувати його мікрохвильовкою, це той самий принцип з 00:06:17.780 --> 00:06:25.710 1980-х. Далі, документи, що посвідчують особу, хтось запропонував використовувати напівпрозорість 00:06:25.710 --> 00:06:34.340 паперової смужки в документі, що посвідчує особу, відскануйте цю смужку, перетворіть прозорість 00:06:34.340 --> 00:06:40.570 у бітову маску, підпишіть бітову маску, і так далі. Тепер, Сіммонс вже сказав, що 00:06:40.570 --> 00:06:44.270 це було занадто легко клонувати, тому що, ви можете просто сфотографувати 00:06:44.270 --> 00:06:51.229 і відтворити його за допомогою фотографічними методами. Отже, прозорість 00:06:51.229 --> 00:06:57.120 не дуже добра. Тепер ви також можете потенційно використати точний 00:06:57.120 --> 00:07:03.980 тривимірний візерунок бавовняних волокон з паперу. Але ця пропозиція також була в 00:07:03.980 --> 00:07:14.470 1991, Сіммонс також сказав, що це неможливо зробити. Однак у 1999 році, 00:07:14.470 --> 00:07:18.600 хтось придумав щось подібне, вони беруть хеш текстури поштового 00:07:18.600 --> 00:07:23.949 конверта, і ви друкуєте квадрат на конверті, з високою роздільною здатністю 00:07:23.949 --> 00:07:30.910 фотографії, а потім хешуєте її з певним хеш-кодом, який гарантує, що всі 00:07:30.910 --> 00:07:40.620 ці речі зводяться до того ж бітового шаблону кожного разу. Це працює. Потім 00:07:40.620 --> 00:07:46.990 нарешті, ці обмежені Договором речі, мітки частинок, ви, по суті. 00:07:46.990 --> 00:07:52.560 прикріплюєте таку мітку на поверхню предмета, а потім обробляєте його 00:07:52.560 --> 00:07:57.610 ультрафіолетом, щоб перетворити на склоподібну речовину, яка 00:07:57.610 --> 00:08:03.500 робить втручання очевидним, якщо я спробую його зняти, скло розбивається, а також 00:08:03.500 --> 00:08:08.350 зберігає орієнтацію частинок, і потім ви накладаєте на неї лазер, дивитеся на 00:08:08.350 --> 00:08:13.760 відбитий візерунок, отримуєте ідентифікатор. Отже, якщо у вас колись буде купа 00:08:13.760 --> 00:08:19.750 ядерних бомб, щоб порахувати, це може бути цікавим. Спільною темою тут є те, що 00:08:19.750 --> 00:08:27.220 ми використовуємо внутрішній аспект, який неможливо скопіювати, але легко 00:08:27.220 --> 00:08:35.938 читається. Вона непередбачувана, і вона в ідеалі має бути незмінним. Що призводить 00:08:35.938 --> 00:08:46.420 до нас до пропозиції 2001 року про фізичні односторонніх функцій. Ідея була такою, 00:08:46.420 --> 00:08:55.279 у вас є епоксидна смола з малими скляними ви застигаєте епоксидну смолу, робите 00:08:55.279 --> 00:08:58.119 з неї кульки розміром десять на два з половиною мм, не знаю точних 00:08:58.119 --> 00:09:06.350 вимірів. Я кажу «сфера», я маю на увазі як це називається, куб... кубоїди, 00:09:06.350 --> 00:09:10.959 щось таке... А потім ви освітлюєте лазером, і виходить плямистий 00:09:10.959 --> 00:09:14.769 візерунок, тому що лазер розсіюється у дійсно непередбачуваному 00:09:14.769 --> 00:09:22.660 вигляді, і ви фіксуєте це у 320х240 пікселів, перетворюєте 2400 бітний 00:09:22.660 --> 00:09:27.249 ключ за перетворенням Габора. Я не знаю, як працює математика за цим, тому що 00:09:27.249 --> 00:09:34.309 це не моя сфера діяльності. І ви отримуєте цікаві властивості, такі як свердління 00:09:34.309 --> 00:09:39.420 отвору, половина свердел вилітає, тож це стійкість до злому, і це відображає 00:09:39.420 --> 00:09:45.480 роботу односторонніх функцій, як SHA-1 і SHA-256: якщо ви перевернете один біт 00:09:45.480 --> 00:09:51.310 на вході, половина бітів на виході буде перевернута. Таким чином, ця стаття є першою 00:09:51.310 --> 00:10:00.740 роботою, яка запропонувала це як зв'язок з криптографією. Тож тут, зчитування 00:10:00.740 --> 00:10:06.239 структури є можливим, тому що, у вас є цей скляний візерунок, ви можете просто 00:10:06.239 --> 00:10:10.269 - Я кажу «просто», але ви можете використовувати мікроскопічні методи, щоб прочитати його 00:10:10.269 --> 00:10:18.129 точно, але бажаю вам удачі з такою субмікронною точністю для всіх цих скляних 00:10:18.129 --> 00:10:31.059 сфер в епоксидній смолі. Отже, ви можете, в теорії, якщо знаєте структуру, імітувати 00:10:31.059 --> 00:10:37.779 або змоделювати, як лазер проходить крізь крізь це. Але це вимагає багато 00:10:37.779 --> 00:10:44.740 обчислювальних потужностей, і щоб... ви не можете створити базу даних відповідей 00:10:44.740 --> 00:10:52.799 до викликів, тому що уявіть, що виклик у структурі - це лазер під 00:10:52.799 --> 00:10:57.529 різними орієнтаціями, наприклад, лазер під кутом 5 градусів, або 10 00:10:57.529 --> 00:11:02.760 градусів або 20 градусів, і в різних місцях, і всі ці відповіді будуть 00:11:02.760 --> 00:11:10.250 різними. Тож простір викликів-відповідей неймовірно величезний. Тому протокол тут 00:11:10.250 --> 00:11:17.279 буде таким: по-перше, ви читаєте це на довіреному терміналі, створюєте випадкову 00:11:17.279 --> 00:11:21.969 колекцію пар «виклик-відповідь». Ваші виклики повинні залишатися в таємниці 00:11:21.969 --> 00:11:27.369 тому що далі ви отримуєте запит на аутентифікацію від ненадійного терміналу, 00:11:27.369 --> 00:11:34.699 ви кидаєте виклик цьому терміналу. Ідея полягає в тому, що неможливо відправити 00:11:34.699 --> 00:11:42.769 правильний ключ відповіді, якщо не маєте пристрою, що містить цей PUF, е-е, тобто 00:11:42.769 --> 00:11:46.920 фізичну односторонню функцію. Отже, ви отримуєте ключ відповіді і відхиляєте 00:11:46.920 --> 00:11:55.950 це, якщо ключ відрізняється на багато бітів. Тому що це не буде ідеальний збіг. Ось. 00:11:55.950 --> 00:12:01.259 Можуть бути подряпини, можуть бути мікронні відмінності в орієнтації, це 00:12:01.259 --> 00:12:08.619 може бути погана камера, ви отримаєте відмінності, і те, як ви потім 00:12:08.619 --> 00:12:18.999 обчислюєте найменш ймовірний рівень прийнятності підробленого пристрою 00:12:18.999 --> 00:12:23.769 00:12:23.769 --> 00:12:28.620 00:12:28.620 --> 00:12:36.509 00:12:36.509 --> 00:12:39.490 00:12:39.490 --> 00:12:44.939 00:12:44.939 --> 00:12:50.649 00:12:50.649 --> 00:12:55.929 00:12:55.929 --> 00:13:03.309 00:13:03.309 --> 00:13:07.279 00:13:07.279 --> 00:13:14.529 00:13:14.529 --> 00:13:21.910 00:13:21.910 --> 00:13:26.509 00:13:26.509 --> 00:13:30.100 00:13:30.100 --> 00:13:33.459 00:13:33.459 --> 00:13:39.550 00:13:39.550 --> 00:13:45.489 00:13:45.489 --> 00:13:53.729 00:13:53.729 --> 00:13:59.959 00:13:59.959 --> 00:14:05.569 00:14:05.569 --> 00:14:11.769 00:14:11.769 --> 00:14:13.930 00:14:13.930 --> 00:14:18.920 00:14:18.920 --> 00:14:23.500 00:14:23.500 --> 00:14:26.819 00:14:26.819 --> 00:14:31.759 00:14:31.759 --> 00:14:37.879 00:14:37.879 --> 00:14:42.699 00:14:42.699 --> 00:14:46.769 00:14:46.769 --> 00:14:52.129 00:14:52.129 --> 00:14:58.850 00:14:58.850 --> 00:15:04.720 00:15:04.720 --> 00:15:13.480 00:15:13.480 --> 00:15:21.371 00:15:21.371 --> 00:15:28.449 00:15:28.449 --> 00:15:31.280 00:15:31.280 --> 00:15:34.519 00:15:34.519 --> 00:15:41.149 00:15:41.149 --> 00:15:46.689 00:15:46.689 --> 00:15:51.679 00:15:51.679 --> 00:15:55.509 00:15:55.509 --> 00:16:02.730 00:16:02.730 --> 00:16:14.230 00:16:14.230 --> 00:16:17.400 00:16:17.400 --> 00:16:23.809 00:16:23.809 --> 00:16:28.889 00:16:28.889 --> 00:16:33.120 00:16:33.120 --> 00:16:40.529 00:16:40.529 --> 00:16:46.109 00:16:46.109 --> 00:16:54.110 00:16:54.110 --> 00:16:58.310 00:16:58.310 --> 00:17:03.509 00:17:03.509 --> 00:17:12.030 00:17:12.030 --> 00:17:19.509 00:17:19.509 --> 00:17:24.930 00:17:24.930 --> 00:17:28.720 00:17:28.720 --> 00:17:32.990 00:17:32.990 --> 00:17:40.640 00:17:40.640 --> 00:17:46.890 00:17:46.890 --> 00:17:52.240 00:17:52.240 --> 00:17:58.640 00:17:58.640 --> 00:18:02.480 00:18:02.480 --> 00:18:07.950 00:18:07.950 --> 00:18:10.910 00:18:10.910 --> 00:18:16.180 00:18:16.180 --> 00:18:24.040 00:18:24.040 --> 00:18:30.090 00:18:30.090 --> 00:18:37.960 00:18:37.960 --> 00:18:44.770 00:18:44.770 --> 00:18:49.650 00:18:49.650 --> 00:18:56.290 00:18:56.290 --> 00:19:01.720 00:19:01.720 --> 00:19:10.030 00:19:10.030 --> 00:19:14.480 00:19:14.480 --> 00:19:20.380 00:19:20.380 --> 00:19:23.750 00:19:23.750 --> 00:19:28.991 00:19:28.991 --> 00:19:34.701 00:19:34.701 --> 00:19:38.770 00:19:38.770 --> 00:19:42.640 00:19:42.640 --> 00:19:50.090 00:19:50.090 --> 00:19:54.570 00:19:54.570 --> 00:20:00.500 00:20:00.500 --> 00:20:04.340 00:20:04.340 --> 00:20:12.010 00:20:12.010 --> 00:20:18.320 00:20:18.320 --> 00:20:23.560 00:20:23.560 --> 00:20:31.140 00:20:31.140 --> 00:20:36.500 00:20:36.500 --> 00:20:43.250 00:20:43.250 --> 00:20:50.870 00:20:50.870 --> 00:20:54.920 00:20:54.920 --> 00:21:00.450 00:21:00.450 --> 00:21:07.440 00:21:07.440 --> 00:21:16.670 00:21:16.670 --> 00:21:21.700 00:21:21.700 --> 00:21:28.430 00:21:28.430 --> 00:21:35.540 00:21:35.540 --> 00:21:40.690 00:21:40.690 --> 00:21:48.260 00:21:48.260 --> 00:21:54.480 00:21:54.480 --> 00:22:00.030 00:22:00.030 --> 00:22:06.511 00:22:06.511 --> 00:22:11.990 00:22:11.990 --> 00:22:20.830 00:22:20.830 --> 00:22:26.360 00:22:26.360 --> 00:22:32.020 00:22:32.020 --> 00:22:37.590 00:22:37.590 --> 00:22:41.890 00:22:41.890 --> 00:22:47.940 00:22:47.940 --> 00:22:53.770 00:22:53.770 --> 00:23:00.460 00:23:00.460 --> 00:23:07.290 00:23:07.290 --> 00:23:16.100 00:23:16.100 --> 00:23:26.810 00:23:26.810 --> 00:23:31.711 00:23:31.711 --> 00:23:37.630 00:23:37.630 --> 00:23:42.180 00:23:42.180 --> 00:23:49.360 00:23:49.360 --> 00:23:55.970 00:23:55.970 --> 00:24:03.100 00:24:03.100 --> 00:24:06.660 00:24:06.660 --> 00:24:12.220 00:24:12.220 --> 00:24:17.300 00:24:17.300 --> 00:24:22.400 00:24:22.400 --> 00:24:26.480 00:24:26.480 --> 00:24:30.930 00:24:30.930 --> 00:24:39.380 00:24:39.380 --> 00:24:45.160 00:24:45.160 --> 00:24:50.690 00:24:50.690 --> 00:24:56.860 00:24:56.860 --> 00:25:05.840 00:25:05.840 --> 00:25:16.950 00:25:16.950 --> 00:25:21.590 00:25:21.590 --> 00:25:27.160 00:25:27.160 --> 00:25:32.110 00:25:32.110 --> 00:25:39.860 00:25:39.860 --> 00:25:46.110 00:25:46.110 --> 00:25:49.830 00:25:49.830 --> 00:25:54.940 00:25:54.940 --> 00:26:02.950 00:26:02.950 --> 00:26:08.900 00:26:08.900 --> 00:26:13.940 00:26:13.940 --> 00:26:18.680 00:26:18.680 --> 00:26:28.930 00:26:28.930 --> 00:26:33.130 00:26:33.130 --> 00:26:36.430 00:26:36.430 --> 00:26:42.560 00:26:42.560 --> 00:26:49.450 00:26:49.450 --> 00:26:53.870 00:26:53.870 --> 00:26:58.710 00:26:58.710 --> 00:27:04.690 00:27:04.690 --> 00:27:08.700 00:27:08.700 --> 00:27:13.800 00:27:13.800 --> 00:27:18.500 00:27:18.500 --> 00:27:23.900 00:27:23.900 --> 00:27:34.960 00:27:34.960 --> 00:27:38.680 00:27:38.680 --> 00:27:45.970 00:27:45.970 --> 00:27:51.970 00:27:51.970 --> 00:27:58.500 00:27:58.500 --> 00:28:03.250 00:28:03.250 --> 00:28:07.500 00:28:07.500 --> 00:28:11.640 00:28:11.640 --> 00:28:16.350 00:28:16.350 --> 00:28:22.970 00:28:22.970 --> 00:28:28.121 00:28:28.121 --> 00:28:32.020 00:28:32.020 --> 00:28:39.059 00:28:39.059 --> 00:28:43.490 00:28:43.490 --> 00:28:47.020 00:28:47.020 --> 00:28:50.940 00:28:50.940 --> 00:28:59.910 00:28:59.910 --> 00:29:05.600 00:29:05.600 --> 00:29:08.940 00:29:08.940 --> 00:29:17.790 00:29:17.790 --> 00:29:22.150 00:29:22.150 --> 00:29:26.000 00:29:26.000 --> 00:29:32.460 00:29:32.460 --> 00:29:36.970 00:29:36.970 --> 00:29:40.770 00:29:40.770 --> 00:29:44.140 00:29:44.140 --> 00:29:48.360 00:29:48.360 --> 00:29:55.230 00:29:55.230 --> 00:29:59.290 00:29:59.290 --> 00:30:00.290 00:30:00.290 --> 00:30:05.240 00:30:05.240 --> 00:30:09.810 00:30:09.810 --> 00:30:15.010 00:30:15.010 --> 00:30:19.890 00:30:19.890 --> 00:30:20.930 00:30:20.930 --> 00:30:24.620 00:30:24.620 --> 00:30:27.760 00:30:27.760 --> 00:30:32.370 00:30:32.370 --> 00:30:36.980 00:30:36.980 --> 00:30:45.630 00:30:45.630 --> 00:30:49.550 00:30:49.550 --> 00:30:54.350 00:30:54.350 --> 00:31:01.290 00:31:01.290 --> 00:31:04.710 00:31:04.710 --> 00:31:10.310 00:31:10.310 --> 00:31:11.030 00:31:11.030 --> 00:31:13.750 00:31:13.750 --> 00:31:16.610 00:31:16.610 --> 00:31:20.237 00:31:20.237 --> 00:31:25.413 00:31:25.413 --> 00:31:44.000