Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
http://techtalks.nsu.ru
Видеозапись: http://www.youtube.com/watch?v=v7uBLSm6ft8
06 октября 2015. Как приручить дракона: введение в LLVM (Дмитрий Кашицын, HDsoft)
«В этом докладе мы кратко расскажем о таком звере, о котором много кто слышал, но немногие щупали. Что такое компилятор на самом деле? Чем LLVM отличается от других компиляторов? Как в LLVM происходит компиляция программы, как работают оптимизации? Наконец, какой путь проходит программа от разбора исходного текста до генерации исполняемого файла?
Лекция будет обзорной и не потребует от слушателей глубоких знаний теории компиляторов.»
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...Iosif Itkin
Expanding the Meta-Generation of Correctness Conditions by Means of Semantic Markup
Dmitry Kondratyev, A.P. Ershov Institute of Informatics Systems, Novosibirsk
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
http://techtalks.nsu.ru
Видеозапись: http://www.youtube.com/watch?v=v7uBLSm6ft8
06 октября 2015. Как приручить дракона: введение в LLVM (Дмитрий Кашицын, HDsoft)
«В этом докладе мы кратко расскажем о таком звере, о котором много кто слышал, но немногие щупали. Что такое компилятор на самом деле? Чем LLVM отличается от других компиляторов? Как в LLVM происходит компиляция программы, как работают оптимизации? Наконец, какой путь проходит программа от разбора исходного текста до генерации исполняемого файла?
Лекция будет обзорной и не потребует от слушателей глубоких знаний теории компиляторов.»
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...Iosif Itkin
Expanding the Meta-Generation of Correctness Conditions by Means of Semantic Markup
Dmitry Kondratyev, A.P. Ershov Institute of Informatics Systems, Novosibirsk
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
- Определение чисел Фибоначчи, скорость роста
- Общая формула, экспоненциальная скорость роста
- Наивный алгоритм и анализ его времени работы
- Более быстрый алгоритм и анализ его времени работы, заключение
ЛЕКЦИЯ 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Многоядерные вычислительные систем с общей памятью
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
ЛЕКЦИЯ 4. Шаблоны многопоточного программирования
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
TMPA-2013 Vert Krikun: Finding Defects in C and C++ Pointers Using Static Ana...Iosif Itkin
Vert, Т., Krikun, Т. и Glukhih, М., St. Petersburg State Polytechnic University, Clausthal Technical University
Finding Defects in C and C++ Pointers Using Static Analysis and Logical Inference
ЛЕКЦИЯ 8. Многопоточное программирование без использования блокировок. Модель потребитель-производитель. Потокобезопасный стек. Проблема ABA. Указатели опасности.
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
- Определение чисел Фибоначчи, скорость роста
- Общая формула, экспоненциальная скорость роста
- Наивный алгоритм и анализ его времени работы
- Более быстрый алгоритм и анализ его времени работы, заключение
ЛЕКЦИЯ 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Многоядерные вычислительные систем с общей памятью
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
ЛЕКЦИЯ 4. Шаблоны многопоточного программирования
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
TMPA-2013 Vert Krikun: Finding Defects in C and C++ Pointers Using Static Ana...Iosif Itkin
Vert, Т., Krikun, Т. и Glukhih, М., St. Petersburg State Polytechnic University, Clausthal Technical University
Finding Defects in C and C++ Pointers Using Static Analysis and Logical Inference
ЛЕКЦИЯ 8. Многопоточное программирование без использования блокировок. Модель потребитель-производитель. Потокобезопасный стек. Проблема ABA. Указатели опасности.
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
10 июня 2015. Дмитрий Кашицын (HDsoft) дает обзор LLVM.
http://techtalks.nsu.ru
Видеозапись: https://plus.google.com/events/ctes98f7uhf19t5jlvlbk24dan4
В этом докладе мы кратко расскажем о таком звере, как LLVM, о котором много кто слышал, но немногие щупали. Что такое компилятор на самом деле? Чем LLVM отличается от других компиляторов? Как в LLVM происходит компиляция программы, как работают оптимизации? Наконец, какой путь проходит программа от разбора исходного текста до генерации исполняемого файла?
Лекция будет обзорной и не потребует от слушателей глубоких знаний теории компиляторов.
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
В третьей главе рассматриваются базовые свойства акторов, описанные в PhD диссертации Gul Agha: каждый актор имеет адрес, большой почтовый ящик, куда доставляются сообщения, адресованные актору и поведение. В ответ на входящее сообщение актор может отправить конечный набор сообщений другим акторам и/или создать конечное число новых акторов и/или поменять свое поведение для обработки следующего сообщения.
В рамках данного курса будет разработана библиотека для разработки параллельных приложений на платформе .NET, построенная по модели акторов.
Исходные коды библиотеки будут выкладываться на GitHub: https://github.com/hwdtech/HWdTech.DS
Код библиотеки будет разработан с использованием следующих принципов, приемов и методик:
S.O.L.I.D. - принципы
Unit-tests
Mock
IoC контейнеры
Для удобства слушателей курса краткий обзор данных практик приведен в Главе 4.
разработка серверов и серверных приложений лекция №3etyumentcev
В третьей главе рассматриваются базовые свойства акторов, описанные в PhD диссертации Gul Agha: каждый актор имеет адрес, большой почтовый ящик, куда доставляются сообщения, адресованные актору и поведение. В ответ на входящее сообщение актор может отправить конечный набор сообщений другим акторам и/или создать конечное число новых акторов и/или поменять свое поведение для обработки следующего сообщения.
В рамках данного курса будет разработана библиотека для разработки параллельных приложений на платформе .NET, построенная по модели акторов.
Исходные коды библиотеки будут выкладываться на GitHub: https://github.com/hwdtech/HWdTech.DS
Код библиотеки будет разработан с использованием следующих принципов, приемов и методик:
S.O.L.I.D. - принципы
Unit-tests
Mock
IoC контейнеры
Для удобства слушателей курса краткий обзор данных практик приведен в Главе 4.
EVHEN. Асимметричный SPN-шифр на базе white-box-криптографии и хаотических от...Dmitry Schelkunov
Презентация моего доклада на конференции РусКрипто-2017. Описываются основные подходы, использованные при создании EVHEN. EVHEN - асимметричный шифр со скоростью симметричного, низкими требованиями к вычислительным ресурсам, а также возможностью и шифрования, и подписи.
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Platonov Sergey
Кто-то верно подметил, что разработчики статических анализатора часто сталкиваются с "проблемой айсберга". Им сложно объяснить разработчикам, почему сложно написать и развивать статические анализаторы кода. Дело в том, что сторонние наблюдатели видят только вершину всего процесса, так как им доступен для изучения только простой интерфейс, который предоставляют анализаторы для взаимодействия с миром. Это ведь не графический редактор с сотнями кнопок и рычажков. В результате и возникает ощущение, что раз прост интерфейс взаимодействия, то и прост продукт. На самом деле статические анализаторы кода — это сложные программы, в которых живут и взаимодействуют разнообразнейшие методы поиска дефектов. В них реализуется множество экспертные системы, выдающие заключения о коде на основе как точных, так и эмпирических алгоритмах. В парном докладе, основатели анализатора PVS-Studio расскажут о том, как незаметно потратить 10 лет, чтобы написать хороший анализатор. Дьявол кроется в деталях!
Презентация к вебинару по построению системы юридически значимого документооборота. Презентация основана на опыте внедрения ряда подсистем в федеральных органах исполнительной власти.Рассмотрены нормативно-правовые акты и реальные показатели назначения системы.
Рассказ о том, как обеспечить юридическую значимость используя продукты в виде сервисов. Рассмотрены примеры использования в банках, крупных корпорациях и органах власти разного уровня.
Лекция по безопасной разработке приложений защиты информации в РФ. Читается на 4 курсе ФРТК МФТИ. Рассмотрен процесс создания криптографических и технических средств защиты информации.
2. Содержание
• Область применения блочных шифров
• Поля Галуа, операции с полиномами
• Схема Фейстеля
• ГОСТ 28147-89
• AES
• Схемы применения алгоритмов
шифрования
4. Основные преимущества блочных
шифров
• Эффективная реализация на современных
программно-аппаратных платформах;
• Высокая скорость
шифрования/расшифрования;
• Гарантированная стойкость.
6. Поля Галуа
• Конечное поле или поле Галуа — поле,
состоящее из конечного числа элементов.
• Конечное поле обычно обозначается или
GF(q), где q — число элементов поля.
• Простейшим примером конечного поля
является — кольцо вычетов по модулю
простого числа p.
7. Поля Галуа
• Построение поля GF(pn
), где p — простое число, n — натуральное число,
начинается с построения его простого подполя GF(p) (которое совпадает со всем
полем при n=1).
• Простое поле GF(p) строится как кольцо вычетов по модулю p, которое в виду
простоты p не имеет делителей нуля и является полем.
• Элементы — числа . Операции проводятся как с обычными целыми числами с
приведением результата по модулю p.
• Поле GF(pn
) при n>1 строится как факторкольцо , где f(x) — неприводимый
многочлен степени n над полем . Таким образом, для построения поля из pn
элементов достаточно отыскать многочлен степени n, неприводимый над полем .
• Элементами поля являются все многочлены степени меньшей n с
коэффициентами из . Арифметические операции (сложение и умножение)
проводятся по модулю многочлена f(x), то есть, результат соответствующей
операции — это остаток от деления на f(x) с приведением коэффициентов по
модулю p
8. Операции с полиномами
• Многочлен (или полином) от n переменных — есть конечная формальная сумма
вида
• где I = (i1,i2,...,in) есть набор из целых неотрицательных чисел (называется
мультииндекс), cI — число (называемое «коэффициент многочлена»), зависящее
только от мультииндекса I.
18. SubBytes
Процедура SubBytes() обрабатывает каждый байт
состояния, независимо производя нелинейную
замену байтов используя таблицу замен(S-box).
Такая операция обеспечивает нелинейность
алгоритма шифрования. Построение S-box
состоит из двух шагов. Во-первых, производится
взятие обратного числа в GF{28
}. Во-вторых, к
каждому байту b из которых состоит S-box
применяется следующая операция:
19. SubBytes
где , и где bi есть i-ый бит b, а ci —
i-ый бит c = {63} или {01100011}. Таким
образом, обеспечивается защита от атак,
основанных на простых алгебраических
свойствах.
20. ShiftRows
• ShiftRows работает со строками State. При этой
трансформации строки состояния циклически
сдвигаются на r байт по горизонтали, в зависимости от
номера строки. Для нулевой строки r = 0, для первой
строки r = 1Б и тд.. Таким образом каждая колонка
выходного состояния после применения процедуры
ShiftRows состоит из байтов из каждой колонки
начального состояния. Для алгоритма Rijndael паттерн
смещения строк для 128 и 192-ух битных строк
одинаков. Однако для блока размером 256 бит
отличается от предыдущих тем, что 2, 3, и 4-е строки
смещаются на 1, 3, и 4 байта соответственно.
21. MixColumns
• В процедуре MixColumns, четыре байта
каждой колонки State смешиваются используя
для этого обратимую линейную
трансформацию. MixColumns обрабатывает
состояния по колонкам, трактуя каждую из них
как полином четвертой степени. Над этими
полиномами производится умножение в GF(28
)
по модулю x4
+ 1 на фиксированный многочлен
c(x) = 3x3
+ x2
+ x + 2. Вместе с ShiftRows ,
MixColumns вносит диффузию в шифр
22. AddRoundKey
• В процедуре AddRoundKey, RoundKey каждого
раунда объединяется со State. Для каждого
раунда Roundkey получается из CipherKey
используя процедуру KeyExpansion; каждый
RoundKey такого же размера, что и State.
Процедура производит побитовый XOR
каждого байта State с каждым байтом
RoundKey