We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

How to Build a Processor in 10 minutes or less

00:00

Formal Metadata

Title
How to Build a Processor in 10 minutes or less
Subtitle
Hacker Fundamentals and Cutting Through Abstraction
Title of Series
Number of Parts
93
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Continuing the series of hacker foundational skills,  YbfG jvyy nqqerff shaqnzragny fxvyyf gung rirel unpxre fubhyq xabj.  Whfg sbe sha jr jvyy nyfb tb sebz gur guerr onfvp ybtvp tngrf gb n shapgvbany cebprffbe juvyr enpvat n pybpx.  Qb lbh xabj ubj n cebprffbe ernyyl jbexf?  Jul qb lbh pner?  Pbzr svaq bhg.  Bu, naq pelcgb. Bio: Ryan "1o57" Clarke self-identifies as a hacker. Formerly a member of the Advanced Programs Group (APG) at Intel, he continues to do 'security stuff' for other companies and groups.  Professionally LosT's history includes working for various groups and companies, as well as for the University of Advancing Technology where he set up the robotics and embedded systems degree program.  He has consulted for the Department of Energy, Fortune 50 companies, and multiple domestic and international organizations.  For DEFCON he has created the Hardware Hacking Village, the LosT@Defcon Mystery Challenge, and conference badges, cryptography, and puzzles. As DEFCON’s official cryptographer and puzzle master, his activities have included aspects of network intrusion and security, social engineering, RED and BLUE team testing, mathematics, linguistics, physical security, and various other security and hacker related skillsets.  1o57's academic background and and interests include computational mathematics, linguistics, cryptography, electrical engineering, computer systems engineering and computer science-y stuff.
33
35
CuboidProgramming languageMoment (mathematics)Set (mathematics)Square numberData conversionGroup actionLine (geometry)Point (geometry)Dot productMultiplication signTerm (mathematics)AreaOrder (biology)Observational studyTrailWage labourComputer virusHeuristicMereologyRight angleData miningKnowledge baseRepresentation (politics)MathematicsFrame problemMobile appData structureCryptographyHacker (term)Computer programmingSearch engine (computing)Constraint (mathematics)SummierbarkeitTotal S.A.Goodness of fit
MathematicsTime travelCryptographyInformationDigital electronicsEvent horizonBell and HowellVideo GenieLogic gateCoprocessorTelecommunicationPressureHookingForestProcess (computing)Student's t-testSocial classRight angleStatement (computer science)CodeNeuroinformatikMoment (mathematics)Multiplication signEuler anglesSocial engineering (security)Hacker (term)Set (mathematics)Product (business)Row (database)SpacetimeProgrammer (hardware)PhysicalismAreaVideo gameDifferent (Kate Ryan album)NumberShared memoryExpert systemData conversionFunctional (mathematics)MereologyFundamental theorem of algebraMathematicianBinary codeDigitizingPlastikkarte40 (number)
Mathematical analysisType theoryFundamental theorem of algebraLogic gateLogicBoole, GeorgeDataflowFilm editingGreatest elementParallel port
Fundamental theorem of algebraGoogolTelecommunicationMultiplication signBlock (periodic table)BuildingCountingInformationBitPoint (geometry)Boom (sailing)Set (mathematics)Configuration spaceCarry (arithmetic)
CountingMultiplication signDigital electronicsComplex (psychology)CuboidComputer programmingForceCarry (arithmetic)Computer animation
HexagonInformationBitCarry (arithmetic)Point (geometry)NumberHexagonRepresentation (politics)Physical systemDifferent (Kate Ryan album)NeuroinformatikHookingCopyright infringementStandard deviationBinary codeComputer animation
Negative numberNegative number1 (number)LogicNumber2 (number)Digital electronicsNeuroinformatikComplementaritySign (mathematics)Right angleSocial classLine (geometry)Representation (politics)Carry (arithmetic)
Multiplication signBitRepresentation (politics)MicroprocessorWell-formed formulaCuboidNumber
CoprocessorNumberRepresentation (politics)TDMAComputer animation
LogicInformationDataflowCoprocessorPoint (geometry)TDMALogicFunctional (mathematics)Order (biology)CodeRight angleCalculation
Arithmetic logic unitArithmetic logic unitGoogol1 (number)Digital electronicsLine (geometry)Game controllerOvalFunctional (mathematics)Message passing
CuboidMathematicsAbstractionLogicGame controllerInformationMessage passingLine (geometry)TDMACuboidCodecCoprocessorEngineering drawing
Arithmetic logic unitoutputFunction (mathematics)PropagatorMultiplication signData storage deviceNeuroinformatikArithmetic logic unitoutputCodierung <Programmierung>Demo (music)TDMAFlip-flop (electronics)BitAddress spaceCASE <Informatik>Computer animation
Keilförmige AnordnungLogicRead-only memorySequentielle LogikData structureUltraviolet photoelectron spectroscopyFlip-flop (electronics)InformationSequenceState of matterFinite-state machineMultiplication signNeuroinformatik
Multiplication signMicroprocessorSemiconductor memoryMoving averageGame controllerComputer programmingBuffer solutionAddress spaceElectric generatorTDMALine (geometry)Greatest elementEngineering drawingComputer animation
Game controllerCoprocessorVideo gameProcess (computing)Computer programmingNumberPower (physics)MultiplicationMessage passingFocus (optics)Information securityNichtlineares Gleichungssystem2 (number)Water vaporWeb pageMathematicsLine (geometry)Hacker (term)InformationAlgorithmDisk read-and-write headMereologyComplex (psychology)LaptopInteractive televisionReverse engineeringPositional notationPoint (geometry)TrailAbstractionFeedbackDescriptive statisticsGenerating functionCore dumpBitProduct (business)Right angleDigital electronicsBeat (acoustics)Metropolitan area networkArithmetic meanUnterhaltungsmathematikMultiplication signOpen setType theoryFormal languageAxiom of choiceNeuroinformatikGardner, MartinParameter (computer programming)AuthorizationMixed realityMathematicianFundamental theorem of algebraWebsiteWritingDenial-of-service attackDecision tree learningHookingCalculationEngineering drawingComputer animation
Transcript: English(auto-generated)
Good afternoon. Hello. Wow. Everybody's got their own conversation going on. Cool. I guess you're not really wanting to pay attention to what the badge means or any of the good, wonderful puzzles and other fun hijinks that Vost has put into it, but if you do, here's Vost. How's everybody doing today? Thanks, I love you too. I would ask a
little patience. For those of you who may have heard rumors in the wind, we have hiccups
regarding the badges every year, and this particular hiccup has made me go the past three days with roughly two to three hours of sleep total, so bear with me. I also am going to do a kind of new thing during this 101 talk. It's going to be kind of an experiment, and it's either going to go totally off the rails or it's going to be fine, but that'll
be based on you guys and me, so we're going to try and go through this together. I do this 101 talk every year. Um, for those of you who don't know, because it's 101, this is not, I'm going to drop O to him, I'm not going to talk about elite stuff, and I'm not going to come and act like I'm this snooty jackass who knows more than you do. Um, because like most of you are way smarter than I am. I'm just a weirdo with a
soldering iron and, and, and like math a lot. But, um, how many of you, this is your first FCon? By show of hands. Holy crap. Yeah, welcome, welcome. So I, I really hate giving talks like this because I really prefer having discussions, and on that
note, there is a room on the conference floor that's the 1057 room, and I request that couches are put in there every year, because I encourage people to come in and just sit down and hang out and talk with people. Because if people at this con, whether they are the person who invented a programming language or wrote some major app, if they're so pretentious that they're not approachable, I don't want them here. So, if, if you
try and approach someone and you try and talk to them and they're, they're too high and mighty to talk to you, you can tell them to fuck off, because I just don't want them here. Of you guys that are here for the first time, how many of you are from out of the United
States? Wow, thank you. Thank you for traveling so far to come here. Okay, a couple things we're going to do here. So, for those of you who don't know, my name is Lost. Uh, they call me 1057, Lost Boy, a couple other things. All the crazy, crypto, puzzle-y stuff that you see, stuff on the lanyards, stuff in the program, that's all
me. So that's basically a representation of all of my free time from the last year. And I'm often asked, you know, how do I structure these things, how does that come up with? So, I, I believe I do have ADD OCD, where I'm constantly changing what I'm
completely obsessed about. And, um, I, I have these little quirky things I do every year. Like, one thing that I would recommend you guys do is I pick two, uh, publications of any kind that are completely out of my wheelhouse every year, and I read them during that year. And over time, the, the, the knowledge base that I have tends to grow. And the reason I do
that is I have a couple of pet peeves. And, in full disclosure, I use the one-on-one talk to try and dispel or stop some of the pet peeve stuff that I have in the community. And I try and do that by raising us all together. So here's a couple of pet peeves that I have. For those of you who've heard this before, I apologize. But there's a
lot of new people here. I mean, who here has been to a talk of mine before? So not very many, okay? Sorry about how helter-skelter is, like I said, I'm running on very little sleep right now. In fact, I promise the opening ceremonies tomorrow will be much more structured. We're supposed to be having fun in here. This is 101. And originally, it wasn't even an official track part of Def Con, it was just us hanging out in the
highways and some other people put, put this track together. But anyway, one of my pet peeves is this idea that, um, as hackers, you have to be creative. And in order to be creative, you have to think outside the box. And how many have heard the term, think outside the box? Raise your hand. How many of you know what the origin of that term
is? Where does that come from? Besides the obvious imposed, you have a set of mental heuristics that you're imposing upon this problem, and you carry those with you, and if some high and mighty guy came down from off the, off the mountaintop and said, thou shalt not impose this particular, uh, heuristic, then all of a sudden, magically,
you're gonna be creative and go, aha, eureka, and you're gonna solve the next, you know, major problem. So there have been studies that have shown that that's total bullshit. The, uh, the original origin of that, uh, term is from the nine dot problem, which is a puzzle where you draw nine dots in a box, three, three, and three. And they
say, connect all the dots without lifting the pen. How many lines can you do it in? And of course, or, and sometimes you'll have the constraint, you can't cross the lines as long as you can, just depends on the variant. And of course, invariably, people have imposed this mental box because it's in a square, and so it's really, really
difficult. And then some jackass comes up and is all clever and he's like, oh, I go outside what that frame was, yadda dee, yadda dee. Well, it's been studied and it's been shown that even if you take a group of people and you tell them from the start, you have to draw outside of this imposed square that the same percentages of people
solve the problem or can't solve the problem. And that the way you get people to have those epiphanal, aha, creative moments is through deep study in a particular subject area. Now, as we go further and further with technology, Google, search engine, instant gratification, phone in your pocket, I don't have to go through any of the mental labor to get any of the answers of questions that I have anymore. We, we do certain things
faster, but we've lost a sense of wisdom in our knowledge. And by doing so, we're starting to shortchange ourselves. And we're going to start to lose the epiphanal genius moments that come from that deep study of a subject area. So when I do my cryptographic puzzle challenges, I structure them to do three things. I want you guys to
talk to each other. I intentionally put things on the lanyards every year so that you have to find other people and you have to interact with them. Not only that, but there's stuff even on the back here. You have to take it off. You have to linger in front of the other person. It forces at least a time for you to interact with one of those other people. And for a crowd that is predominantly introverts, you know, I'm
trying to force you to talk to each other. Yeah. You know, the whole joke about you can tell who the, who the, uh, the extrovert at, like, the DEFCON conference is. He's a guy looking at someone else's shoes. But anyway, so that, that's my soapbox for that.
During the one-on-one talks, I have a tradition also of saying, I'm not going to explain, and obviously in a 40 minute talk or 50 minutes, I don't even know how long I'm supposed to be up here. But in a talk, I'm not going to be able to teach you or, thank you, or give you, um, deep knowledge in a subject. What I'm hoping to give you are
hooks. I'm hoping to give you hooks that give you the right points to start to go down. And by the way, I mean, I do not mean to show disrespect to anybody. I know a lot of you have deep knowledge in a lot of these subject areas, but I kind of shotgun it to try and give people a foundational knowledge of these are the things that I think if you kind of generally know about, you can have a well-informed conversation with
someone at a place like DEFCON. Cool? We understand where I'm coming from? Yes? No? You awake? Yeah. I'm tired too. Well, what do you think of the badge this year, by the way? So because this is one-on-one, and don't tell, don't tell DT, I'm going to tell
you this. Because I'm not going to, I don't know if he'll say it in only ceremonies, I don't know if it's a secret or not. I'm going to tell you guys, because you're at one-on-one, which means you're hardcore. There, there were, let's just say, I can't tell you the quantity, but there were thousands of badges that were ordered. How many of you have ever done my production of electronics of any kind? Okay. How many
of you understand how long it takes to do, not only do pick and place, but how long it takes to program firmware onto something? Every single one of the badges that you have around your neck right now were programmed within the space of the last three days. And that's, and that's why I say, none of this would happen without
the community. Because that wasn't me, that wasn't lost jackass with a, with a programmer. That was hundreds and hundreds of volunteers who weren't paid, who are people that come to the con that are here early, that we run up and down the
halls going, we have an emergency, guess what? Badges showed up and they weren't programmed before they got to us. And so we set up a chop shop and went to town. And, and there are people, there are people in this room right now who have been awake literally for four days. Some of them are in the front row right here.
Okay. Pet peeve number two. I get really frustrated with people. First of all, if you don't understand or know something, admit it. I don't know lots of stuff. When I talk to people at Def Con, there's really, really smart people
around here. You guys. And when I have conversations with you after I give conversation talks like this, people come up and they want to talk about stuff, and they'll say something like, oh, I don't know what that is. Tell me. Explain that to me. Um, my grandfather used to talk about Colombo. If he had me, uh, the younger people in the audience are like, who the hell is that? Google him. Um, so, so Colombo is a fictional character who was like, excuse
me, the ultimate social engineer. He used to get everyone he met to teach him something, even if he knew it already, because it disarmed them. So social engineering tip one on one right there. But I, I try and, and not have, you know, when I first came to Def Con, I was scared crap. I was
like, these guys are way smart. They're going to say stuff I don't understand, and they're going to think I'm an idiot, and they're going to kick me out. I didn't know what was going to go on. And if you can just be confident enough to talk with people, be like, hey, I don't know what that is. And then flip side, don't be an arrogant ass, but if you know something, share it with other people, because that's the only way this community is going to get better. For example, how many of you
are aware with the discussions that are going on with cryptography and back dooring? Yes, no, the politics involved with what's going on, that's going to fundamentally change communication. And with people like us, the folks at the Def Con conference, we need to talk about stuff like that, because otherwise stuff's going to go, and the genie won't be able to be put back
in the bottle after certain events. So I'm not going to push my politics on you, but let's just say we need to share the knowledge and information so that we can all elevate and it's not select. Okay, I get really tired when I talk to people and they make the statement, I know that a computer uses binary. I
know that a computer speaks binary. Oh, that jizz is like, it's like a cheese grater on my thigh. I don't know how to describe it. Sorry. So, and I often will ask people, do you know what that really means, and do you understand that? Now I know there's a lot of people in this audience that are like, all I do is code. I
don't give a shit how the processor works. I hate that attitude. How can you think like that? Remember the discussion we just had about creative epiphanal moments? A lot of times those epiphanal moments become from tangential information that may be related to the subject, but not directly involved, because if it was directly involved, some jackass would already thought of it. How many of you know about the original Bell Labs, or heard of it? And if you
haven't, especially young folks, go look it up, because it's like my dream mecha, like if I could go anywhere in a time machine, I would go back in time to the original Bell Labs. The reason the original Bell Labs, by the way, you have C, because of the original Bell Labs. You have a lot of things that you use in your daily life because of the original Bell Labs. What it was is a collection of experts in different areas, but they weren't stovepiped. It
wasn't like, here's the math department, here's the physics department, here are the electronics guys. They were like, the chemist was next door to the computer guy who was next door to the mathematician, next door to the linguist, and they all had access to each other, and that's what caused this genesis of all of this great creativity. And we've started losing that, because everybody wants to keep everything secret, they don't want to share, and
so we lose those epiphanal interconnections. So, back to the, I know how a processor works. If you come to me and say, uh, Ryan, you wasted my time at Def Con, because I don't care how a processor works, I just want to code. I would say to you, you do not have the mindset of a hacker, and I don't want to talk to you. So... I mean, like, go back to that comment I said about
subscribing to magazines. I subscribed to, like, a sewing magazine for a year, you know, just, and I actually learned really cool stuff. So, here's one of the experiments we're going to do today, and you guys are all coming along with
me on this ride, because this one's going to be fun. So, uh, can I have a couple of you, or however many you want, I know you all got cell phones in your pockets that have timers on them, like a stopwatch, because, I'm not going to lie, I did not practice this part, because I was like, let's, balls to the wall, let's go, let's see if we can do this. Pause your phone. So, in a second, we're going to
synchronize, and we're going to start, and I'm going to try, in ten minutes, to talk through going from the three basic fundamental logic gates to a functioning processor. In ten minutes. How many of you have had digital logic, uh, classes and things like that? How many of you could sit down and actually describe that
process to somebody? How many of you kind of remember? Okay, how many of you are students right now? Everybody should raise their hand, by the way, it's a trick question. Okay, so, are you ready? Because I need to drink some water, and we're going to go, and the reason I'm only doing it in ten minutes, and that way, if you
guys, if this is a total failure, we only wasted ten minutes, and you can kind of, you can kind of forgive me for that. So, what this is not, this is not me teaching you all this information. This is me running through the forest wildly like my hair is on fire, screaming out the things that you should Google or look up, that you would then be
able to have the knowledge of what these things are. And if one or two things sound interesting to you, hook onto that and go down that path. So, again, one-on-one talks, nobody's going to be able to give you a deep dive in a forty minute talk. Are you ready? Okay, so, at like three minutes or somebody, somebody will be like, hold your fingers, three, don't do like, I guess you could do it every minute, like one,
two, because I kind of got a feel for how we have to do this, and I have to talk really fast. So, here we go. How to build a processor in ten minutes. And, no pressure is a total failure. Alright, ready, set, start your things. Okay, so, we
got this guy, his name is George Bull, he's cool, he comes up with this type of logic, um, where he talks about these three fundamental logic gates. Um, and, or, and not. How many of you heard of that? Raise your hand. Yes, we all heard of it, okay? So, if I take a piece of wire, okay, and I cut it here and here, I have just
created a logic gate, it's called and. Why? Because if I connect the wire here but not here, the electricity doesn't flow. If I connect it here and not here, electricity doesn't flow. If I have two cuts and I put them both down, this and this, electricity flows through it. So I can make an and gate with a wire. So we have the first fundamental logic gate. Or, I can take the same wire and I can run it in parallel.
And I can cut one or cut the other and if I connect one of them, electricity is still gonna flow. So if the top one or the bottom one go, we'll have electricity. Or, not. Not, okay, can't laugh, you're gonna take my time. Not is gonna basically invert the signal. We won't talk about how we do that, let's just say that you can
do it in electronics and if you're interested in that, think about that. How does that happen? Google it. The first fundamental piece I'm gonna build. So we have three fundamental building blocks. We have and, or, and we have not. And I claim that if you connect them in this particular configuration, I will have this thing that I am going to call an adder. But this is a half adder because there is not a thing which people call
a carry in. This takes two bits of information. One and two. And if they are both one out the ass end comes a zero and a one which is a carry. If that doesn't make sense to you, Google it. Look up half adder. It's on Wikipedia. The important point to take away is two bits of information in, one bit of information out and a carry bit out. So
two in, two out. Boom. So we gotta count. How do I make a counter? Trick question. Ha, I'm burning the time just to make you nervous. So we're gonna take, we're gonna take that half adder and I'm gonna shove it inside a box. And this is called
abstraction. We do this a lot. We do it in everything we do. Everyone does OOP programming and all these other things. I need to take circuits, shove it into a box because we're gonna grow complexity. So everybody's comfortable with the fact that that box represents the two things coming in, one thing coming out with the carry. Yes? Go. Incrementally better. I'm gonna stack these things. I'm gonna take one and I'm gonna put it on top of the other. Now I claim I can have two bits of
information coming in and two bits of information coming out with the carry. Everybody cool? If you don't understand that, look up half adder and stack it. So that brings us to an important point. I said two bits in, two bits out. So we have to use this thing we call hex to represent the numbers. If you're not familiar with why we use hex, I would challenge you to take a bunch of switches from Home Depot home
with you tonight and take the first switch and sit and look at it and say how many things can I represent with a single switch? On and off. Two. Binary. That's why a computer uses binary. But I just said we use hex, not binary. Why is that? Because on standard systems when we first started, it didn't make sense. You can't do a whole lot with a
single bit. So we added a bunch of bits together. The basic standard of bits. So if I take one switch, I get two things. If I take two switches, I get how many things? Four. If I take three switches, I get how many? And if I take four switches? Sixteen. So we need at least four to represent decimal which is our natural tendency to count because
we've got ten of these things. Right? So we have to go up to four bits. But if we only go to ten, but we used four bits, we wasted some. Because you just told me we could go up to sixteen. We don't want to waste those. We want to be efficient. So we use a different representation or number base, also called a radix. Look it up. And that number base is base sixteen, also called hex. By the way, on a side note, there is a
number number base or radix called heximal which is base six which is what I believe a pirate would count in because he has five fingers and a hook. So a bit negative. Okay. You just told me the computer only has one of the zeros inside. How do I deal with negative numbers? Shit. I don't know how to have a minus sign. Oh shit,
we're at four minutes. Let's go. So I need to have a clever, tricky way of reassigning what numbers mean in binary so that I can have negative. There's this cool thing called one's complement. Well, that kind of sucks because things didn't line up right. Look up one's complement. Then look up two's complement because we said I can take one's complement and I can fix it so that we can do this cool thing
by having negative numbers that cancel each other out when we add them together and that's where two's complement comes from and I claim that this circuit here will give you two's complement representation of a number. Look it up. There's these things called sobbing pots everybody hates in class so we're going to skip it. Get off your half
adder. I claim that it's a half adder because we didn't have a carry in so we want to fix that. I claim that the logic of a carry is A and B and it together. If A and B are both one, then I'm going to get a carry. Full adder is what I get from that. We're going to shove that into a box because we're going to abstract and go further because how much time do we have left? Five minutes. Fully stacked. Now I'm going to
take my full adders, I'm going to stack them together. This is a representation of a two bit. I would leave it as an exercise to the reader to extend it to four bits so we can get our four bit microprocessor. Guess what? It looks exactly the same. Just keep stacking. So, full. If you have four full adders in a box and put them
together, you get what is known as a four bit adder. You have a carry in, you have a four bit number on the top, four bit number on the bottom and out the other end comes the answer plus a carry. Let's go. Would I steer you wrong? Okay. We can now represent numbers kind of inside but I got to steer stuff around inside the processor. So how am I going
to do that? I have to have a way of steering stuff around. We have these things we call mux. Many come in, one comes out, I have a way to choose it. So this is kind of like a traffic cop inside. I also have to have the opposite. I have to have one come in and I can drive them to other places. With these two things called a mux and a demux, I can steer anything, anywhere I want it to go inside the processor. Cool? If you don't
understand it, Google it. Stack the deck. If I take two muxes and put them together, I am building six minutes. Okay, we gotta go. Stack the decks. Two muxes put together, out the other end, I can control where data goes. You all get the point. We're controlling the flow of information inside the processor. By the way, why does this matter? Because we're eventually going to get to registers and those matter when you start doing code and you start programming in assembly. What
you're going to do if you're going to write shellcode. So, shut up if you don't want to hear this. Just kidding. So, logic. Inside the processor, in order to not just be a calculator, we have to have logic, right? We have to be able to do logical functions on the data we put in it or we have to be able to do arithmetic. So, we have this thing we call an ALU. That's from the TV show V. ALU looks like a V if you look at
it. Those of you who get the joke, if not, Google it. So, you take all of this stuff, you shove it in, the ones that complement, the twos complement, you put it in, and we are going to create this thing we call a neg not circuit. A neg not circuit says I have data coming in and coming out. And with those two control lines down
there, I can either choose to negate it or get the not of it. So, I have the ability to do a function. So, oh, let's go. And or with no pass through. Information comes in, comes out the ass hand with the control here. This is all abstraction that we just built up to. I can take data in. As it comes out, I can choose to do an add or or it. So, I have math and logic in that place. So,
this is with a pass. All I did was stick a mux on the end, which we talked about before. I want the data to either be processed on or not processed on. That's what the mux is for. That's what the pass line is for. Let's go. So, I stick all that in the box. I get the and or chip. ALU. There it is. In all of its glory. That is basically in essence what you have inside your processor at home. Now, there's been a
delay. There's this cool thing called propagation delay, which we now don't have time to talk about because we're in a hurry. So, look it up. Basically, it says data takes an amount of time to go through all this crap and come out the ass hand. Now what? We have the ALU. I need to be able to produce input and store it and then I'll have my fully functioning computer. So, I have to have these things called decoders. But guess what?
That's exactly the same thing as demux. Well, shit. Why didn't you just call it that in the first place? So, I can decode my decoders and decode the decoders of the decoders. In which case, I can grow the address space and I can go from 4 bits to 8 bits, 16 bits, etc. Basically, this is just stacking decoders. So, I have flip flops, flip flops are really cool things that are latches inside that hold information so I can now
have not just a state machine, but I can hold stuff over time. Pick your logic, combinational or sequential. We're gonna talk about sequential because that's what computers are because we have to have memory. So, we're not just based on the here and now or the state. So, then we build these things called registers, which are a flip flop with the shit coming in. So, we have the thing that can hold information. Those registers are
what you see when you open up like Ida Pro and you say register whatever. That's what we're gonna get to this really quickly. How much time? Brains. This is a brainless microprocessor. You got the ALU, you got your memory, which we just assigned. Control coming in, you notice the control has nothing there. Shit, this is a brainless microprocessor. So, we need a brain one. So, how do I do that? I take that. I've got
buffers on the side. That's the data or the program. I've got a thing called a decoder, which takes my instructions. But I don't know how to control it. See all the switches in the middle? So, I need a thing called a RAM. We need to go from the one on the top where the control lines are blank to the one on the bottom and we'll have everything
done. PC address generation. PC is called our program counter. We have to be able to step through the steps in our program. We saw we can do an incrementer from an adder. So, we got that piece. We got the mux. We have a thing called a ROM, which basically defines all the control signals for what I want this thing to actually do. I put them all together and that's your full processor. Ten minutes of your life and you
won't get back. How many of you guys are in college? How many of you have taken
digital logic? I want you to go up to your processor or your professor. I want you to demand your money back. Say I got this in ten minutes. Where's the cliff notes? So, not a joke. A little bit of feedback here because I prefer to talk to you guys. I hope I gave you some hooks of maybe some things to look up about basically how a computer
works. Because a lot of people don't understand that. And everything's abstraction. We went from pounding rocks and starting fires to a PlayStation. Shit, how does that happen? Do you think your average person can tell me how the insides of a PlayStation works? No, no, no. And that's the whole point of abstraction. Is that I'm
going to build up the pieces. But I would argue as hackers, having these fundamental basic knowledge points are what is going to cause epiphanal stuff. I will argue with anyone right now. Everyone will say, oh, there's no longer a need to program an assembly. Okay? I'll have the argument with you. Or I'll have an edifying discussion with you where you'll teach me stuff that I don't know and I'll change my
mind. Because that's the other thing that people in this community need to be willing to do. You need to be able to change your mind if somebody explains something to you that makes more sense. And I think there's too many people that get fixated on their ideas. So, excuse me, I'm going to take one more drink of water because that really took it out. I want everybody in this audience right now to find one person next to
them that's not somebody they know and introduce yourself in the next 30 seconds. Okay,
okay, okay, okay. Alright, let's focus, focus, focus, focus. Okay, okay, okay.
Bring it back in people. Bring it in. Come on, come on, come on. Okay, what just
happened just then is fucking awesome because that's what DefCon is for me. It's the people and the interaction. Okay? Those of you who came here thinking I'm going to sit with my laptop unless you're doing CTF or you're doing my challenge but this is the best part about my challenge. CTF, you know, they're going to sit in isolation with your team with
your head down on your laptop and you're going to talk to them. You're going to do my challenge, you're going to talk to other people because you don't have a choice. So it's all about the people for me. By the way, I just morbid curiosity, how did the teleprompter people do with that monstrosity you just went through? Awesome. Awesome.
So how did they deal with, uh, foreign language? Can we see? Yes. I'm not a first time speaker. I, I don't, I don't drink. So thank you. I, I will, I will. Thanks very much. I
just, so that's a perfect example. Yes, we, we have fun here at DefCon. I encourage you to challenge the speakers. If somebody's saying something here that you think is
bullshit, go up and talk to them. Okay? Challenge people. That's what we're here for. I want people to challenge me. I want you to come up to me like, dude, I thought that was crap or whatever. That's how I get better. So, yeah. So I will, uh, prepare you for 101 if you go, not 101, uh, the opening ceremonies tomorrow. So like I said,
usually Thursday was our fun day where we were just kind of joking around. And it's kind of evolved into another official day of DefCon. DefCon didn't used to be Thursday, Friday, Saturday, Sunday. It used to be Friday, Saturday, Sunday. So this is, uh, this isn't technically DefCon because we haven't officially opened the conference yet, but I
think that's crap, so. Yes it is. 101 is official. Yeah. It is, it is now. It is now, but it wasn't. Now that you're here. Amazing. So after this talk, by the way, there will be a 101 panel where we're going to interact with you guys more and talk with you more. And then tomorrow, opening ceremonies, I will talk more specifically about the badge
and some of the production and some of the problems we had. And some of the craziness in the program, but I kind of like to give a reward to the folks that make the effort of coming to the 101 stuff and talk just slightly about, uh, some of the challenge stuff that may give you a little bit of a leg up if you're competing with other people. How many people in this room are actually working on some aspect of the
puzzle right now? Or have? Or thought about it? Okay. Um, it, I hope it's kind of fun. Um, it's a little bit painful at times. So let's talk a little bit about the, uh, the math that you see in the program. If you look in the program on the second page where my ugly mug is at, um, there's, there's some equations there. Everybody see those?
Everybody see that? The math that's there? How many of you looked at it and you're like, hell no, I didn't come to DevCon to freaking do math? Hell no! How many of you
are familiar with a website called Wolfram Alpha? How many of you tried to put that equation into Wolfram Alpha? And how many of you guys went, what the fuck am I looking at? Now, second thing that was designed to stump you guys, and see what I'm doing is I'm talking about an aspect of the challenge that hopefully will give you a
hook or piece of information you might not have already known. If you did, you're really freaking smart, come talk to me because I want to know you. Um, there is a, there is a way of representing equations in, uh, basically in a, in a line of text because you're like, how the hell do I put an integral somewhere? How do I do stuff? There is a thing you can look up called reverse polish notation and it sounds like you're being, like, racist but it's, it's not. It's really called RPN for short,
reverse polish notation. It's the way those of us who are old, like me, used to put data into a, a calculator. Holy crap, I just realized, I just realized, no, but I just realized you, you were like a foot taller than last year. Stand up for a second. Those of
you who don't know this young man right here, this is one of the smartest kids I've ever met. He came to Def Con, what, two years ago was your first one? Four? He was, like, this tall, his dad brings him and he brings, he brings his dad, I think. And this is why I love Def Con, this kind of stuff. He was correcting speakers. He was
correcting, like, Joe Grand and me and stuff like that. Introduce yourself to this kid because he's gonna go places. Uh, those of you who, like, have, like, these track programs for hiring people, like, when they're young, this is a kid you guys need to meet. He's named Skyler, anyway, by the way. Say hi. So, okay, so, I did a,
I did a puzzle badge for a conference called the Gathering for Gardener. How many of you know who Martin Gardener is? If you don't know who Martin Gardener is, he is the father of what we call recreational mathematics. And he's also,
like, the champ, he used to write for Scientific American doing, like, puzzle stuff. And most of you who've done puzzle-y type stuff, like, in the newspaper or in magazines, he probably influenced that somehow. He's a pioneer. I've got much respect to Martin, who's no longer with us. Um, at that conference, basically, I found we had two camps of people. We had mathematicians and we had
professional magicians, which is a really interesting mix. And I met this guy who comes up to me and was introducing himself and apparently, uh, how many of you know what XKCD is? Yeah. So XKCD had written a comic strip about the time that this guy wrote. And he came up to me and he, he had heard that I was, like, this
puzzle guy and I do all this puzzle stuff. And he goes, I, I made this thing and it got a lot of press because XKCD featured it. And I was in, like, his website got all this kind of, and he goes, but nobody uses it. And I said, you know what? I'm gonna use it. I'm gonna use it at DEFCON. And I'm gonna give you credit for it and I'm gonna make sure people drive to your, so there is a tool and I have a challenge for
people at this conference. Find the XKCD comic, the tool, and the name of the author before the end of DEFCON and come to the 1057 room and tell that information to me and I will have something for you. So that is me giving kind of, like, a mini challenge to the folks that don't want to get hardcore into the competition. It shouldn't take you very much time with Google to, to find. But in
his algorithm, he is able to put in a number and generate functions and equations that produce that number. Now you're sitting here, oh, this is passé, this is easy, I have lots of processing power now, I will just do an exhaustive search.
Bullshit. For any of you who understand how complexity grows, that is not what this guy is doing. And this algorithm is brilliant. And I bring it up for a reason. Because I'm convinced that someone out here that's in hearing what I'm saying right now is gonna look at that and is gonna get inspired in a way to use that algorithm. Because I have an intuitive feel that that particular algorithm is
applicable to some other aspects of what we do as hackers that I haven't quite put my thumb on yet. And if one of you finds it, just give me a nod or something. I don't care. But I really believe somebody out there is working on a problem or working on an exploit or working on something in security that this particular, uh, algorithm would be useful for. I don't know what it is. But I'm throwing that
challenge out there. And you remember I, I said this and it's being recorded. So when some guy wins a Nobel Prize or does something amazing, I'm gonna be like, I helped make that happen. And that's what this is really all about. Okay. I am about dead on my feet. This is what I have for you guys for 101. I wanna know if you
guys have any questions for me. Because I prefer to talk. You guys are new to DEFCON. Ask me anything you want. Like, hey, I'm new to DEFCON. Yeah. What type of IC is on, he's asking what type of chip is on batch? Who knows? What is it? It's
x86 compatible. Oooh. Yeah. Any other questions before I fall over and we set up for the panel? No? No? Really? No question? I'm giving me, carte blanche, like why do you wear those shoes? Why are you wearing Rod Serling on your shirt? Yeah. Yell it. You mean like
this? Oh, the lanyards? So, so I have a question for you. Why would I make different lanyards and then just give it all out in the picture? Ah, meatspace DDoS.
This is meatspace. Oh, after the, after the fact. So generally people that compete in my competition tend to write up descriptions of what they had to do to solve the problems. And I guarantee you somebody will have done that. So, it, this is, confession, sorry guys. I usually count on them doing that so I don't have to. I
really wanna thank you guys for coming out. I hope you, yeah, yeah, go. Okay, so I'll save it for the panel. We'll, alright, I'll save it for the panel. Thank you guys for coming. Oh, and these are awesome Gunner glasses that I love. So, thank you guys for coming.