 Okay, thank you. So yeah, I'll be talking about implementing signal. This is a joint work with E-Tank who is a master student at NVU So this is my I don't know how to put the pointer. This is my favorite Signal implementation, maybe this one, but I was told it's not good for a master project. So instead we did this So what we decided we decided to kind of implement signal protocol for the reason I'm going to Talk next so the details in fact you can probably hardly see but this is your web page for the program You can like download the code. This is a website. So you can Also, there is a link on my web page So what is this project about? So briefly I will tell you, you know, why we did the specification Implementation and even the benchmarking so You probably know that signal is a very popular Platform for end-to-end messaging. It's pretty much used by everybody now. I'm most notably what's up So it has more than one billion users. So one's a real world cryptography left in price So very very important program protocol. It has many implementations Some of them are even open source, but for those of you, you know, it's a very complex thing It's hard to teach in class. It's kind of very confusing also various models are really interleaved It's heavily based on Diffie-Hellman. So some who it's a beautiful protocol, but until recently maybe it wasn't completely clear Why it works? What is really going on? So what we did in this Eurocript jointly with Joel Alvin and Sandra Carretti who is here We try to write a paper which modularize signal and explain what signal is and also give simple generalization and really proves its security and so on so This is what we did because the my signals boost in different modules and Signal was a special case of this implementation But now with this thing you can just Retire like Jigsaw puzzle plug in different things. For example, you can get post quantum signal So this is again, I don't expect you to read it. This is really our generalized signal It's looks kind of long, but it's really not, you know, that hard It's intuitive if you can teach it in class for those who knows the original signal arguably it's like much much simpler It has various modules. Yeah, there is like encryption decryption and so on So there are various modules, which are natural and simple something called continuous key agreement pseudo random function generator, which is like a fancy way for a hash function standard pseudo random generator or stream cipher any authenticated encryption and from these things in a pretty clean way Using the previous picture you get generalized signal which existing signal is a special case So We also did I mean I said details not matter, but we showed like extensive construction So various blocks from simple blocks So really following down the tree you literally has like dozens of various possibilities for signal depending on what hash function You like what stream cipher you like what public encryption you like and so on And indeed this is kind of apparent from the code So what we did we had this bottom up kind of a way to implement this library You can like plug in all kinds of components instead of continuous key agreement the hash functions PRG and so on And you know have implementation is seen but of course this is my first programming supervision project So I'm sure we did something suboptimally. So please improve it. It's all open source and so on So just kind of to give you an example Yeah, the original signal is like a special case where C key comes from something called You know the compressed Diffie helman kind of key agreement, you know the hash function is HKDF base PRG is based on like Shutter 56 and you say yes 128th SAV But then it just kind of to play we did we want to say okay Let's do post quantum implementation of signal just good for a master project. So we chose the simplest one It's highly kind of maybe non-optimist, but it shows like Frodo which is based on LW It's like super simple clean, but you know the cypher takes in public is along So probably not the best choice for a practical thing, but still just kind of as a concept implementation This is like the choices that get us one thing then we did something to optimize it did it compress Frodo which Saved like a factor of two in communications and all the parameters which was kind of nice and So this slide shows what the world has come to maybe it has it will come to an end It's like the first time I have a plot on stage In a talk. So this is a historic moment You know, I will have two of them even so thank you. I mean it's all it's all due to he I mean he I don't know how to do plots So he did he did it, but yeah, just even there is a basic this fraud implementation He you know, we just like this is a standard signal. This is efficiency. This is Optimized Frodo. This is Frodo. So in terms of efficiency, it's actually pretty much You know factor of two three which is significant but not outrageous But yeah, if you care about cost quantum, it's kind of really simple. This is like the first implementation Oh, sorry, did they get it wrong? This is oh, there is a slight missing. I think but alright So there was even the important thing which maybe the slide missing. I thought we updated it But anyways that even of course the big things is the packet cost of the packet cost Of course the public keys in frodo are much longer than in Diffie helman But you know for long enough messages is again tolerable and if you use like new hope or something like that Hopefully you will get something reasonable. So I would love to see post quantum signal Maybe it's an option in what's up or something like that. So if some of you interested, you know, please talk to me Or just do it. I mean you have all the code all the modules. You can just easily Kind of implemented. So these are some of the references to the papers And for the first time I even have few seconds. I'm finishing few seconds early