07 Nov

coursera: crypto и big data

Закончила первый курс на coursera.org, Cryptography I. Начинала в прошлом году, но следующие друг за другом рабочие командировки не дали закончить, поэтому прошла еще раз, но до конца. Курс ведет Dan Boneh из Стэнфорда, и он не церемонится – отлично зная материал и будучи увлеченным темой, он много времени уделяет математическим доказательствам и разнообразным примерам уязвимостей. Хотя он отлично объясняет, людям, далеким от математики, будет непросто. Это не обзорный курс, это принципы работы основных шифров – потоковые, блочные, аутентификация, контроль целостности, открытый ключ, RSA. Причем лектор рассматривает разные криптографические конструкции и протоколы с точки зрения атакующего, что значительно повышает ценность рассказа.

Курс состоит из видео-лекций, тестов на понимание (но при этом часть вопросов требует небольших расчетов – вроде времени, требующегося на брутфорс, пр) и дополнительных заданий для программистов. Задания – это взломы различных шифров или конструкций (oracle padding attack, хэш). Для меня это было kinda challenging, особенно учитывая, что для программирования пришлось воспользоваться зачаточными знаниями Питона. Задания на программирование потребовали помощи товарища и форума, однако программистские задачи – это жемчужина курса вне всяких сомнений. В дополнение к этому лектор дает ссылки на различные статьи экспертов по слабым местам тех или иных протоколов и шифров для самостоятельного изучения. Итог – необходимость интенсивно поработать.

Выводы:
– почувствовать себя студентом Стэнфорда было интересно, качество обучения в курсе объективно выше, чем в моем родном вузе;
– форумы на coursera.org действительно являются полезным источником информации. люди помогают друг другу, стараются объяснить непонятные места. в сравнении с рунетом это очень освежает;
– как и говорил Брюс Шнайер, криптография – это не для простачков. в принципе, для свободного понимания курса нужно как минимум знать модульную арифметику, часть теории информации и освежить теорию вероятностей.

“За время проведения конференции в «Американском черном кабинете» было прочтено и переведено более 5 тысяч шифрсообщений. Вследствие перенапряжения несколько его сотрудников заболели на нервной почве: один начал что-то бессвязно бормотать, другой стал посвящать все свое свободное время ловле бродячей собаки, у которой на боку якобы был записан японский дипломатический код, а третий, терзаемый каким-то неизъяснимым кошмаром, постоянно носил при себе огромную сумку с камнями, собранными на морском берегу. Все трое были вынуждены уйти с работы. Сам Ярдли также оказался на грани нервного расстройства и в феврале 1922 г. получил четырехмесячный отпуск для поправки своего здоровья.” (“Взломщики кодов” Кан)

– брать несколько курсов одновременно, как сделала я, – это убийственно. несмотря на удачное разбиение материалов и кажущуюся легкость, для работающих людей одного курса более чем достаточно. если по какой-то причине вы пропустите неделю-две, то наверстать будет чертовски сложно. у меня чуть не взорвалась голова, когда за одну неделю пришлось пройти материал двух. не говоря уже о том, что программерские задания тоже требуют времени. не повторяйте мою ошибку, соблазнившись массой полезных курсов;
– если криптография не является частью вашей работы, проекта, задачи изменить мир, то возникнет проблема мотивации. так как я слушала криптографию исключительно из любопытства, чтобы понять ряд основополагающих вещей, а курс ориентирован на тех, кто будет внедрять или разрабатывать защиту, после внезапно случившегося перерыва было трудно вернуться в колею. спас форум – в теме, где лузеры обсуждали, как же все сложно и почему они не закончат курс, объявился шестидесятилетний дедушка, который написал: “в свои 60 лет я не привык бросать то, что начал, на середине”. как вы понимаете, быть хуже шестидесятилетнего дедушки – это полный фэйл, так что я сдала экзамен с отличием.

Тем, кто собирается практически работать с шифрованием данных, сильно рекомендую. Словосочетания “уязвимость в SSL” или “взлом RSA” перестают быть пустыми звуками. Остальным не рекомендую, потому что 90 процентов материала исчезнет из памяти без практики сразу же.

Web intelligence and Big Data.
В качестве пререквизитов указаны:
Basic programming, SQL and data structures
Exposure to probability, statistics and matrices.

На это стоит сразу обратить внимание. Как пререквизит полезен курс алгоритмов – знания о том, что такое бинарное дерево и хэш-таблица, чем они отличаются, какие данные в них удобно хранить, пр. Кто-то вполне может дрогнуть на наивном байесовом классификаторе. Несмотря на то, что по сравнению с криптографией это больше теоретический курс, стремящийся охватить набор различных способов манипуляции крупными объемами данных, “WI and BD” создает свои “моменты”. Ведет его индус из университета Дели, говорит медленно, размеренно. Довольно подробно рассказывается о механизме ранжирования страниц, о машинном обучении, концепции map-reduce. Мне курс был интересен как источник сведений о 1) механизмах поиска и анализа данных поисковыми системами, 2) обзора имеющихся технологий в области big data, 3) идеи map-reduce как весьма популярного концепта. Все эти сведения я уже получила, поэтому не думаю, что завершу его, так как байесовы сети меня не слишком интересуют.

После курса я наконец-то поняла, что такое map-reduce (на хабре, кстати, есть отличная статья, где крайне просто это объясняется). Заочно казалось, что это какой-то тип баз, а оказывается, что это просто подход в программировании, делящий работу с данными на два этапа и позволяющий мощную параллелизацию. Т.е. это концепция программирования с набором реализаций вроде mincemeat.py и пр. Эффективность увеличивается, если данные храняется в соответствующих файловых системах. В курсе есть практическое задание на mincemeat, так что понимание остается. Об остальных вещах – вроде графовых баз данных, Pregel, Hadoop и пр. сведения выветриваются довольно быстро. Графовые базы данных – это настоящая чума, хотелось бы поговорить со спецом и практически увидеть, как это работает. Тем, кто занимается поисковиками, data mining’ом, новыми структурами хранения, будет интересно.

Leave a Reply