IMDEA initiative

Home > Events > Invited Talks

Invited Talks

Daniel Riofrio

Friday, March 10, 2017

11:00am Meeting room 302 (Mountain View), level 3

Daniel Riofrio, Post-doctoral Researcher, University of New Mexico, USA

The Presidential Elections in Ecuador during the digital era.

Abstract:

In his talk, Daniel will go over the motivations that lead to this research, the protocol he has been following to measure elections, the tools been used to collect data, some initial findings and future work.


Time and place:
11:00am Meeting room 302 (Mountain View), level 3
IMDEA Software Institute, Campus de Montegancedo
28223-Pozuelo de Alarcón, Madrid, Spain


Alfredo Pironti

Friday, March 03, 2017

11:00am Meeting room 302 (Mountain View), level 3

Alfredo Pironti, Post-doctoral Researcher, IOActive

15 Years of Broken Encrypted Emails…and We’re Still Doing It Wrong

Abstract:

Starting from a research paper of 2001, we show how OpenPGP encryption of emails is fundamentally broken. We show how an attacker can get hold of sensitive email content by tampering with email data that the user would expect to be protected. We apply this attack against PGP-enabled email addresses used to report vulnerabilities to software vendors -- and we get more than 50% of the submitted reports. Based on currently available information, we believe that recent End-to-End secure email projects still suffer from these same known issues.


Time and place:
11:00am Meeting room 302 (Mountain View), level 3
IMDEA Software Institute, Campus de Montegancedo
28223-Pozuelo de Alarcón, Madrid, Spain


Rupak Majumdar

Friday, February 24, 2017

11:00am Meeting room 302 (Mountain View), level 3

Rupak Majumdar, Professor, Max Planck Institute for Software Systems

Hitting families of schedules

Abstract:

We consider the following basic task in the testing of concurrent systems. The input to the task is a partial order of events, which models actions performed on or by the system and specifies ordering constraints between them. The task is to determine if some scheduling of these events can result in a bug. The number of schedules to be explored can, in general, be exponential. Empirically, many bugs in concurrent programs have been observed to have small bug depth; that is, these bugs are exposed by every schedule that orders some d specific events in a particular way, irrespective of how the other events are ordered, and d is small compared to the total number of events. To find all bugs of depth $d$, one needs to only test a d-hitting family of schedules: we call a set of schedules a $d$-hitting family if for each set of d events, and for each allowed ordering of these events, there is some schedule in the family that executes these events in this ordering. The size of a d-hitting family may be much smaller than the number of all possible schedules, and a natural question is whether one can find $d$-hitting families of schedules that have small size. In general, finding the size of optimal d-hitting families is hard, even for d=2. We show, however, that when the partial order is a tree, one can explicitly construct d-hitting families of schedules of small size. When the tree is balanced, our constructions are polylogarithmic in the number of events. (Joint work with Dmitry Chistikov and Filip Niksic)


Time and place:
11:00am Meeting room 302 (Mountain View), level 3
IMDEA Software Institute, Campus de Montegancedo
28223-Pozuelo de Alarcón, Madrid, Spain


Hongseok Yang

Monday, February 13, 2017

3:00pm Meeting room 302 (Mountain View), level 3

Hongseok Yang, Research Professor, University of Oxford, UK

Probabilistic Programming

Abstract:

Probabilistic programming refers to the idea of using standard programming constructs for specifying probabilistic models and employing generic inference algorithms for answering various queries on these models. Although this idea itself is not new and was, in fact, explored by several programming-language researchers in the early 2000, it is only in the last few years that probabilistic programming has gained a large amount of attention among researchers in machine learning and programming languages, and that serious probabilistic programming languages (such as Anglican, Church, Infer.net, PyMC, Stan, and Venture) started to appear and have been taken up by a nontrivial number of users. My talk has two goals. One is to introduce probabilistic programming to the programming-language audience. The other is to explain a few lessons that I learnt about probabilistic programming from my machine learning colleagues in Oxford. They have been developing a high-order call-by-value probabilistic programming language called Anglican, and through many discussions and close collaborations, they taught me why people in machine learning cared about probabilistic programming and pointed out new interesting research directions. These lessons had huge influence on how I think about probabilistic programming. I will try to explain the lessons through their influence on my ongoing projects, which aim at optimising probabilistic programs using techniques from programming languages and providing denotational semantics of high-order probabilistic programs. My talk will be based on joint work with Sam Staton, Jan-Willem van de Meent, Frank Wood (Oxford), Diane Gallois-Wong (ENS), Chris Heunen (Edinburgh), Ohad Kammar (Cambridge) and David Tolpin (Paypal).


Time and place:
3:00pm Meeting room 302 (Mountain View), level 3
IMDEA Software Institute, Campus de Montegancedo
28223-Pozuelo de Alarcón, Madrid, Spain


Goran Doychev

Tuesday, February 07, 2017

11:00am Meeting room 302 (Mountain View), level 3

Goran Doychev, Researcher, Independent Researcher

Rigorous Analysis of Software Countermeasures against Cache Attacks

Abstract:

CPU caches introduce variations into the execution time of programs that can be exploited by adversaries to recover private information about users or cryptographic keys. Establishing the security of countermeasures against this threat often requires intricate reasoning about the interactions of program code, memory layout, and hardware architecture and has so far only been done for restricted cases. In this talk, I will present novel techniques that provide support for bit-level and arithmetic reasoning about memory accesses in the presence of dynamic memory allocation. I will report on a case study which uses these techniques to perform the first rigorous analysis of widely deployed software countermeasures against cache attacks on modular exponentiation, based on executable code. The countermeasures are from different versions of libgcrypt and OpenSSL from the last 4 years, and our analysis measures their vulnerability to a hierarchy of attacks.


Time and place:
11:00am Meeting room 302 (Mountain View), level 3
IMDEA Software Institute, Campus de Montegancedo
28223-Pozuelo de Alarcón, Madrid, Spain


Miguel Á. Carreira-Perpiñán

Wednesday, January 11, 2017

11:00am Meeting room 302 (Mountain View), level 3

Miguel Á. Carreira-Perpiñán, Professor, University of California at Merced, USA

Learning binary hash functions for information retrieval applications

Abstract:

Searching for the most similar images to a query image in a large database is a high-dimensional nearest-neighbour problem that must be approximated in practice in order to make the search fast. A standard approach, binary hashing, consists of mapping each image to a short bit string and searching in this binary space instead. A good mapping should be such that Hamming distances in the binary space approximate well the original image similarities. This mapping, the binary hash function, is learned from a training set of image similarities. We discuss two ways to learn the binary hash function. The first, more traditional one, defines a suitable objective function and optimises it over the hash function. This is a nonconvex nonsmooth problem, typically NP-complete. We show how this can be conveniently optimised using the method of auxiliary coordinates. The resulting algorithm finds better solutions than relaxation or other approximate algorithms, introduces parallelism and allows the user to learn a different type of hash function easily (say, a linear function vs a deep neural net). The second way replaces much of the optimisation mechanism with a diversity mechanism, using techniques from ensemble learning. We learn each output bit of the hash function independently from the others, each on a different training set. Surprisingly, this is not only much simpler, faster and scalable, but it also works better in terms of information retrieval measures such as precision/recall. This is joint work with my student Ramin Raziperchikolaei.


Time and place:
11:00am Meeting room 302 (Mountain View), level 3
IMDEA Software Institute, Campus de Montegancedo
28223-Pozuelo de Alarcón, Madrid, Spain


Invited Talks - 2016