I'm gonna just get one test from somebody to speak. Hello! Hello! Hey. Awesome. So welcome to the Team Q&A session. We have quite a few people in this room, so hopefully it works fine. Just a quick round of introduction to the people we have. We have Levent Poljak, the project leader of Arch Linux, also part of the security team lead in the security team reproducible builds. We have David, Dave the Rave or something, which I've learned recently, his nickname is, he is the ArchEason maintainer and had that talk at 12 today. We have Jonas Witschel, which is a fairly recent TV addition. He works on the TPM and does a lot of packaging on the TPM stack. We have James Allad, his name is, he's one of the ArchEason maintainers. He also writes AOR utils and does also some RCOP stuff. We have Philippe Lainz, also called FFY00. He does packaging mostly on some Arduino stuff, my controllers that I can recall. We have Sven Staro, he does infrastructure stuff. And in general, he's a developer and does packaging. We have Green Carlo Rasolini, which is an Arch developer, maintains MK in its CPO and packages a lot of stuff. It's a bit hard to remember what everybody's doing. Javier Levanderva, which does a developer, works on the security team, reproducible builds, and ArchWeb maintainer as well, if I recall correctly. And we also have Bruno Pajellini, also called ArchChange, but I think he's dropping a little bit in and out of the sessions. We'll see what happens. And then lastly, you have me, FoxBaron, also Martin Linderu, I do security team stuff. Reproducible builds, I also organize this conference and sort of producing the entire thing, which is why I have a nice camera. So yes, hopefully this is working fine. This is the first time trying something like this. So I hope this is interesting. So we'll just try. We have, I see the same language has been doing a little bit of questions. So we'll just take the round table once first to get things started. What's the most fun or interesting part working slash being part of the Arch Linux team? Anybody wants to start? Hands, raise a hand. So Ella, what's the most interesting part? For me, the most fun was meeting everybody at the conferences at FoxBaron, CCC, at ArchComp last year in Berlin. Oh yeah, it was fun. And doing things together. So that was the most fun. But the question was, I guess, the most interesting, right? Yes.  Yeah, but generally conferences are great from doing the CCC part. Faustem is great, meeting people. There was also that room. I'm sure if anybody else has something else to add on being part of what's fast fun with Leventa. Leventa wants to speak, yes. Yeah, basically, I just wanted to repeat the same because I still want to take a little bit focus on people because we are not just a technology, we're actually people behind the technology. So for me, it was also meeting people at the conference and then having not just nicknames behind some work, but actually pieces and persons. So I agree. Yes, David? Yeah, the social aspect for sure. But also in general, I think it was really interesting to find quite open spaces for things to be improved, to find projects that you see like, oh, nice, oh, I can fix that. And then suddenly you maintain it. It's not always a good thing, but it surely is also very interesting and a great feeling that you can actually contribute and change something that is of value to not only yourself, of course. Yeah. Personally, I think one of the most interesting parties, you sort of work on this sort of in isolation, but you rarely sort of have these kind of conversation. So one of the more interesting parties when we did the first at the Chaos Communication Congress, the first Q&A session we had live, I just had the organized self-organized session, didn't promote it at all, but sort of it wound up having 150 people bum-rushing to a room and starting interacting. And it was a really interesting experience to just have that overwhelming feeling of, oh, what people actually appreciate the work you do and then having an entire room full of 100 people clapping to the work you're doing on the free time. That's, I think that's super, super valuable. So you have a lot of questions that we just continue. And we can probably do, is it worth becoming a TV if you want to bring one package only into the repositories from PostFactum? Anybody wants to answer? We can do Sven, if you want to answer. Well, sure. Frankly, probably not. I would say if you take a look at the repositories and maybe if you can find some orphans, we have tons of orphans. Maybe outside contributors might not yet know about that, but actually it turns out that we have some unmaintained packages. And if you were to go in and maybe interested in picking some of those up, that would be great. And this would be a great reason for you to become to you. Anybody else has something to add or something you'd like to speak? We can also personally, if you have some sort of pet, not necessarily just one package, but a group of packages with a common theme, we recently had what is there for elementary, which Eli and the Shibumi sponsored, Raster. Raster, which is one of the upstream maintainers of enlightenment, I guess, I think, which also reached the joint, well, basically the main enlightenment packages. So is there any chance Arch will be doing Google summer of code and outreach in the future from Mascaroon? Yeah, you can answer. Last year we applied for the Google summer of code, but we didn't get accepted. This year, I think we will try again. And, but the main issue, the main problem is that somebody really has to drive this from our team and the Google summer of code requires quite a lot of time investment from our side, which my, yeah, is a tricky thing because we're all volunteers, right? So for outreach, I think we also looked at this recently and it requires, I think, us to sponsor somebody, which, but the same thing applies. We have to find time to, somebody from our team needs to take the time to submit everything and mentor somebody. Yeah. So we also have some texting question. One will Arch get debug packages from Al and Ramsey, loaded question. Anybody wants to answer that one? Levente. I think in some regard, we're pretty close to that. We also have tried different approaches, but it also depends at the end which way we go. And there are also some technical challenges just to name one. Yeah. We use some split packages to also have different variants because it's actually not really feasible from a package perspective to have multiple sets of different things while they're still the same. And the issue which comes in mind is having the same pass then, which leads to problems with debug packages. So I believe if we go that way, then maybe we will get it when we have an alternative system in Pac-Man ready. Vincarlo, you had something to add? Vincarlo. Okay. Alad, you had something to add. So as far as line mode, thing of a debug packages, it was like limitations in DB scripts. So whenever we talk. I wanted to mention that if you want to have a look on the alternative, can you guys hear me? Yes. You can hear you. Is there a slight delay on you? I think Crosereen has a slight delay on this feed. Alad, you can just continue, I think. Sorry. Okay, right. So when we were always looking at the Git migration, just like we like our adaptation of DB scripts, the thing with debug packages would like always one part of it. So the idea was if we get to Git migration done, we would at the same time get the thing with the debug packages done. And it's been done more than a few times over like this year already. And like there was a new initiative in the last part one, but then it's sort of lost and then because of people working on it, didn't have time and so on. So hopefully that will improve later. Yeah, I can also add a little bit on that. So I think Eli already did a quick patch for DB scripts to have a separate pool of debug packages. We've also been sort of looking into how debug info D, which is sort of a debug package server you can connect to and sort of figure out how we can, if we don't distribute them, we can at least provide some way of retrieving the debug symbols. There are patches, but there still needs to be some work on that migration path. So we have a question from Oak. Anything new on the seamless reboot free kernel updates? I think he's mentioning the kernel hooks, which would potentially like sim link and clear up the modules, library stuff. Anybody has something to add to that? Want to answer it? Leventa, project leader, do you want seamless kernel updates? Do I need to answer now? No, I can. There's been some movement in the bug report, actually. I'm not sure if you follow it, but there's been some recent, I think one of the Linux from scratch, book authors is also contributing to that discussion. But yeah. Yeah, I'm also subscribed to that issue. I guess it still boils again down to actually having people on our team being interested in the topic. I mean, not just responding with ideas, but actual having some open discussion, which leads to some kind of implementation, which in my opinion is still lacking. So as long as we don't have anyone who really wants to work on this, I can't really do give any estimate on it either. So are there any plans to make Arch Linux available on Windows subsystem for Linux? I'm not sure. Did some discussion on that previously, but does anyone else have something to add? Aled? So it's been brought up a few times in the past and basically the like stuff like trademark issues, like the Arch showing up on the Windows store and some weird image with all kinds of modifications and unsigned repositories and whatever. And in the end, it was decided that there would be no support for it, like not on the port, for example. Like even on the Arch Wiki, the WSL redirects to Arch Linux support only. Yes. So I don't see it happen. Yeah. I believe part of that was both the trademark issue and there was also an issue in terms of support because previously at least on WSL one, there was some patch to G-Lib C and kernel stuff going on and you'd have to essentially be supporting a secondary system on top of it. So let's see what we have in terms of questions. Are there Arch developers trust users who use Arch in a work slash enterprise company context? I use it for a PXC booted rescue system on a few hundred machines, but I feel alone with this setup. So is there anybody out here that either deploys Arch in production at the work or use it for work stuff? Yes, Sven. I actually do quite a lot actually. And the reason is that, well, so I use it in multiple contexts. So I work mostly for enterprise clients currently and it actually is quite the advantage to be able to get all the most recent packages. And especially when I do Docker builds and I use Arch Docker, the official Docker image I actually quite a lot for our CI just because it's faster usually than just getting the packages as opposed to using some Ubuntu image and then maybe hunting down some PPAs for some GCC, whatever. So yeah, and it works really well actually, but I don't really deploy it on any scale. It's more like for myself and for CI, but I wouldn't give it to my colleagues, for instance. Yeah. Why is there not a graphical installer on the ISO, David? Oh, that's a long heated topic, I guess. Mainly because no one has done it. Secondly, because there's often like a controversial around what Arch should be like. I think over the past years, it has fallen under this conception of Arch being this hard to install type of gateway kind of thing where you're not really having an easy time installing and that's supposed to be like this because we kind of leave out the beginning the beginner users, et cetera. That's not really the reason. The reason is more like no one really spent time on this. Arch ISO in itself has been unmaintained for a while and has been kind of bedrotting also a little bit. And I mean, you basically need to really work on concepts to make this happen. And this is something that there are initiatives for, but this requires time, of course, and also to get this right and not just randomly provide people with installers or something like that. It's a lot about integrating from what we have now to something that makes sense from the standpoint in which we are now. And it requires time, but there's something in the pipeline, at least. So you can just continue that tangent. Is there any plans to make the installation easier? Yeah, I'd talk as well, but I can just continue on the same tangent. Yeah, in a way, I would like to see that a lot because it is an unnecessary bottleneck to some extent to have manual steps or many of them that you script away then either way, which leads to a gazillion of custom user-based scripts that, oh, this is how I deploy my system. And then you have hundreds, literally hundreds of that stuff flying around. And no one really knows how that works. And if you try to debug that together with that set user that messed up his or her system with it, it's really hard to trace these steps to find out what actually happened, what went wrong. If you have no way of tracing it. And therefore, I think it would be nice to actually have some sort of template-based installation that makes this easy and also traceable for us and for the user. So you can take, how long can we take, Sven? So one maybe less known fact is that we had an install in 2012, and then one of the developers took that project and continued it to ArchBoot, which is like some... So one of the Arch developers has one of these images. It doesn't always work. There was a time where it didn't work for six months or something. So it's basically only a thing that you use. It's like, you know, what you're doing, or it should fall out from the way before, but it's there. So that's one of the more classical approach that you'd have 10 years ago, some menu that you clicked through. But what David said on his templates, stuff that's... I find it also interesting, and I think maybe last year a bit more before that I was someone who proposed something like this, but I think there was like one guy, some sort of... I think it was a bit comparable to Ansible. Something like that, like the infrastructure from Arch, it's all to this Ansible to set up all server and so on. I think that's also an interesting approach, but I guess there wasn't really that much interest in it to continue it. But there was also some other like internal discussion. If you could use like some graphical projects or whatever to install it, but I think it's very much like, so either there's not that much interest or it's still a work in progress. Yeah, so did you have anything to add? Yeah, so I think probably the primary challenge is really that nobody really knows how an installer that is compatible with Arch philosophy would actually look like. And I think the primary or all the graphical installers that I know about, primarily Calamaris, they mostly focus or primarily focus on getting the system installed for the users quickly and without any friction. And now the thing that Arch has this error about it, that it's kind of elitist or hard to install, and it's really not that we try to keep this up, it's more like it has to be this way in order for us to be comfortable installing Arch other way, because it means that we have all of the customizability in our hands during the installation. And if we had an official installer that is graphical and everything, it would have to follow in this vein in these steps. And so it's just something that this is a problem pretty specific to Arch. And so we can't really copy from anybody else. And this is why it's conceptually so hard to come up with this. It's not like we are opposed to graphical stuff. I mean, we're all running graphical environments, I think. But this is just kind of the background on why this is so hard for us. Levente? Yeah, I also agree on what Sven said of that being hard. But at one point, we also should at least a little bit reconsider and see how we could make things work, because right now from an accessibility standpoint, it really sucks. And we're excluding a bunch of people we really shouldn't exclude. So at least we should, at one point, I guess have really in discussion how we may want to approach some stuff and how to tackle those challenges Sven mentioned. Philipp, you had something to add? Yeah, I have thought in the past about trying to include accessibility features in the ISO. Doesn't need necessarily to be a graphical interface, but just a simple vice to text setup so that you can just take the commands and the ISO will type them, which I think will increase the accessibility for a lot of users. The problem, I think, is just time. Yes, I know David has been talking with the talk arch. Maintainer about providing some more accessibility. So hopefully something gets done just in the base ISO. I'm just going to try this a little bit along. So what's the most challenging thing you've done as part of contributing to arch? Does anybody want to answer? We can take, I think Greencar is still sadly disconnecting. What you can take, Levente? So basically it was also the reason why I started to get involved in arch or more. Like at one point I was like, okay, we don't have a security team. And also Ellen made a call for action on it. And I was like, well, okay, if there is none, but I really want to have one. If I'm using this distro, then well, I guess I need to get involved and do it myself. So this was basically my motivation, why I stepped ahead on that regard. And it was quite challenging creating something out of nothing. Alec? I think the hardest part for me, like when I joined, or when I started using arch in like 2014, there was this, for the installation, there were like two guides on the ArchWiki. There was like a beginner's guide, which was like a very huge detailed guide for, which was like 40 pages long, and it was a very short installation guide, which was like maybe two pages, and almost like contained a very limited amount of information. So what I did, it looked like two or three years, was to like put these two guides together. And I think that was like a very challenging part, because you have to like adapt to two audience now. Like one part of the user-based audience wants to like, just to read some page and adapt these instructions. Like very general instructions, without like having to necessarily like, choose some specific option that is best for them, but just like some generic recommended option. And then the other part of user-based wants to like, have maximum flexibility, and choose everything on their own, and read everything and whatever. We have to like now, we have like one guide for both of these audiences. So the one thing it meant is that actual articles in the Wiki would have to be much better, because like five or six years ago, there was a lot of information in this beginner's guide, right, in this very long page, and there was not a lot of information sometimes in other pages, not very organized. So we had to like adjust all kinds of pages to have more details, so that they would work from a smaller guide. And that took a lot of time and effort and discussion with other community members. But in the end, I think it worked out for the most part. The bonus. So one huge challenge, but I think the nice thing about Arch is that you actually, in your day-to-day life, always encounter situations where you don't really know what to do, because some package updates doesn't mean it doesn't build anymore at all. And I think the nice thing is that you always have some people to rely on to ask how to do that. And I think it's a great opportunity to learn new stuff. So if you want to get involved, don't think it's too hard. I could never do that. Just find something you want to contribute to, and you will learn on the go. So you can move a little bit forward. How much time are you devoting to arch development and do you have day jobs related to programming slash development? Who wants to take a stab at that? Alec? For me, this year was pretty hard to spend time in arch because now I'm doing my master in mathematics and I have to move to a different country and all kinds of stuff. So I think it's like, because we're all doing this in our free time, sometimes it's sort of hard to take time away from your actual life and spend it on arch. And I think that's also sometimes why some projects like the thing with the debug packages sort of stall. Because people just have a life or work of their own and then they can't always spend it invested to arch. So that's just for me. So what I usually do is when I have some extra days in some months, I usually take some extra days to spend a lot of time on it and then maybe some time after I might not spend so much on it. And then I take another set a few days and spend a lot of time and so on. So I'll put a look at the time that I have and then when I have it, I try to take advantage. Personally, I do security engineer work as my day job but a lot of my personal free time is spent to order to Arch Linux. Like the conference has taken a few weeks to organize along with my standard packaging maintaining. I, Sven, I think was first afterwards. I lost a little bit of track of who's, who? No, who's- Right. I'll just, I'll just go ahead really quick. So I spend, I think, about an average of like 10 to 12 hours every week on Arch. So not quite part-time, but not quite nothing as well. And well, I do much of the same stuff I do in Arch. I do professionally.  It works for me. That was Philippe. Philippe, did you have anything to add? And it's silent. You guys can still hear me, right? Yes. Awesome. Where you had Philippe, yes? Yeah. Okay. So you can hear me. Yes. Now we can hear you. You don't need to mute me because I'm muting myself. Right. So I spent a few hours, but it depends on the, on the weeks and what I, what I'm doing. If I am just updating packages or adding new packages, that sometimes that actually requires a big amount of time.  But yeah. So I am studying it. So I do have a little bit of time to contribute, but yeah. Even when I'm in school, I sometimes end up doing art stuff in the background. We can, we can try. Gracilini has a six, seven second delay, but we can try, we can see if you can get an answer for him as well. In how much time do you spend on Arch Linux? I'm not sure if you can hear me. If the delay is a little bit longer, we can... Yeah, guys. So I spend around, lately I have been spending around 34 hours on Arch weekly. But yeah, I try to spend around 10 hours per week. It's a, it's a, it's a little, so you have to, to calculate how much time I spend, but lately have been quite difficult for me to spend more, right? But yeah, that's around it, it's good to spend four hours per week. Yes, thank you. So let's see, more questions. What's the best learning lesson from contributing anthrax? So for me, it's quite specifically at, and it is very far back in the past, but the biggest lesson I had is basically, I think there are different stages of evolution when you start contributing to open source. And for me, the biggest step was basically when you stop just opening bug records and complaining about stuff, but actually start fixing it yourself. Because, well, at first it helps open source most because you're actively contributing to it instead of just complaining about something. And at the end, basically, this is the way how you get your stuff fixed the fastest. Just do it yourself. And so this is the biggest lesson or learning basically I can give to everyone. Stop complaining and start doing it yourself. And this, I think this is nice. I will also to the, to another question, which is what drove you to join the Arch Linux team? I think this is probably some few people share. They have some issue they want to solve or some scratch page. And then they start contributing, David. Yeah, that's basically one of the reasons why I started contributing to Arch, because all of the pro audio stuff sucked, because there was just no one maintaining it anymore.  So eventually I just applied to become a two and started fixing these packages. And more and more, these packages either got dropped from extra to community. And well, now I have a lot of packages. That's not necessarily good, but it's kind of nice that this is kind of in better shape again now. I'll try to find people actually to help maintain this because this is something that truly is something that can be dealt with better in a group than only with one single person. And yeah, so if you're interested in packaging, there's a lot of audio stuff, a lot of multimedia stuff also that Arch has in the repositories that requires maintenance. And it's always better to have more than one person on it. And hopefully with an eventual Git migration from SVN, where we have a lot of the packages on GitLab instead of the SVN repository, where you have to attach patches to bug reports or email patches to maintainers, hopefully it'll be easier for people to get started maintaining stuff. So stay tuned for that, maybe take a little while, but hopefully we get there. Ah, we could take an easy one. Okay, now, Alek, do you want to add something? I just wanted to add that on the question with the installer, I was wrong on when Arch Boot came out. So it was like at least 2008, like, Ellen linked the change lock in the IRC channel. Questions, questions, questions. So how often do you guys update your systems? Personally, I do it once a week, and then I'm not there, so I do partial updates on the kernels because I can't be arsed to reboot that often, sadly, but usually a weekly update. What do other people do? I personally do it basically daily, so when I first set in front of my computer, the first thing I do to basically get awake is doing an update. Yes, that's all brand considering your polo shirt. Flippa? Okay, so I tried to update it at least every couple of days, make sure that I don't have a big backlog of packages to install. Then we can take Gracelini with a slight delay on answering, hopefully. Yeah, so I tried to update the data as well. The only time I don't update is when there is some kernel updates and I can't reboot right away, and I try to start my day by updating everything. The funny thing is, is that I have to update two machines because I use a VM for work, so I have to update twice, that's the thing. But mostly updated. Nice, anybody else has something to add? Yeah, I just update every few hours to be honest. Which are without testing? With testing, I always run it. I think on all of, no, I have one server that doesn't run testing, but apart from that, I update most of the time. Oh, yes, the perpetual updating of Arch Linux. Yeah, I am the meme, essentially. Oh, yeah. So what's the first thing that people do when they get a fresh Arch install up and running? Personally, I get my .files set up and patch stuff from my backups from the previous computer and set it up. What do all the people do? Somebody, Sven? Yeah, I also get my .files is a good first one, but I think actually I transfer some SSH stuff that I need first and then set up my .files because I also need some files and then usually some graphical environment and then usually actually I'm set. I never reinstall, what's this? Yes, that's also perpetual Arch installations using the same hard disk and just direct over and just boot it up, fix the fstab and you're good, some people do that. We can take an interesting question. If Arch had a paid position, what would be the first position slash responsibility to use that salary on? So essentially if we could pay someone to work on Arch, what would be sort of the most critical or the things we should be solving, probably? Nobody has something to add? Switching your post stories to Git. David? Yeah, mainly infrastructure, I guess. That's always a good thing to improve. We have lots of legacy systems that we more or less want to get rid of and being able to work on that full time would probably improve that switch, I guess. Fasten it. Yes, Sven? Yeah, I think generally speaking, things that nobody wants to work on for free. Things that just aren't fun. We do all the Arch for fun. Things aren't fun. You need some, let's say, extra motivation. Hi, we need Git migration. Okay, here's like a thousand lines of bash code that you need to sort of figure out and solve. And that's not fun, but it needs to be done. It's slow. What would you tell yourself if you went back before you started calibrating and sort of what would be your words of wisdom to yourself? Levanta? Basically, this is a little bit funny because I really was basically distro hopping back then.    So at least I'm pretty happy that it turns out like this, but I'm still compiling shit. So... There's somebody else I don't think that I'm not sure if I completely get all of the hands ups. Nope, then we can continue with the next question. How do you guys test package builds and manage to maintain that many packages in terms of to use Arch, root and spawns, QMU, other VM stuff? So I can just quickly, first I just use the DevTool stuff with a little bit of custom scripting with IORutils to sort of have new dependency cycles tested before entering the community, but a lot of that is still just being built with end-spawn. If somebody else has something to add, anybody does something special with testing their packages? We could take David first. I do some testing on certain packages that are a little brittle and weird when they concern audio and so on, especially when it's packages that are like core feature packages such as Jack, etc. Then usually I try to test this upfront. And I mean, sure, we also have the testing repository, but it's often much more interesting to test this locally, especially if it's something hardware-facing, hardware bound that you can actually test on a real machine. Quite important to do that yourself or find someone to do it with you or for you. We could take Dibonus. I should write this down. I don't. Yeah, apart from, I mean, basically, obviously it's always good if you use your package yourself because then you realize when something's wrong. But I also found that just some basic sanity checking already goes some long ways. So if you just use Difascope or just compare the files you had in the old package versus the new package and you see that a lot of stuff is missing, then maybe there's something wrong. So basically looking at your package before you install it can help fix a lot of problems that you miss because you didn't add a new dependency, for example. Yes, I will try Gracilini. I'll poke him on RSCs. We avoid delay. See if this works. Yeah. So I tried to run, I run testing and I tried to make sure that I test everything on bear. There are a few things that I use VMs to test. So for example, I use VMs to test MEK and ECPAO and some other things. But basically, yeah, I run everything on bear and I try to report guys because this is very important. I report with something's broken because we have very few tests, right? So I try to report everything. Cool. Then we can take Philipp. Okay, so I just usually try to check for the differences in packages when I'm playing. I also usually always check the tree of the table to make sure everything is fine. And then I just run it locally to make sure everything is working. I also try to keep myself updated on the changes in the upstream. So try to know what went into the new version, what changed. So if something breaks, I have an idea what might have caused it and it also helps with compatibility with other packages. So if something changed in some place that can have side effects and break other packages. So I try to keep that in mind when updating, but generally I just test locally. So yeah, I think that's sort of all the questions we had had time for. Somebody has in the last words for the viewers watching us live. No, get involved, guys. Oh yes, get involved. Absolutely, absolutely. Find something to work on and just get involved. Yes, email people, talk with them on RSC. Yeah, that's also what I always urge people to do. We are all people behind the technology and we make the technology. So just stop complaining and start doing it yourself. This is really the best thing I can recommend to everyone. And it will be the best thing for you personally as well, because you get your topics to think you are very interested in fixed or implemented. So just get involved. Just help us. Yes, so I think we'll take a round over there. I hope this was interesting. A little bit interesting doing this entire Q&A live with all of the impulses and questions from the chats. So yeah, now it's time for a break. A new DJI set and we'll see you guys after the break.


My name is Tatsuo Masuda. I'm teaching at the Nagoya University of Business and Commerce Graduate School and I associate with the World Economic Forum on New Energy Architecture Council. I like to talk about new energy architecture for the 21st century, not the last century, actually. I came here to discuss sustainable energy and resilience growth. What I found was the real consensus emerging out of many participants including parliamentary leaders. What is important is not just green but greener, faster, sustainable and affordable and accessible energy. This is a big agenda. We tried over the last century to achieve this. Not many countries succeeded because of difficulty in investment, difficulty in regulatory restrictions and difficulty in the mindset of the people. We have to change our mindset to think more flexibly and to think forward and think about generations coming after us. Not our own. Energy should not be considered just in the context of volume rather in quality. That's very important. And quality not just in supply, what kind of energy you should supply, nuclear or hydrocarbon or renewables. If you use energy wisely as a pure human being, you can save energy enormously. You can innovate the use of energy to a greater extent. Just switch your thinking. Asia is the demand center of energy and growth end of the world. That means they use a lot of energy and growth rate is the highest in the world. And COT emissions is unstoppable. We have to do something about that. I'll be asking leaders, either business or government or political leaders to show by their role model. If you do not change, nothing will happen.


Ah, college. The opening premised almost all of the pornography I consume. Smart ladies in STEM fields courted by gentlemen who appreciate personality. Americans are swimming in student loan debt to the tune of at least $1.6 trillion. That's almost enough money to liberate Iraq all over again, this time just for kicks. That whopping debt is held by some 45 million Americans. And it's virtually impossible to discharge like normal debt via bankruptcy or by faking your own death. Hello, car monger? Yeah, I can't pay back that car loan on account of I am dead. Uh-huh. Murder suicide. Yeah, I'll be missed. Thanks so much. Okay. This led President Joe Biden to issue a legally questionable executive order for giving up to $20,000 to those who make less than $125,000 per year. Even though that disproportionately benefits wealthy households over lower income households, Senators Warren and Schumer say the government is still being too stingy in an order to forgive up to $50,000. Bernie Sanders says cancel all student loan debt and outlaw greed, humidity, diabetes, storm the Bastille, and so forth. The narrative goes something like this, student loan debt sucks, pang student loan debt sucks, and it makes life very difficult. Like trying to get out from under a mountain of wet carpets, so why doesn't the government help the many people chafing under it? Everybody needs a college degree to participate in a modern economy. What with the robots and the Netflix and the polio vaccines? So the government ought to forgive those loans unfairly burdening graduates. Now far be it from me to try to dissuade anybody from solving a problem by throwing money at it. But I do have some concerns. First, Biden's plan is projected to cost the federal government $400 billion, and at first I was fine with that. But then I learned that taxpayers fund the federal government. Then I kind of got distracted and I learned about narwhals for a while. Then I scored some Adderall and I went back to learning about taxpayers. Under Biden's student loan forgiveness plan, the average taxpayer will be on the hook for over $2,000. Then it turned out it wasn't actually Adderall, it was just an antihistamine. So I went back to learning about narwhals, which are not eligible for Biden's student loan plan. Before we try to solve the student loan crisis by smothering it in money from people who mostly didn't go to college, we ought to ask ourselves, why is college tuition so expensive? Normally, sorts of friends I have who wear Shea Guevara t-shirts and engage in recreational protesting are apt to explain higher prices as a function of greed. I.e., corporations are lusty characters in a Dickens novel and so they drive up prices in order to buy more cigars. Ergo, college tuition is increasing because of greed. But, 90% of student loan debt is owned by the federal government to cover tuition at universities, who are more likely to be Shea Guevara fans than coal companies or guys who own blimps. The vague notion of greed can't really account for that pricing. Another explanation is that states have defunded higher education, forcing students to take up the slack. And that's partly true. When state revenue dried up in the 2008 recession, so did educational funding and universities responded by spiking tuition to cover the difference. But there are some big caveats to this argument. First, discussions of state funding for higher ed focus on per student spending. If the budget stays the same, but there are more students, then per student spending declines. And that's definitely happened. In 1940, less than 5% of the population had a college degree. And from what I can tell, 80% of those people wore ridiculous leather football helmets to protect themselves from cigarettes. Back then, states could easily subsidize most of the costs of classes and leather football helmets for that fractional percentage of the population. Whereas today, 13% of Americans have a graduate degree, about a third of the population has a four-year college degree, and schools have been pushing the you must have a college degree narrative for 30 years. The more people go to college, the more state resources are spread thin. Even so, declining per student spending doesn't cover the increase in college degrees. Tuition at public universities has gone up by between 30 and 37% between 2008 and 2018. But in 2018, per student funding was only 13% lower than it had been in 2008.  There's still a 20% rise in tuition prices to account for. Most of the price increase is arising from some additional cause beyond greed or state governments. And if inadequate public funding is the reason college is so expensive, why is private tuition also going up? Private universities don't get subsidized by the state, they're private. But they've also increased tuition. So some other factor is accounting for the steep increase in the price of higher education. And I know what you're thinking, ghosts, but no, it's not ghosts. It's the fact that we keep throwing money at education. More specifically, when Uncle Sam increases the amount of money available to prospective students via student loans, colleges compete for that potential money. Schools add perks, which didn't exist in the 1940s when education referred only to actual classes. Things like dormitories, cafeterias, study abroad programs, student life activities, pools, therapy dolphins, and new and exotic breeds of administrators. Then once that college has built a new pool and dormitory, secured a castle to do study abroad programs in and clone some new hot administrators, it increases its tuition to pay for it. Eventually, Congress sees that tuition has gone up and says, whoa, that's too high, that's not fair. And it authorizes more funding for student loans. Which go to castles and clones. The Federal Reserve Board of New York recently conducted a study which found that for every new dollar of federal direct subsidized loans, tuition rises by 65 cents. For every dollar of federal Pell Grants, tuition rises by 50 cents. In 2017, University of Vanderbilt Economist Leslie J. Turner analyzed need-based Pell Grants and estimated that between 11% and 20% of Pell Grant aid is passed through to schools, meaning that the schools find a way to capture it without charging students less for out-of-pocket expenses. So if we wanted to help out student loan borrowers and narwhals, without accidentally jacking up tuition prices, how would we go about doing that? I'm glad you asked. To start, allow student loans to be discharged through bankruptcy. For decades, it's been notoriously difficult to get a student loan discharged through bankruptcy. Because in 1976, Congress extended eligibility for federal student loans to applicants who had not completed high school. The logic being, high school dropouts are struggling, so making them eligible for student loans to get into Votex or training schools ought to help improve their situation. Private loan companies and state guarantee agencies were wary of giving loans to high school dropouts. So Congress eventually stepped in and said, hey, no problem. We, the federal government, will guarantee their loans if somebody defaults. We'll cover the bill. Great system. Take high school dropouts. Give them the option of attending a for-profit college now. Tell loan companies there's no risk of giving the loans out because if they default, Uncle Sam will have your back. If I were a loan company, and man, I wish I was, because I am so tired of being Andrew Heaton. Have you ever seen Newhart? As a loan company, I knew that I had no risks whatsoever in taking on such clients. It's either upshot or refund. I'd pass out loans like narwhal candy. If they pay back the interest, great. If they don't, also not a problem. Can't make a wrong move. As a loan company, I no longer remotely care whether or not this person will default or not. Or about the gaping hole in my heart that no amount of praise, bourbon, or chocolate seems to fill. Anyway, that's exactly what happened. With predictable results, by the late 1980s and early 1990s, there was a flood of loan defaults from people who the government altruistically set up for failure to the tune of a billion dollars to compensate. The government gradually restricted more and more situations in loans from dischargeability through bankruptcy, until more or less outlawing it altogether entirely in 2005. If you've ever wondered why you can't just declare bankruptcy to get rid of your student loans, that's why. The government outlawed it after precipitating the problem it outlawed. Recently, Associate Attorney General Vanita Gupta announced changes to the bankruptcy guidelines she says will allow for a better, fairer, more transparent process. It's too early to know if the changes will help more of those in need, but it's good to see some in Washington acknowledging the mess they've created. Next, if you actually want to drive down college tuition, put schools on the hook. Whenever somebody defaults on their student loan, make their college eat half of it. If colleges realized they only got paid if their graduates could actually pay them back, it would collapse predatory for-profit schools and compel public universities to reconsider how many degrees they pass out with the word studies at the end. Right now, universities understandably allocate seats and majors based on popularity, not on how useful the degree is in the real world, because they get paid by selling degrees to students, not by how useful those degrees actually are. Whereas if a university knows that my degree is in one of these obscure, ridiculous categories and it probably will never result in me paying the back, they'd probably cap how many spots are in that program and instead push prospective students towards a field where the degree might actually result in economic investment, probably involving some kind of math. If our leaders want to handle student loans by throwing other people's money at them, they should at least pair those wads of cash with structural reforms that will reduce the cost of tuition. So far, they're trying to put out a grease fire by hosing it down with a grease pump.


All right, wow, this room carries voice really well. Yes. Hi. Hi. All right, maybe I'll teach them this room next year. OK. What camera class is this? 365? Exactly. 466 Lite, let's say. OK, welcome to 365. Adam, I can't make it. It's only about eight. Some class, some maybe this class. Went off to these. No, he's somewhere on these coasts at a very important meeting. So, professor, it's OK. And we're going to talk about crypto to begin with. And you started it on public heat your pharmacy, am I right? Yes. This all sounds familiar. Any announcements since last time? No announcements. Awesome. Any announcements will be encrypted and distributed to you? OK, so the box represents public key cryptography where you can basically create keys that can go one way in the box. And this allows you to do all sorts of interesting cryptographic derivatives. So you have a public key and a secret key. That's called secret instead of a private key because otherwise it'd be P and P. And that's very confusing. And you talked about various properties that public key crypto enables the content of the cryptic messages, the ability to have a task that an encrypted message or that a message is coming from you. And it requires asymmetry, hence asymmetric cryptography where you can generate your public and private key easily. But if you distribute a public key, someone can't use that to recover your private key. And of course, your public keys are all public. So you went through all of this already, right? The encryption, signing, and so forth. So we're just going to move on from there. You went through signing, non-refudiation. Say if you basically encrypt something with your private key so that it can be decrypted with a public key, then you're in essence saying, I'm the only one that can make this encrypted message. And you're basically saying, I made this encrypted message. This is super important. This is what's, you know, whatever, your bank.com. There's that little lock message. One of the things, or lock icon, one of the things that that depends on is this property of being able to sign something. And you went through kind of the master combination of all this sort of theoretical concept of a public key. You can, if Alice wants to talk to Bob, Alice is going to encrypt something to Bob and so forth.  My understanding is you stop at this lock, which is a really cool quote that Google. So unfortunately Adam uses PowerPoint, which causes issues. I don't know why he does it. No one uses PowerPoint. So now we're going to open this up an open office.  We got to see the quote. Presumably it's a very important quote. I read it. So I know what it says. You should really fire this guy. All right. All right. So let's scroll all the way down in this. Brilliant program. Are you shitting me? Google for that. Let's see if there's like a quote from that. There's got to be a quote from this somewhere. My wiki quote. So you think that's how Adam got it? Like just for quotes about cryptography. No, no, no, it's, it's a, no, man. Adam is pretty serious about these things. All right. Hold on. We can solve this problem. All right. I'm going to put this up and I'm going to pull. Okay. That's a class loading. And this quote, as you can see, All right. So you can see on my phone that it is a readable quote. So this, this is a quote from 1874. And for a smat. going to need a way to generate public and private keys using a technique that you can very easily generate a public and private key and they're kind of bound together in some way but given a public key you can't recover the private key. So the quote is by William Stanley Gevins of the English Code of Fame and it says the following from 1874 over a hundred fifty years ago is that okay the same difference arises in many signs of processes given h2 numbers may by a simple and infallible process obtain their product but it is quite another matter when the large number is given to determine its factors. The leader says what two numbers multiplied together will reduce the number 8,616,460,799. Anybody? It's a hard problem. Of course if I say what numbers multiplied together will reduce the number 15 you can get that quickly but it becomes much, much more complicated than the number 16. Much, much, much harder very quickly as the number gets bigger and this was true in 1874 and it's still true today which is an embarrassment to humanity because with all of our technology there are lodging spaceships and Teslas at Mars but we still can't factor the extreme of life under the court. We have the processing power now to factor a billion whatever but not an arbitrarily large number. An interesting thing actually a counterpoint is William Stanley Gevins goes out to say similarly there's no direct process for discovering whether any output is prime or not which is interesting because he thinks that it is equivalent to discovering the factors of a number because a prime number of course has no factors that aren't one itself but that's incorrect. Now 150 years later through extreme efforts of all of society we can test whether a number is prime or not. The primality test exists but factoring still doesn't. Modulo quantum computer. So suddenly you have something that is very asymmetric right of course you can take two numbers, two very large numbers, multiply them together and have a big mess of a number very quickly but going the other way is very hard right. And now we're going to start thinking about asymmetric crypto. That's why this quote was here that's why we sent the professor our time and you can see it has an age well. So back to this monstrosity. All right. So now the history of publicly tripled. So we reached all the way back to 150 years ago. Talk about this. Of course, between then and now there have been a number of different public debates together on how to exchange these private policies. And then this is known as Diffie helmet he exchange, and I didn't take a critical course and undergrad, so until like late graduate school I thought Diffie helmet was a person, but it turns out it's two people. And we'll talk about that next and then 1977. Three scientists with names that abbreviate to RS and a created RSA. And it's a kind of a general purpose publicly crypto system that in a big way other things, much of modern cybersecurity. It's starting to go out of favor but it's a very big thing and you'll learn about that today. We'll mention that at the same time, of course, governments have had an interest in creating and breaking crypto systems for a very long time. Computing was propelled to rapid development because of the need to break the stigma in World War two, for example. And so, you know, crypto systems have been in one way or another for a while. It's the same with modern cryptography. The concept of public key crypto was explored in the classified realm, just a little before it was going on that by realm, and something like RSA was created four years before the RSA paper was published right so there's always this sort of parallel exploration for these sort of things and some other aspects of security as well. Talk about giving him a key exchange. This is a method for generating and changing keys between two parties over a channel that may be observed. Right, and it's kind of inspired by this concept of pain. You can try to think of it in terms of pain. So, Alice and Bob might want to come up with a common secret color of pain, pain inside of their house, separate houses. Right, because this was invented a long time ago, they'll be living separately. They start with yellow, and they paint the outside of the house with yellow and they want to, from that, derive what's in the inside of the house. Right, so Alice and Bob each used a secret color that they just have in a can, and doesn't really matter what the color is in this example. And they take the public yellow color, and they take their secret color, and they mix it together. Right, and then they mail it to each other. The assumption here is that unmixing paint is impossible.  It doesn't tell that adversarial party, which of course you probably know is usually named Eve, because they're a baby and Eve is evil. And so you can hopefully know what here is named Eve, because that would be depressing. We can also say that is, or Euclid, Eugene, Eugene, a lot of options. Anyways, so he intercepts the paint. All they get is some weird blue color. I also apologize if this might be incorrect, and then some orange light thing. Although it looks green on my screen. So anyway, the point is they mail this paint to each other and it doesn't matter. They can like, you know, mail it, they can paint a billboard the color, they just publicly exchange these keys. And the interesting thing next is that they take a different secret color. They mix it together and they end up in it with a common paint color. That is secret. So this part is a little bit mysterious. It doesn't work with paint, right? But it works with math. And so here's how it works. First, Alice and Bob reached a two number, a very large prime. In our case, this is 23. It's huge.  And a generator. The generator number has some restrictions on it. A lot of crypto systems have this interesting property where throughout their life, special cases of the crypto systems are broken. And so that people say, okay, well, RSA, which we'll get to later, or if you have me to say, as long as the generator is not something, it's not two, it's not, you know, a square even number. Like you get these sort of restrictions. I'm not saying those are valid for the development, but they tend to arise with crypto systems in general over time as mathematicians. So for now, we just say, okay, any prime and a generator, they grab two of these, you know, secret colors and Alice says is four and Bob is three. And they send their generator to the power of their secret modulo, a very large prime across to each other. Right. And this is the operation. That is very easy to compute using modular expansion. And if it wasn't for this month three of my 23, you have nine to the third, and you say, okay, nine to the third is whatever, 81 times nine. And it's very easy to take the cube root of that. Right. You just do that. You know, nine to the third is nine. Without the module, it's all fun and games, but with the modulo, suddenly, you're only going one way. Going backwards is very, very, very hard. And I will show you some math. I think this is probably a little a, we're going kind of off script. Don't tell Adam. We have a pen. Okay. So we have a prime. And that prime is P. They have a generator that prime is G.  I have myself a little bit by saying that it is impossible to reverse that, but here's how this generally works. So you have G to the A. And let's say you're just kind of in the normal math here. There's no one. First of all, everyone's familiar with the concept of module. Let me know if not, we can very quickly go into that, but you have G to the A. And then if you want to get G back, you raise it to the negative A. Right. Very cool. Very easy. Now, if you wait, is this true? I mean one over a thank you. Or you can do G to the A times G to the negative A. But I mean one over it. Okay. So you raise G today to the one over a, and you get back. Okay. In a modular situation. All right. Okay. Another way of saying this is you have G to the A.  Modulo P. All right now they're in a modular situation. And let's say you want to operate up in the modular level right. So operations on G, if you have, you know, G, Modulo P plus, I don't know, let's say plus a or B Modulo P. This all operates in a field as Modulo P. The numbers, the possible numbers in this field are from zero to P. Everything is good. We know how to operate there. If you want to start operating on this guy. So of course, let's say you have G to the A times G. Right. Normally, this is G to the A plus one. Right. Everyone agrees. If you're in a Modulo field. This is G to the A plus one, of course, Modulo P. And that's fine. Or if you're in a field, Modulo, a large prime, but this interestingly is in its own field that is kind of induced by this module. And operations that happen here happen Modulo, the Totion of P. And the Totion of a prime is that number minus one. The point is Math here operates in this module, Math in this exponent operates under a different Modulo. This makes it not for Diffie-Hellman, but for RSA.  Very difficult to go backwards and I'll explain why once we get to RSA. Let's finish up Diffie-Hellman. So Alice sends Bob this G to the A Mod T. Bob sends Alice G to the B Mod B. And Alice computes the secret key by raising what Bob sent her with her secret, computes that same secret key by raising what Alice sent with his secret. And then they have a common secret key. And it works out again because we are under the Modulo of this large prime. Let's go on to what is more my field, which is not my field, but what I'm more experienced with, which is RSA, and then we'll talk about what I just told you about in that context. So RSA works in a different way. Diffie-Hellman works to distribute keys or to come up with keys in a distributed fashion with two parties. RSA says, okay, given a key, RSA is the more basic version of Oblique Crypto where you have a public key, a secret key, and you can send messages to each other. The Diffie-Hellman, why are they even sending a private key to each other? Should you only keep that to yourself? The private key, Diffie-Hellman is a key exchange mechanism where they together, Alice and Bob come up with a symmetric key that they can think of. Right, so yeah, these are kind of private numbers that they only send along through these mathematical operations, but in that, what's important is this nine. It's the secret key that is their common secret that they paint the inside of their house with and then can asymmetrically encrypt data when they pass it back and forth. RSA is a little different. RSA is that kind of quintessential public key cryptography where Bob can say, this is my public key. You put it on the billboard, paint it on Bob's house, and then Alice can take that, use that to encrypt information and send it to Bob. So how does RSA work? RSA has two prime numbers, P and Q, they should both be large, et cetera, et cetera, et cetera, and we compute N. And N is the product of P and Q, and so as William Stanley, whatever said earlier, this is very easy to do, multiplication is not hard. But once you have N, going back to P and Q is not currently computationally feasible for large values of P and Q that satisfy some safety properties without a quantum computer. And yeah, sometime I'll talk about why a computer can kind of get to that point faster than a classical computer. So, given N, it's very hard to factor P and Q. And then we do this step, that is the encryption step, basically, we choose a value E, and E is our exponent, and E can be a lot of different values. I mean, basically E has to be basically bigger than one, otherwise it's a NOAA, of course. There are some other safety properties where if you have an E that is very small, certain attacks can be carried out to recover your encrypted message. If you have an E that is extremely big, then these operations are very slow. Generally speaking, people choose E to be 2 to the 16 plus 1, nowadays. But an E of 7 in certain situations is also fine, absolutely. And then making this computation, doing a modular expansion of some message A to the E, module N is very easy. Rather, we have algorithms that do it. However, given C, the result of the encryption, even if you know E and I, even if you know N, which are both public, it's very hard to calculate A. Again, going one way is easy, going the other way is hard. Why is this? Back to the paper. Let's talk about operations here being done in this portion of P field. So we have, let's build this cast of characters. In RSA, you have A, which is going to be your message. But of course, the most important things are P and RQ. And then we have N, which is P times Q, and also serves as our module under which all operations take place. We have E, which is something, it's whatever number, it's our exponent. And we'll have one more thing, actually let's get to through this slide and, no, let's not. Let's do it on paper. Alright, so encryption is A to the E mod N, right? Make sense? So let's say E was three. This is a very bad E, but you'll do it because it is reasonable. So here's what we're going to do. We're going to have E be three. What are some primes for P and Q? 11 and 17 will be our primes. What's the product of that? 187. And what's the number of you want to encrypt? 732. 732. Let's go with that, actually, and we'll demonstrate a property of RSA. Okay, so everything's under this modulo N, right? And our modulo N is 187. Yes? It has to be less than N, because you can't really represent that many numbers within the field. The integer is modulo N, right? What happens if you're in modulo 10, right? So let's pretend we're in mod 10, and we have the number 9. What is 9 mod 10? Cool. What if we tried to represent the number 13? Number 13 is really three. So what is 732 mod N? Okay, 171. So let's do that instead. So it's 732. So we have 171. Are we going to do that to the E mod N? So what does this end up with? 171 to the third power mod N, right? What is that sum of the calculator? 18. So 18 is our psychotest. All right. So for a second, let's pretend that we weren't doing mod N. So just A to the E, 171 to the third. What is that? 5 million, and then 0, 0, 0, 2, 111. Brilliant. So 5 million, $200. All right. Now let's say, okay, enough encryption. No more encryption. Everyone has decrypt. How do we decrypt the thing on the right? You brewed. In other words, we raise it to one third. As someone pointed out, not negative three. The one third. Can somebody calculate that out? 171, right. So 171, we decrypted it nice and easy, right? There's no real problem. And recall, we don't care if anyone knows these two things, right? So just by knowing E and by ignoring that right now, we figure out, you know, this one second. And in fact, don't quote me on this, but probably you can even figure out on E whatever, you know, perfect square one over some integer that works to figure out. You can choose E every time. E is more or less independent of N, right? But generally speaking, E is a well-known value. Like I said, there are certain values of E that are problematic, very small ones. And so people start out on the P being three, and there are certain attacks that can happen if E is very small. That people start using E being seven. And then kind of probably years ago, the kind of state E was considered to be two to the 16 plus one. And six by five, three, seven. And then, yeah, I mean, you can choose a different E, but basically what I'm going to say is your poverty is N. And you say, this is just, any number that I come in, I'm going to assume it was raised to the power of N. All right. So we did the non-modular scenario, and there's no security here, right? You can trivially encrypted, trivially encrypted. Let's talk about this. In order to, like I said, this operation happens in a slightly different module, right? This operation happened in mod phi of N rather than mod N. Why is this the case? I don't know. That's some math, very heavy math thing. You can talk to Euler who died a very, very, very long time ago, so you can't really talk to him. But that totion function is Euler's totion function. So again, operations here take place mod, and the reason I hesitate drawing totion, I always draw it upside down by accident, totion of N. And like I said, the totion of a prime is that prime minus one, right? Because what is the totion of the sum of numbers or something that is not a prime? Turns out the totion of something that is not a prime, so the totion of, let's have another sidebar here, the totion of, let's see if we're getting better, the totion of something that is like A, B, C equals the totion of A times the totion of B times the totion of C and so on. And what is the totion of a prime? So the totion of N is P minus one times P minus one. So the totion of N is the totion of P times the totion of Q, which is P minus one, Q minus one. Okay, now. Okay, so our 171 to the third, whereas this operation is all mod N down here, this in reality, mathematically takes place, and you don't have to worry about this in anything but us deriving our essay right now. It takes place in mod P minus one times Q minus one, right? And we call this number M. But what's interesting about M? If we know P and Q, can we calculate M? We take P, we subtract one. Can we do that in a computation-efficient way? Absolutely. Q minus one times A-efficient, can we multiply two numbers together in a computation-efficient way? Absolutely. Okay, so given P and Q, we can compute M. Given N, which is the product of P and Q, can we compute M? Who thinks he has? The person outside of the phone. So turns out, no. And this underpins RSA, at least RSA-style public key crypto, turns out that if we have N, we cannot compute M. Suddenly we have our asymmetry. And again, what's so interesting about M? This takes place mod M, that's M, right? So, you recall over here, we did this one-third. The reason that this works, of course, is this is equivalent to one-seventy-one to the third, to the one-third, which is equivalent to one-seventy-one to the three times one-third, which is equivalent to one-seventy-one to the one, which is one-seventy-one, right? Let's find something similar here. Let's hypothesize that there's a number D, that when we raise this monster to, we'll do the same thing, negate everything and decrypt our stuff. So we have our one-seventy-one to the third mod N raised to the D. All this is mod N. And of course, we hope that this will end up being one-seventy-one. How can we rewrite this? We have one-seventy-one to the third times D, or really one times one-third mod N. We're writing it this way, the little, what's it called, in accurate. What we actually have here is A to the E mod N. And we want to find a D such that A to the E times D mod N equals A mod N, right? And we want, this means that you want E to the D, E times D, to be one. But it's not just one. This operation takes place under a modulo. What is that modulo? That modulo is M. And in other words, E or rather D equals one over E. And here's the negative exponent, E to the negative one mod M. Again, in order to compute D, we need to know M. And it turns out, actually, this computation is super easy. Euler also has an algorithm for this. Really, Euler put all the heavy lifting and then, by our say guys, put it all together. But that's fine. I'm sure Euler doesn't mind because he's dead. So, we are challenged to compute D, which is E to negative one mod M. You're going to have to trust me. There is a way to compute D to negative one mod M. This is, of course, not a not one third. What are possible types of numbers in mod M in this field? They're integers. So, it's going to be some other integer that when multiplied by three is going to give us one. Let's actually compute that real quick. So, our N is, what was our P11? Q was 17. N was P times Q. Okay, here's our N. E was three. And so, our message was 171. And what we did was we did A to the power mod N. And that was 18, right? So, what might D be for us? There's some API to compute this all automatically. Should we do it live? Do you remember, Max? Oh, really? That's embarrassing. It's the, it's not here. It's the EGCD formula from Euler. Okay, we're going to kind of do a yellow thing here. So, we have this, okay. Because I don't remember the actual problem, we're just going to brute force the E, rather the E to the negative one. So, for every number that is possible under this modulo, whoops. Oh, I forgot in. Okay. See, Max, if you knew Python, you could have comment. For every number that is valid under this modulo, we're going to see this number. I'm going to print I times, let's do D here. For every potential D times E mod N is, and here we do D, or whatever we do, result equals D times E modulo N. And then if the result is one, you'll break. And we just computer, until we hit 125 and turned out 125 times 3 modulo 187 is one. So we found the inverse of E modulo 187. Of course, we did this in the stupidest possible way. I forgot what package, what module the EGCD is in. Is it in GMP? I forgot. Again, most of programming is googling stuff, so I'm sure we can do it, but now we have it. We don't need to do it. So we have 125 is our inverse. But that's in modulo M. Modulo M. Was that correct? Let's see what happens when we try to use that. So this is our D. And what we said is if we have A to the E modulo N, and then we raise that to the D modulo N, it should give us our A back, right? Did it? No. It was some random garbage. William, whatever would be very disappointed in us. Well, as with the Euler, why would Euler be disappointed in us? I couldn't find the right Python package, but the Euler probably didn't even know that there was a snake saw Python. We used the wrong modulo, guys. I used the wrong modulo, but I blame Max for not catching the mistake because he doesn't use Python. What did we say? All of this is modulo M because you're talking about operations up in the exponent. That's what Euler gave us among a lot of other things. Maybe Euler invented coffee. Probably not. But Euler definitely invented a lot of math that deals with exponents. So it turns out we screwed up here. It's not mod N. It's mod M that you're looking at, right?  We also didn't define M. What was M? Detotient of N? 3 minus 1 times Q minus 1. Now we can go. Boom. Okay, we have a new candidate. 107. Cool. 107 times 3 mod M, which is the modulo that functions in the exponent, is 1. So 107 is 3 to the negative 1 mod M. Now let's try this again. Cool, huh? We took, raise it to the E, modulo by N. We have a secret number D that only we know because only we know that. And you're able to use that to cancel out this exponentiation and recover our secret number. This is RSA at work. We just derived the entire basic ecosystem of RSA. This is it. Cool. Who likes RSA? All right. Well, that's fine. You can't win them all. All right. So much in a much drier way. This is RSA. We choose two distinct primes. We compute their product and we choose an E. I mean, they're a slight typo here. This is a little backwards. We compute their product and choose E. That becomes our public key. And then our secret key is basically the M that only we know. And from that, we can derive D. There's a lot of relationships where given one, you can derive another. The important thing for any N and E, which is a public key, we can derive by knowing underlying crimes, M and E, which is the secret key. Using N and E, we encrypt using N and E, we decrypt. Nice and simple. Anyone have any questions on RSA? Anyone a little confused about RSA? Oh, yes, what's up? No. So this is everyone in RSA has their own public key and their own private key. And let's see. I think, yes, this is exactly it. So if Alice wants to send a message to Bob, Alice needs Bob's public key. Why does Adam keep putting D as the private key? Anyway, Alice needs Bob's public key, which is N and E. E is a common number. You really use seven, six, five, five, seven, et cetera. And E is generally chosen to be large enough to be resistant to the tax and talk about it in a sec. And nice enough to be able to make these computations quickly. Alice needs Bob's public key to send Bob a message. And Bob's public key is that N and E, and Alice computes this A to the E mod N, and that's what she sends to Bob. And Bob receives that and decrypts it with his private key by calculating this and gets A back. So I put an assert here, so it's nice and official. Boom with that. So if Bob wants to send something to Alice, then Bob needs Alice's public key. Okay. So Alice computes N to the E mod N. That's the psychotactic sense of Bob. Bob computes T to the D mod N. That's the original message back. In this case, you're using M for the message M is not the notion of M. Cool. So any any questions on the encryption process and the decryption process. Hopefully I've shown to you that this is a real thing and not just not tracking a little too far into the math on paper but it's very cool once you get into like ways that it can go wrong for example. Some interesting facts about RSA. We already ran into this immediately. We can only send numbers that are less than M, only crypt numbers that are less than M. Right. So if you wanted to encrypt 732, you couldn't do it and it was not up to the task. So we had to encrypt 171 instead. So how did we actually work with this to send arbitrary amounts of arbitrary data? Because obviously there are problems already. So let's say, okay, one idea. We take every letter and we send it in a different manner. Right. So if you want to send along. Hello. Of course. This is a bunch of different letters. Each letter has an ASCII value, which we can get in Python with the odd function. Cavalage is 72, for example. And then we just iterate through and encrypt each one. So what we can compute is A to the E mod. Let's make this a little bigger. Did I help? Cool. Don't suffer in silence. And for A in, we forgot, ORD for A in message. And here is our encrypted message. Right. And of course, we can also decrypt this message by raising it to the D and so let's say encrypted. And then we can decrypt it, say, every letter to the D mod N for A in encrypted. Here's the decrypted message. That's 72. Of course, you can make this a little nicer by turning this back into a character. Okay. There's hello. And then we can, of course, join it because Python is awesome and it doesn't use it. Boom. We just implemented character by character encryption in RSA. Are we done? Can we just use this? What might be a problem with this encryption scheme? That's one problem. That's another problem. Maintain the statistical properties of English for a long text. Because with this scheme, every time we encrypt the same letter, it'll be the same thing. You can see these two L's stand out immediately. And someone that's very used to solving these little classical cryptos challenge problems will take a look and probably recognize hello just by that repetition. There's a third problem. Third problem is we have a very small space of plain text and cipher text. So given an encrypted number 72, we can actually, and M and E, because those are public, we can actually iterate for an entire byte range if I to the E mod N is 72, because we're doing this byte by byte again. So we have very few options. Break. We run this. I, why is I 30? Oh, sorry. This isn't encrypted. This is encrypted. Okay, so this 8787 that's the two L's that are encrypted 183 is actually what we're looking for that's the age. So we're saying which letter encrypts to age that letter is or which letter encrypts 183 that level that letter. Because we have a very small space of potential input and a great text, we can generate them all and put them all and see what matches. So in this case, we didn't have to decrypt to decrypt.  So that's no good either. Um, this is actually a problem. People get it wrong a lot.  And that's nice and easy and works very well.  There's still a lot of things you have to be careful about in terms of padding and so forth, but that's generally how, for example, when you do yes. Any questions about RSA. I'll mention one more thing are about RSA going off script in a very philosophical way, different attacks that people have developed against RSA. It's an old cat and mouse game. Yes. Right. One interesting attack against RSA is this RSA depends on this operation. This encryption operation, kind of overflowing in some sense, and the module cutting it down more and more and more and more. That's what makes it impossible in the classroom. I mean, I'm not saying it's absolutely possible, but we definitely don't have the algorithm to do that, despite our ability to shoot Teslas at foreign like extra planetary bodies. But we can't do this modular, discrete logarithm, you know, logarithm or module, you can explain it, but we can't go back. Interesting thing, and then actually this requirement that this actually goes over and is critical. Let me show you another failure mode of RSA. If we have a very large P and Q. So let's, let's have a large, I mean, this isn't prime, but that's fine, whatever. Here's our P. Here's our Q. Here's our N. N is now very large, almost certainly not prime, but for now, bear with us. You have your encrypting letter by letter, right, your E, what did we use for an E use three and our letter is going to be H. Okay, 72. If we do a to the E mod N, we have this number suspiciously small given our big N, because and didn't even come into play. 72 to the third power is too small for the modules to matter. And if the modules doesn't matter, then you're fucked. You can just take cube root of this guy. Um, how do I take a cube root of, you don't know, how do I take a cube root of Python? Someone take a cube root of it. Yeah. No, but one third is a decimal number. So let's try it. This is definitely not going to work. Well, okay, it gets close. If it wasn't for floating point insanity, or if if I actually knew how to use math and Python better, or if you were using something like maple or Mathematica, we could trivially decrypt this again, ignoring the modules to the modules to begin big. Right. So, even aside from the fact that letter by letter, it's very enforceable. You're the second problem, a third problem. In that, um, it's, if the result of your encryption is smaller than the module, fundamentally, you're not even encrypting it. So then our saying has this whole thing that in order to use it properly, you have to use the proper pad to make sure that, you know, if your modulo is some amount of bits, that you take up all of the bits, you can say, well, these are very large E. So I mentioned that E is a common E is two to the 16 plus one 65537. If we do this now. Now that's bigger than that. Right. Now that's encrypted. We still have the problem of having to do possible. But you saw that this was slower, although that was more to do with printing it than was computing it, but it was also slower computation. Hence, bigger and being more rare. Um, one final thing I'll say about RSA is this. We saw that, you know, if a to the E is too small to roll over and it's no good. Right. But turns out that there's cases where even having it roll over and is not good. Let's imagine that we have a very bad padding algorithm. We want to encrypt like my bike. But the way we do that is saying, okay, we can encrypt up to, I don't know. I give the size of our modulus. So what we're going to do is, and we're the only one who play my life. So what we're going to do is fill the rest with points. Right. So then we have three numbers. Okay. We have big numbers. So we have some padding. And let's give it a letter. What's the letter you haven't used that's distinguishable. Z. Z is our padding and fundamental, our message now become Z. Plus our letter. Mod n, right, but to the ease of the law mod n equals C.  These are fine. That's not too vocal. You pick the terrible letter. I'll cross my D. And now it looks like shit, but at least it doesn't look like it to. Okay, so what is he is small? Very small. What are the E is three? Well, it turns out that the E is three. We can expand this into a polynomial. So let's actually pretend that he is to that this is easier. So this is now a Z squared was Z a two VA. Plus a square. Oil it up. And here's see all all this is modern. Well, if you know that.  A one and then you have the same thing. To Z a two plus a, this D one plus a two squared equals C two and so on and so forth. Now you have a system of equations, some equations. And for each, each one, each equation, you don't know this a, but you know everything else, you know, Z, you know, let's say you have 10 for calls are generally public. You know the C, because that's what you were said. And you can compute this because you know he because that's public as well and you know it. So you have a system of equations module and turns out that when you have a system of equations, even if these numbers are very big and make this generally unsolvable, you can do what is called the lattice reduction algorithm. To go from these numbers to smaller numbers. All right, so little tiny squared plus two to a very little tiny.  And then you can get them small enough that the model doesn't matter. That's called the copper Smith attack against RSA. It's an example of one way RSA failed. If you're having or your message is specific format that allows this example. Okay, so that's the behind an RSA. And so on. Cool. Any questions. I'll be here for a couple of minutes. Good luck. Yeah, absolutely.


The second Gaia data release was made public on 25 April 2018 and includes the position and brightness of 1.7 billion stars, as well as the parallax, proper motion, and color of more than 1.3 billion stars. This video shows how 7 million stars will move during the next 800,000 years.