Life in New York, it's Ding, ask an engineer. Ding, it's my friend, Peck, second me. Hi everybody, it's me, Lady Aida, the engineer with me, Mr. Lady Aida, we're here at the Aida Fruit Factory, so we do all the design, manufacturing, testing, kitting, shipping of the electronic goodies that you love. It's the 100 plus team of Busy B New Yorkers all working together to make this happen. But for the next hour, we're going to stream into your eyeballs the latest news and updates in videos and products from around the Aida Fruitiverse. The Fruitiverse, the Aidaverse, I don't know. Kick it off, Mr. Lady Aida, what's on tonight's show? All right, those jokes are too easy, any verse jokes. I'm just going to stay away from now because like, you know, all that crazy. What? Because like, there's meta, there's the metaverse and all that stuff. Oh, sorry. I was actually just thinking of like, you know, the universe of- I like the Spideyverse. Okay. Spideyverse. On tonight's show, the code is interstate, code is 10% off in the Aida Fruit Store all the way up to 1159 p.m. Eastern. Add stuff to your cart. You get free stuff, we'll talk about that. And then some more tonight. Once Lady Aida tells you what the free things are, but you can start loading up your cart now and put the code in. Talk about our live series of shows, including show and tell, do time travel, look around in the world of makers, hackers, artists and engineers, help wanted a bunch of jobs in the jobs board this week. And you can also post your skills if you're looking for a cool gig. New York City Factory footage, 3D printing, IMPI brought to you by DigiKey and Aida Fruit. We got some new products. We got some super cool top secret. We're gonna answer your questions. We do that over on Discord, aidafruit.it slash discord or discord.gg forward slash aidafruit. We can join all 32,000 of us, almost up to 33,000 will probably happen the next couple of days or show or show or so. All that and more on this show. Ask an engineer. Yay. Okay. Let's pay some bills first. So please everybody use this code. Interstate, 10% off the native root store. LiData, they get free stuff when they add things to their cart. What do they get? That's true. $99 or more. They get a permaproto half size breadboard. One for nine or more. You get a choice of different STEM IQT boards. One, 99 or more. You get free UPS ground shipping. Those are the freebies right now. Okay. We do a live series of shows. We just finished up with show and tell. Thank you, Newman Pedro, who did show and tell. We had a video show today with Hackaday on the hack chat. So many shows. And then it's been really busy here at Adafruit. The demand is really high for all the things that we make and sell.  We've been in the recovery mode from the last couple years. So it's just been really busy. It's been 24 seven. So sometimes when the show and tell is happening, we don't want to stop doing it. So we have a team and Newman Pedro, we're doing it. Sometimes JP does it, by the way, happy birthday JP. And then on Sunday, we have a show called From the Desk of Lady Eda. Yes. And this one, we do it in two parts. So the first part, you usually talk about things on your desk. Oh, I designed it so much hardware. So I showed some of the designs that I worked on. I worked on this Ice Tube Trinky because I got some Sam D 21 E 18s. I got like a reel that I ordered like nine months ago finally came in so I can do some more tricky designs. So I showed off using how to interface with the VFD tube.  And I think I also showed off an INA 228 or like a PKO QT.  I actually don't remember anymore. Okay. Yeah, there's a lot. That's why we have the show. Sorry. And then we do this thing called the Great Search. And the Great Search is where Lady Eda uses her powers of engineering to show you how to find things on digikey.com. What were you looking for this week? Oh, well this week I was looking for a low cost, actually it's funny, like I was searching for something and what I was normally gonna show off was in stock but I found an alternative and I think I might actually use the alternative part. So I learned something on this Great Search is a low cost, low current, 20 to 30 volt boost converter. These are often used as biases, bias voltages for VFDs or OLEDs. You know, if you're using a smaller voltage sometimes you can go with a switch cap converter which will give you like five to six volts but sometimes you really just need like 20 to 30 volts. Not a lot of current, maybe like 10, 20, 30, maybe 50 milliamps but you need a little bit. But there's some pretty low cost boost converters that you can get. And I showed what I think is the AP2102 which has a very nice input range, a very nice output range of a little boost converter. You know, high frequency and a fair amount of current. So a nice little chip, it's like 20 cents, 30 cents. Great deal. Okay. So again, on Tuesdays we do JP's product pick of the week watch that over on YouTube. We record those, we put those up and then JP has a show tomorrow which is John Park's workshop and I want to do a little bit of a preview. So a lot of the early maker stuff that happened was the, I think the first time there was a combination of like old meets new. So there was rotary phone stuff. Spark phone did a thing, I did a thing, had stuff going on at make. We've recently been posting up some retro photo sets. I have a princess phone over there. But JP's working on this really cool thing you'll see and you'll want to see this on Thursday. It's a rotary phone project. So here's a little preview. Okay. And then JP has a segment called the circuit python parsec. I'm not gonna play the video but I think we've got a bunch going on tonight but you can watch it on any of our video channel. So in case you haven't seen a rotary phone cause like some people haven't, I have to remember that. This is one from one of the photos that we recently did. This is a princess phone. Yes, it's a handset. Yeah. And then. It's not a game controller for, you know. I don't think anybody can use that. But yeah, you would dial when I was a kid and we had one, we quickly went to touch tone but you had to pay for tone service. Remember that? You had to add like a dollar 50 charge to your phone bill.  Some things change and something happened. Phone company still kind of figure out a way to charge for almost anything. This was a bell. This is an original princess. You can even see the little, barely it says princess from the bell system. And this is like, it weighs like 30 pounds. It's a hefty. It's heavy. But it's a very nice pink color. It's from Western Electric made in the USA. This is the C3. Yeah. And then, you know, during different times there was a cold war. This is a different type of phone. This is a phone from Russia and it can only do one thing. It can only, when you pick it up, it calls the Kremlin or if it rings it's the Kremlin calling you. And this is- So rad. Isn't this neat? Yeah. Oh yeah, wow. It's even made in USSR. Yeah. That's so cool. I have the original box for it and you can see there's no buttons on it all. So put this underneath the, it looks like a 3D model that someone- Yeah, this is like from another world or something. Yeah, and you don't need to dial anyone. Just the Kremlin, the Kremlin calls you. They call you. Yeah. And the Russia phone calls you. So this is what it is. Yeah. And then it looks like this and then there's an extension marker on the bottom. Looks like they could put like one button on it. Maybe. And then here you can see it says made in USSR. Yeah. And so- And there's like two huge bells in the back. Look at these gigantic bells up. Well when they call. Yeah, you wanna pick it up? Yeah, you don't have to- Yeah, if you don't pick it up, Yeah, really. Yeah, you're not gonna make it. So that's that. This is gorgeous though. Look at this beautiful design. Really? Yeah. And so, yeah, you hang on to that. Okay. And then- This is the thing, you put your phone like this. Yeah, so we'll- And then your neck would hurt because you'd be calling your friends for so long. So we'll show the better photos that we have. We just put up this. This is a clear phone. This is the bell south version. Radio Shack made one. But there is this trend for a while where there was clear phones. Clear phones were just like the thing. And so, there you go. It's a bell south clear phone.  Two neon bulbs. Yeah, and then the other last thing, and this is a modern thing, this is Fisher Price. Someone had said, oh, you know, you should make this into a Bluetooth phone. So this is the Fisher Price Bluetooth phone and it acts as a Bluetooth headset and when the eyes move around- Like you purchased it like this? Yeah, this comes from Fisher Price, just like this. You move the wheels around. Yeah, it looks like there's a battery charge. Yeah, you charge it up. You can use it as a headset. Oh, it's USB-C. This is really modern. Yeah, you use it as a headset. You can dial, you can do things. So there's a few things. We're gonna take it apart. Sorry, little guy. This is the way it is when you- I'm actually kind of curious how they would be used inside because this is interesting. Yeah, this is what we do here. Okay. So I'll show you some of the pictures. 2021, this is very recent. Yeah, this just came out. Okay. So adding that to collection. So on Friday, he's beginning live shows and more. Deep Dive with Scott. Scott will be around on Friday doing his show and do catch it now because Scott's gonna be away for a bit, but he will be back and meanwhile, foam guy will be doing some of the shows on Friday. Yeah. So I think Scott's doing a recap of a little bit of Python 2020 stuff. I'm gonna be doing that shortly. Let's do some other time travel. Okay. Time travel, brown world makers, hackers, artists, engineers. First up, if you go to our blog, there's a couple of things going on. First up, happy Chinese New Year. It's the year of the water tiger. And it's also Black History Month. For us, we reflect on the contributions of the black community and the struggle for equality. There's a lot of things going on here in New York. There's lots of legacies and achievements of black New Yorkers. And this is one of the things that we're very proud of. We do every year, check out our website. You can see some of the stories. There's a lot of stories that haven't been told. We're just an electronics company, but we have what we think is a pretty nice editorial section on our blog. So you can look at each year. You can go by each day. We usually have something each day. Today is the second. And you can see some of the events. There's a lot of stuff going on here in New York City as well. And for Chinese New Year, check out some of the posts that we have that as well. And we wish everyone who celebrates a happy New Year. All right, so we have some other time travel stuff. So I've been posting up photos. This one I took with my black and white photo. This is a next mouse and a sun mouse pad. These are two bitchin' logos. Look at that sun logo. Could you come up with a better logo? No, I don't think so. It's a good logo. It's a good one. And the next logo is up there. These are two of my favorite logos. And that's a mouse. And then that's a version of a mouse pad. It's a metal one for the specific type of mouse. We have a 30 plus year old box copy of Hypercard. And this is the first time it was ever opened. And the discs are still sealed. And so we'll be imaging these discs and we'll be putting them up somewhere online so people can get the original downloadable copy. Oh God, I really wanna install this on something. Everybody wants to install this. Then we have, this is real. This is Apple's Power CD. It was a CD player that could plug into your Mac. And you could listen to music. It came with remote and you can also do a few other things. I saw this, look at this like beautiful, elegant, smooth design. And then it's like gurgonk, Centronics, SCSI connector. With like this wire tap. Why doesn't everything have a SCSI connector? Here it is, different angles. Gorgeous. So we've been posting this up. The remote is also a kind of work of art. And then as I said before, we have these photos of retro phones. So what we're trying to do, we started this project before COVID started and we just had to put it on pause because it was let's just survive the next, however long this takes. So we had some of these photos already and then we resumed some of them. So I literally dusted off some stuff. This is Sony HIPPIT. This is back when Sony was manufacturing computers the first time back in the 80s. These are like really, really interesting. And then because it was in the news, Sony just bought Bungie, Microsoft bought Blizzard. So there's all this consolidation. Someone said, well, who's Apple gonna buy? And Apple already did a game console. A lot of people don't know about this. This is from Bandai and it's the Pippin app mark. And it's a powered by Apple computer. I think there's something like a quadra or like a power PC inside of it. So cool. And yeah.  Here is Eight of Box news. As you may know, we are doing. Yeah, we're still working on it. There's a little bit of a chip shortage out there as you may know. And Lunar New Year. Yeah, and Chinese New Year and all that stuff that's going on. So we're shipping probably March. This is our winter edition, winter spring edition ish. So we will be running out of slots. I think we just did. Yeah, we just did. So that means. We signed up. Yeah. So that means that you can just go on the wait list. So if you go to ateobox.com, put your email address in. When we have any openings you'll get an email. But right now I think we are full. So thank you everyone who signed up and this will be an excellent ateobox for sure. We added some more things. So we have this gallery of t-shirts. So people at Adafruit wear really cool shirts. A lot of them have skulls on it or something. And this is a rare one because it's not black. And this one is, deal with the devil, cute shirt. And we put these in our gallery, ateofruit.com slash NFT. And in that gallery you can see all the shirts that we have. I'm going to go to the gallery right now. And we also have some handy things for folks who do speaking agreements and stuff like that. So if you are worried about kind of like what happens with Lady Aida, sometimes photographers take her picture and we have to make sure they don't turn her into an NFT. The gallery of course is a little bit of a joke. It's not an end, we don't do NFTs. But this is nice, fricking t-shirts. So you can see all the t-shirts. We have a lot of comic book theme ones. This is, Vance has an excellent collection of shirts. This is a black band shirt that Vance has. Well it's actually a good idea because Vance has so many shirts that I kind of want to like photograph every day so we can actually determine how many shirts he has because like nobody knows. There's a lot. And so you're probably saying, boy, this is nice and everything, but... But I wish you did NFTs. I wish you did NFTs with a plural, NFTS. NFTS. And so we do. So this is our big announcement. We're pleased to announce nice fricking technology socks. These are floppy socks. This is in front of a next carpet. This is in our apartment. And you can see the floppy stitch work on here. These are my digikey socks. This is the command line hero socks that Lamore got because... I did a podcast. Yeah, because Lamore was on a podcast. And then as soon as we started posting these online, someone said, hey, I've got Haxter socks. So now we have a collection. Four at four is a collection. Yeah, they're minty fresh. No gas fees were involved with this. So check it out. Adafruit.com. It's a little stinky though. Something you don't even wash it. All right, other little bits of time travel this week. We did the hack chat. So go to hackaday.com. You can check out the transcript. You can also go on our YouTube channel or Twitch or Facebook or LinkedIn or Twitter. And you can check out the live video that we did. We also showed a bunch of cool hardware that we've been working on. It was nonstop floppy fun. Yeah, and they made a great poster. Thank you Alec for the cool poster as well. Okay, help wanted. Jobs on the jada, jobs on the jada fruit. You know the words you're blending today. I've been up since four. It's been a long day. Jobs.adafruit.com. Lady and I look at these jobs, make sure they're not scammy or sketchy. The real, three things. Another one just came in, but you know, came in right after I started doing the show. Director of the Shelby family, Ideal Lab. Check that out. That's at Skidmore College. From where engineer for battery management at Analog Devices and a lead hacker at Hat Club. In Vermont. In Vermont. You like hiking? You like climbing mountains? You like the outdoors? Move to Vermont. So check that jobs.adafruit.com. And you too can get that dream job you want or you can post it for skills and you can work for folks that are looking for things that you do. All right. Thanks everybody. It's Python on hardware time. All right. This week, and you can get this newsletter anytime. Made it for daily.com. We don't spam. We don't, harvest email address. We don't do anything like that. So newsletter this week, lots of recaps of what's been going on. Floppy chat, what we just talked about. Apple was removing Python 2 and Mac OS 12.3. This is actually kind of a big deal. Thank you so much. They've been shipping this forever. It's such a nightmare. And then we tell people, hey, use Python and it's already, there's a Python 2 already. Yeah, it doesn't work. And it's always like you have to update and then everything's broken using Homebrew. I'm so glad they're going to move to Python 3. Hopefully 3.5. Hopefully they don't, at least I hope they don't like, okay, it's 3.2. We'll just skip to four. And then there's circ Python SDK for cloud data. Get checked it out. This is from Glythe. The Pycast celebrates 10 years of Raspberry Pi new episodes with more ebb and more that's coming up February 15th. So next week that we get after. Really, yeah. I have a schedule. I'm busy using ESP 32 S2 and Circa Python to teach web security. Super important. And Circa Python show will be coming out pretty soon. What's cool about that is we don't need to do it. It's a community based show. Liz has a new MIDI guide with Circa Python. And this week, the thing I wanted to talk about and the recap of recaps is the big thank you. So we put the call out, Circa Python 2022, happy new year. And Scott has a summary post of all the things that people want to see in Circa Python. It's a community driven effort. So this is how we get all the ideas. This is how we work together. And what's cool is when you check back throughout the years, because we've been doing this for a while, you can see all the requests that came in.  Oh, we're working on this one. Oh, we worked with MicroPython on this one. So just a quick thing, CycleMatch, Jeff, Dexter, Kelly, Matt, Pierre, Blake BR, Retired Wizard, Mimas, John Hind, me. Patrick, Scott had some, Ann, Mark, Mark, Ken, Fummy Guy, Deshipoo, MD Roberts, Tammy, Charlie, Gotly Dog, and Cady. Yeah, Gotly Dog. I thought it was Gotly for a second. Oh, I see, yeah. It does look like a little dog. It does look like that. He said, go little dog.  Go plucking. Yeah, so check out all of these because they have a lot of great suggestions and this is, like I said, how we get things done. So thank you. We do this every year and now it's time to get to work and get these things in the circuit of Python. We have over 250 boards. Most of them aren't even from Adafruit, so things are working out. Learning Python could be intimidating. Doing electronics definitely is intimidating, but now you have the ability to do a little bit of both and get really far in the first golden minute if you want to get that project going. And easy to get going and there's always something more to learn. So thank you everyone who participated in this and sending their stuff. And that is Python on Hardware News this week. Yeah, Blinka. Okay, Lady, we are an open source hardware company to prove it. That's true.  I do have one bit of news and this was just posted right before we went live, so I didn't get a chance to put it in the show. The open hardware summit's gonna be virtual again this year. Go to oshawa.org, check it out. The details are there. It's in April. We're a sponsor and we'll be lurking around somewhere in some Discord or StreamYard or YouTube thing. So you'll see us. And if you couldn't travel to New York, this is your lucky day because it's virtual. So you'll be able to tune in and participate no matter where you are this year. Back to open source hardware, which we do, 2,617 guides. Lady, what's on the big board this week? All right, we have some updated guides. I think Melissa updated this guide. We've also got some more updated product guides that have had the Arduino instructions and added. RP2040 now has a lot better Arduino support and so I can't even go through and mirroring in all the instructions and updating them. So if you have any of our existing RP2040 boards and you wanna use them with the Arduino IDE, we now think it's totally ready for you to do that and we've got board definitions in the Philhauer core, a lot of our libraries work. It's all well-tested and happy. We've also got some new guides. Yeah, we'll play that video after you leave that one for last. From the right, we've got, actually I'll start from the left. Catney wrote up the start of a guide for the Arcade STEM IQT board. I know this board's been out for a bit, but between people being out and various things during the holidays, it was tough to get to it. But we now have a guide with Arduino and circuit Python code diagrams and more. So you wanna add arcade buttons using a quick connects for LED arcade buttons. We've now got a guide for that. We've also got a cool guide from Eva on taking an existing macro pad called Maypad. And instead of using a pro micro with it, you can use a KB2040, which is an RP2040 designed for use in keyboard projects. And she got it working and she posted up example, Jason for key mapping so you can really easily key map it in circuit Python, but it fits perfectly on the board as expected. Now Pedro worked on a mini VU meter with Liz and we'll have a little video. And then Tim C, who's done a lot of really great display IO projects, did a project to bring Niko Kitty, which was, I apparently was on a lot of platforms, but I had it on my Mac SE30 and my quarter 650 is a little cat that followed around your mouth. So it was an adorable little extension for Mac system seven. And he ported it to display IO and it works with any side screen. And it's a great little example of using a sprite sheet and animation. And also it shows a power of display IO.  But if you have an animated sprite with a background, it automatically clips and only just shows the changed parts. And also you can touch on the touchscreen to have the kitty follow your finger. I have a video, I'm gonna play that video. Hello everyone. In this video, I'm gonna show you my latest circuit Python project. This is a display IO port of a classic Niko animated cat program from old school Macs and other platforms. The cute kitty will run around the display, lick its paws, and as you can see, take cat naps when it feels like it. When it reaches the edge of the display, it will stand and scratch at the edge for a little while. On touch enabled devices, you can touch the screen to place a laser dot that the cat will chase after. Grab your pie portal and load up this cute virtual pet now. I hope you all enjoyed this project and thank you for watching. Okay, time for a main New York City factory footage. And it wouldn't be a main New York City factory footage without our view that's now obstructed by the Disney headquarters across straight. You can see it was kind of windy. I think they put these up because stuff was blown out of the building so they put these as they're welding and doing stuff. And that's a main New York City factory footage for this week. All right, 3D printing. We're gonna play the videos back to back. This week we have a couple things. So, now Pedro did a view meter and then we have this cool speed up with this neat filament. I have a question. When somebody says you have a couple things, how many things do you think they are? Two. You are two with the person thing. Yes, a couple is two. I agree that technically a couple is two. Few is at least three. Many is like five or more. More I grew up, couple could mean two or three. No, that's wrong. I know it's wrong. I know it's technically wrong.  So, when we do things here at Adafruit, we make sure we have multiple backups and copies of things. We make sure that if we have something that's mission critical like equipment. So, we have two compressors. We have two pick and places. We really try to make sure our team members, if they're doing something that's really important. And they have a tool chain that they have to keep set up on their computers. We're like, well, why don't you get another computer? So, you always have one to hot swap out as needed. So, I will even say two is too few. It's not even a couple. It's just not enough. Anyways, that's what we've learned. We've been doing that since the very beginning of Adafruit. It's like, you know what, this is working out. Let's get two of them. And then let's get one more. We did that with our internet connections too. Adafruit has multiple redundant internet connections. True, and you don't need them usually, but then once and while you do. Yeah, I remember when it was like, wow, like all the internet for everyone in lower Manhattan is out except for ours because we had like a fourth other connection. We had, yeah, the backup, backup, backup was the Fios connection. Yeah. Yeah, sorry, the cable connection. Yeah, there's also a microwave dish anyways. We're gonna play two videos. Let's do it. Hey folks, in this video, we're making a VU meter with Neopixels and Circuit Python. This project is powered by the Adafruit QT Pi RP2040 running Circuit Python. It takes audio data from a PDM microphone and maps audio levels to display Neopixels in different colors. We designed a 3D printed snap fit case and exposed the PDM mic on the back cover. The 3D printed grid isolates the Neopixels and a piece of black LED acrylic diffuses the LEDs. Liz Clark wrote the code for this project in Circuit Python. In the loop, data from the PDM microphone is scaled to fit across the 60 Neopixels using the map range function. The Neopixels are updated when the mic input changes from the last value. A forced statement iterates through the range of input data and an index turns the Neopixels on from a set of colors in our array. The code is available in GitHub and the learn guide features a nice breakdown of the code by Liz. We hope this inspires you to try Circuit Python for your next audio-visual projects. Okay, Doki, and don't forget, you can learn how to make all this stuff and more with November every Wednesday on 3D Hangouts, the longest running, best, and technically only live 3D printing show, but still, it counts. So watch it every single Wednesday at 11 a.m. Let's do this later, are you ready? Hi, on MPI. Hi, on MPI. Hi, on MPI, brought to you by Adafruit and Digi-Key. Later, what is Ion MPI this week? This week's Ion MPI is from Thendtrend, and it's a USB security dongle that's FIDO2 compatible. And folks who remember the series that I did on IoT security, one of the things that I really talked about was that you really want to have, you really don't want to roll your own security management for keys. You don't want to store them. You don't want to come up with your own encryption authentication system. And another thing is you really can't trust your microcomputer or microcontroller cryptographic storage internally. Like all we hear all the time, whether it's online or at like Hope or other HackerCon or DefCon or whatever, or CCC is people cracking microcontrollers and getting keys out of them, secure keys.  I personally think that's the way to go rather than trying to like hide the Xor keys inside your flash memory and then encrypting it because all I've seen is that that doesn't quite work. So what I like about this is that this company makes like a couple pieces of hardware and it's like the one thing they do and the other design for security. And what's neat about these is you can use them in your project. There's four models, but this is the one I'll talk about. This is a fingerprint sensor enabled 502 USB key. So it's a USB-A key. There's also a USB-C version. There's also I'll show you, there's a card version with BLE and NFC in it. There's a button, because sometimes you use a little button to like activate, but there's also a fingerprint sensor on the end and you can program your fingertip on it. It doesn't take the whole fingertip obviously just like the middle part, but you can use that as part of your authentication. So what's neat is I was able to use this with Windows. I didn't get the one that's Windows Hello friendly. There's actually one that's specifically for Windows Hello. I got like the 502 one, but I said, okay, I wanted to add a security key, plug into USB. And then you have to touch the fingerprint sensor and if you have a phone with a fingerprint sensor you know like you touch it multiple times and multiple angles and then the little fingerprint kind of fills up and then it's like, okay, great. It's all set and then now it can be, you can add a pin code if you want to like have another thing for identification, but pretty much the hardware now knows your fingerprint and will use that for authentication. You can also use it to like test your, you can touch it to authenticate to make sure it's you. So that's good. And you also tried it with web often, which is your Google account for example, I have two factor on my Google account. So I made another Google account to test this with, but instead of using Google Authenticator app or Authy or SMS, you can actually use one of these dongles in your computer and with the fingerprint sensor as well. So in your Google account, turn on two factor and then it'll, you know, it works with Windows, whoops, I'm sorry, I'm sorry. It works with your Windows security setup. You know, it knows about the key. You touch the key and it matches your fingerprint and then you can add it. And then whenever you have to two factor in, you can use, you can have multiples, you can have either the key or you can have it also like send your text message or whatever. But I like this because it's like a physical thing.  So it's really protected against theft because like you need to steal a lot to get this. So it's like very high end security, like military level security, but it's like 40 bucks. And it works with a lot of things. And then this is what it looks like after it's set up.  And then it's like, boom, you're set. So what's nice about this also is it uses the Fido 2 specifications. So this was a consortium of companies. You know, Google was part of it. And I think Ubiqui also and a couple other companies. And they sort of came up with an open standard for how the Fido and U2F USB keys and NFC and BLE interface works so that all the hardware kind of interworks with each other, but also all these companies agree that this is all a secure system. And so it's, I like that it's kind of an open standard. You don't even have to log in to download the specifications. Looking at you, BLE Bluetooth Consortium for making me have an account. You don't, you just download them and implement and integrate this security into your product. So, you know, you may not want this for logging into Windows or Google, but you may be making a hardware product that needs really good biometric authentication.  You can't use them as part of a challenge response system to secure the account, to authenticate the account like securely. Instead, I would tell people, use this. This is designed for it and because it's USB, you can plug it into any single board computer and you probably can even port it to a mic controller with it with USB host because it's not that complicated. If you want to interface with it, you know, and you're not using web authentication, I actually downloaded, you know, in like five minutes I got this going, I downloaded Python 502, which is by Ubiqui who is part of the consortium.  And so this looks like it would be a very easy way to integrate into your existing product and it's like, it's okay that it's all in Python because the challenge and response stuff, it can be clear text and it doesn't matter because it's, you know, end to end authenticated from the host which has, you know, the matching like challenge response, like, you know, private key information and the device. So you know that it's secure without having to worry about like dealing with all of that management yourself. It's all kind of abstracted out by the FIDO2 interface, which I like and, you know, I think that this is the future. I think like passwords are over. We're getting close to the point where, you know, people use their phones or their watches or USB dongles as a way of authenticating. And you know, personally, I think like, we should probably not have passwords. Like we're not, it didn't really work out. A little bit like tool chains. Like I'm really anti-tool chain. It got us here. Yeah, it got us here. But it's time to evolve to the next thing. Yeah, it is, I mean, I have a password keeper and everything and it's secured. And you know, I could probably add this, you know, three factor to my USB. I think you just need to do layers and layers. That's how we do the things here. Well, some things are really important. Some things are not, right? So I think that for the stuff that you really want to have secured and have biometric security, this is like a fingerprint sensor on a USB stick. Like the price is really good. You get all that stuff and it's secured into USB and it works with the standard and it's gonna be way cheaper than trying to do it yourself in a product. So yeah, there could be like, you know, we know people who've worked on kiosks for like the TSA. That's an example where you definitely want to have biometric security. You want to know who is logging in and you shouldn't be able to use somebody else's password. You're accessing important data. So I think this is a good idea for people to add into their products. And we have a video and then we're gonna show the location of it on the digi key. And then I'll show it all the overhead too. Okay, let me do the video and we'll see you on the other side. It's only a minute and a half. We live in a technology enabled world, but there are times when technology lets us down. Take passwords for instance. For users, they're clumsy, hard to remember and they need to be changed all the time. For businesses, passwords just don't provide the security necessary to keep important data from falling into the wrong hands. With over 80% of corporate data breaches being caused by stolen or weak user credentials, the time for improvement in user authentication is now. And that's where the FIDO Alliance comes in. FIDO or Fast Identity Online is a consortium of the world's leading technology companies dedicated to changing the way online authentication is done. We're establishing technical standards that provide interoperable mechanisms that are far more secure and easier to use than passwords. From biometrics such as fingerprints and facial scans to second factor authentication devices, FIDO's standards are allowing companies and service providers to better serve their customers and employees. Core to the FIDO approach is a personal device like a PC, smartphone or security key that uses a set of cryptographic keys to securely access FIDO enabled services such as Google, Facebook or PayPal. FIDO authentication data, such as biometrics is never stored with the service, which protects the user's privacy and shields their login credentials from hackers. But the best part is that users no longer have to choose between better security or a better user experience with FIDO, they get both. Over 600 interoperable products have been FIDO certified and FIDO enabling your product or service is easier than ever. FIDO provides a set of universal specifications to build to and a rich ecosystem of products and services to enable turnkey deployment. Visit our website for more information on how to deploy FIDO authentication today. With FIDO, our technology. Okay. Okay, so this is, I have two of the devices and you'll zoom in a little bit.  Okay, one second. Sorry, back it off a little bit. You can do it. Okay, so this is the NFC, I think this does NFC and BLE and USB. So it has, you know, you can do, yeah, you can see here the USB, BLE and NFC. So this one's a little bit more expensive, but you can do USB connectivity.  So it's wireless and you can kind of see the card inside. It's a little thick, but it does fit in a wallet. It's also got a button if you need to.  And then this is the USB dongle. So for this, you can see there's this fingerprint, a capacitor fingerprint sensor on the back, like a little touchpad, but for fingerprints and then a button and then it's the USB-C. And there's, of course, also have a USB-A type. Okay, cool. And the best part about all this, it's available on Digi. Yes, and it's in stock. Yeah, here's a short URL and there is the Digi key. Yes, this is the A type, but of course they have the C in that card. So, you know, pick the one that makes sense for your application. But, you know, it's a standard.  Some users have a MacBook, they get the C. Some users have, you know, a Windows Dell or a laptop or Linux desktop computer. They can use the A and no matter what, they can interface with the hardware. All right, that's on an MPI. Hi, I'm MPI. Okay, before we go over to new products, don't forget the code is Interstate and you get all those free things if you fill up your cart with stuff and you can use the discount code Interstate. All right, Lady Data, are you ready? I'm ready. Here we go. No, no, no, no, no, no, no, no, no, no, no. Okay, first up. Okay, we got about to solar panels. The reason we have these solar panels is the ones that we normally get from Voltaic are not available because of shortages. So they said, look, we don't have the epoxy ones, you know, they're beautiful and glossy, but we have ones that are the same efficiency and almost the same wattage, but with EPTFE coating, so it's a plastic coating. It's still weatherproof and, you know, they're basically dropping compatible. They're just not that glossy style. So there's four different shapes. I think it's like 1.2, 2, 3, and 5 watts. And this, you know, this little teeny panel which is really adorable. This one is the only one that doesn't have the cable attached. You will have to solder wires onto the back. It's a very low cost one. I'll say one thing to watch out for is some of these are five volts and then one of them is six volts. I don't remember exactly which, but check the tech specs. Some of them have 10 cells, which is a five volt panel and some have six cells sorry, 12 cells, which makes it a six volt panel. Why does this matter? Well, you know, probably doesn't and our solar charger boards can use either, but if you're expecting a particular open cell voltage, it will be different, right? Depending your six volt panel nominal will have an open cell voltage of like seven and a half volts and your five volts nominal open cell will be like 6.75 or something. So it's just something to watch out for. But other than that, these are quite nice. These are handsome little panels. Maybe I'll show one on the overhead. Sorry, I'm gonna move this because it doesn't look like a black square. Okay, so you can even kind of see this one has one, two, three, four, five, six, seven, eight, nine, 10. So this has 10 cells, these thin cells. They're monocrystalline, they're 22% efficient. There's like mounting slots on the outside. It comes with the, you know, this kind of standard 3.5 millimeter, 1.3 millimeter inner diameter plug, which is used by Voltaic. But we have an adapter that you can use with this to give you 2.1 millimeter. And then each one is categorized. So I think this is the peak, you know, MPPT peak voltage and current rating and when it was manufactured in their product ID. So there's this one, there's this one, which is a very cute one. This one is about two watts. This one is about five watts, a little bit more, five watts, a little bit more than two watts. This little baby is 1.2 watts, so very small. But this is actually a good size for many projects. It gives you about 200 milliamps or so. Let's see current, yeah, about point, about 200 milliamps or so. And then the big Bertha, which is the five watts, sorry, 10 watt panel. This will give you up to two amps in direct sunlight. So it's so big, it doesn't even fit under the overhead. But they're all very good. And then, you know, while we're waiting for the epoxy panels to be manufactured again and available, these are a very good alternative. Okay, next up. This is kind of a weirdo thing. So this is something somebody sent us and I was like, well, I don't know how useful it is, but it might be useful. So I'll carry it because they're pretty cheap. This is called a JIG, J-I-G. And they're used, traditionally they're used for people who have Samsung phones with a micro USB on the ghost slot. And you would use this to get it into debug mode or like bootloader mode. You know, even if it's like kind of seemed bricked, this would usually resuscitate the phone. It basically has a resistor. I think it's got 300K resistor from the ID pin, pin four of the micro USB for the on the go identification to ground. And I thought this could be useful for some other things.  Like you want to kind of convince something that there is a device connected to USB. Yeah, you could do that with like HDMI stuff sometimes. Yeah, there's just, I just was like, this is one of those like, well, look, it's only like a dollar. So, you know, we might as well get a couple and try them out. You know, I haven't tried this on a Samsung phone. It did open it up and there is a resistor. It's epoxy. So it's kind of like a, you know, I couldn't really open it up and show, but there is a resistor inside. And I think it could be useful for other stuff as well. So Samsung phone, de-bricking, go for it. But anything else where you need to convince a device that there is a USB on the go cable attached with something connected with the ID pin connected to ground. This might be handy and tell us about it because we'd love to know why. All right, let's start our show tonight beside Zulea Data, our team, our customers, our community, everyone in chat is, doo, doo, doo, doo, doo. This is the Interstate 75. This is a board from Pimeroni and they love Blinky stuff. And this board looks a little familiar because it looks like they were like, thought that the Matrix portal was a really cool board design. So why not make a version with the RP2040? Why not indeed? And so they did and it looks great. So it's got a connector for a Hub 75 standard, 60, you know, up to 64 by 64 size panel. It's got the e-address. It's got some extra GPIO brought out. It's got power pins. You can power it via USB-C, which is fine. You can get a couple amps from USB-C and of course you can always disconnect the power and connect it separately if you want to have separate power. And inside there, you can see there's an RP2040. It looks like about two megabytes of flash memory. Stem EQT, quick connector. It's got, sorry, I didn't finish there. It's got, it looks like an RGB LED just for like indication, level shifters, reset, boot switch, and debug port stuff. So an RP2040, can it run CircuitPython? It can run CircuitPython. There you go. You can definitely use it with CircuitPython and we've got core support in the RP2040 for Protomatter which is the driver for RGB matrices. They have their own version that uses PIO which is faster refresh rate but is less integrated with, you know, MicroPython and the display system.  So all that good stuff but you can use either the hardware is agnostic. But, you know, it doesn't have the ESP32 so it can't do wifi on its own. On the other hand, it is less expensive because it doesn't have an extra wifi chip. Maybe everything doesn't need to be online. It doesn't need to be online. This is good if you need an air gap solution. Do you want to show it on the overhead or? Yeah, I can show it. I mean, it's kind of the same demo. This is the MicroPython demo. This is good on the overhead. Yeah, it's got, you can see it's got good dithering, good bit depth. This is a 32 by 64 matrix and it's kind of cute.  So you can chain panels. If you have another panel, you can chain it and just you tell the software, hey, there's more panels. This is a killer board. Hold it up. Does it reach? Yeah, so you can see how this looks and this is all bright in here too. Yes, I love these little panels. They're so adorable. And we stopped the panel so it's easy. Pick up whatever panel size you want because we've got a good supplier now and add in is Interstate 75. New products. Okay, don't forget, you can use the code by these things and you get that free stuff. Let's do some top secret while folks load up their questions in Discord, Adafrit.it slash Discord. Join us over there. Let's do some top secret. Yes. One of the questions come in. You ready? Yes. Okay, first top secret is going to be me and then you're going to do your thing. Okay. All right, so I think we're going to try to do a run of these shirts eventually because people are going to start going outside again and I don't want to do like a tech t-shirt. So you can meet an artist who does textiles and stuff like that. So this is my wave bubble shirt and I'm going to zoom into it. Same shirt. Yeah, this was one of the things that I wanted to do was a line of shirts with Lediata's design. So this is a schematic of a cell phone jammer and it also jams wifi and Bluetooth and everything. What's cool is people can debate the legality of making cell phone jammers and all that and they can debate the legality of your existence, Lediata. But what they can't debate is you can put it on a shirt. It looks cool on a shirt. And it looks cool. Nice freaking t-shirt. Nice freaking t-shirt. Well, yeah, it's a button down shirt. It's a button down shirt. Yeah, so we might do that. And depending on what people think and I put it on the socials and so far it seems like people want to do them. So this is, maybe it's coming soon, we'll see. Lediata, I put this up online and I said, hey, everybody, what do you think this is? I gave them some guesses. And for the folks who guessed the thing that bugged Neo in the matrix, you're right. This is what we're making. What a cool animation. So what is this, though? This is a single tube VFD because I wanted to make it tricky with the single VFD tube. Because I think that's important. I think that'll be useful for people. So I did start getting the pinouts checked out and the voltages checked out on this tube. And I got a glowing. So I was able to get the design going and hopefully we'll get a prototype soon. Okay, and you wanted to show? Oh, I didn't bring stuff. I was like, I thought we would just do videos on there tonight. Okay, yeah, we will. So, yeah, that's great. So the good news is after this, we're gonna make more hardware and we're gonna fill more stuff. And I have two videos I'm gonna post later, but that right now is gonna be the top secret for this week. We have a lot of stuff that we're working on. It's been 24 seven here. Okay, so I'm going to start getting to the questions. One question that I think that's funny because the little hot plate is so popular, the mini hot plate that I actually made it. I made a short URL. So for a super flounder, it's atifruit.com slash mini hot plate. So every time we do a time-lapse. I know I gotta add it to time-lapse. Well, every time we do a time-lapse with it, the time-lapse is fun and you're amazing. You can do, you know, reflow and all the stuff, but the sim is a little hot plate comes out. And it's like, oh, it's so cute. But here's the thing. If you're making little boards that are like one inch by one inch, it's perfect because it heats up in like a minute and a half. It's like, I have, you know, I have larger hot plates that I've used, but like I'm actually better off. It's like, it's more fun to just use the mini hot plate for small designs. And then just use the oven for bigger ones. Here we go. I'm interested in the current flaws of NFTs, but I'm curious opinion about the future of blockchain technology. Like, in case, apathetically, the current environment and ethical concerns were resolved. Do you see a need for it underlying technology in the future? Would it be better if it was shifted more to the global web host for Ledger of JPEGs? I know it's a very touchy subject and creates possibilities of where this technology could lead. So here's the good news. We've been doing databases forever, you know, with computers. And this is like the first thing we did. We love storing data on computers. And there's so many, there's so much money and there's so many people trying to find a use for this thing. Blockchain technology and all that. The good news is Adafruit has nothing to do with it. We don't have to, our existence has nothing to do with these things. Whether it succeeds or fails, it doesn't affect us. Yeah. And so it's a shame that it never became a practical currency. Like that was the dream. Oh, you mean as far as Bitcoin? Yeah. I mean, I think that was the dream and it clearly did not happen at all. And it's, I don't think it's even like early. I think it's like, it came and went and it didn't happen. And, you know, I think it just, yeah, it just isn't the right solution and we should look for something else. I don't know. I'll answer the question in a different way. Generally speaking, I'm optimistic. Technology optimistic. And I think sometimes when new things come along, they're not great. And when new things come along, a lot of the people that are involved are not great. And there's a gold rush and land grab. There's all sorts of things. But eventually that goes away and there's really good technologies that come out and there's very impactful things that humans can do. And I kind of look at it like AI. So whatever happens with AI, whatever it evolves to, the people that make it, we need to be good people and we need to be good to one another because if we're gonna make things that think, we have to get our, you have to put our house in order first. And I really hope we work on ourselves before we decide to give inanimate objects a bunch of anxiety.  Anyways, that's just my opinion. Okay, what's up? Is that T-shirt open source? Yeah, of course. If we make any shirt, the design will be open source. We'll be able to do things. Just don't make an NFT out of it. Next up, other questions. I put a link to the Miha plate in there. Any update on the release date of the QDPI ESP32 and with component short, is it a challenge deciding how many to launch when you're planning on launching? It'll probably be on a couple of weeks. You know, waiting for getting the PCBs in. And of course there's Lunar New Year, everything's kind of delayed. But the parts are not a problem for that. The expressive chips I've been able to get fairly easily. They're on top of it. RP24 is an ESP32, so it's been quite easy to get. Okay. Can Adafruit design a Raspberry Pi for mini IPS2 or like a RetroPi DS using two screens like the original? We could, but I don't have any plans to, but you could take two of our screens and wire them up and it would just work. You can definitely access two screens using the two CS pins on the Raspberry Pi. There's actually a second I-Squared C port like we did for the Monster Eyes project. Question, I love that the StemAQT7 segment display stuff. Question about the seven segment LCDs. A while back I restored an old Keithley bench multimeter with a fresh TN LCD display. I really love the look and the low power consumption alpha America LCD displays. DigiKey usually has them in stock but I don't see a lot of projects with them. Have you guys tried build stuff around LCDs? You might like next week's new product. It's a StemAQT-TN LCD. I like the standoffs that use with the I-75RP2040 board and your macro pad. Where can I find these? Yeah, these are, we use them because they allow, they mechanically bond to the PCB. They're actually quite inexpensive and it allows creating of an enclosure quite easily. I actually don't know of American source for them. They're called SMT nuts. That's like literally the name because they're nuts but they're surface mount programmable. I think DigiKey may stock them. Maybe I'll do an IonMPI or sorry, a great search where I show it off because it's, some people have asked but yeah, they're pretty cool. Yep. I think we stock them, we stock a couple of sizes in the Adafruit shop by the way if you're looking. We have a couple of different facts. I love for Adafruit to carry a USB-C PD buck supply modules not anywhere in the US yet. The what? These are USB-C PD buck supply modules. Yeah, I don't, there's not a lot of USB-C PD stuff that I've gotten that has been reliable. Do we ever sleep? Yeah, last night I did, I got, so we're on almost opposite schedules right now. So January was like a year long and we just had just a lot of stuff to keep our team safe and keep Adafruit going. So I was getting up really early and first it was like five and when we started doing Adafruit together I would get up at five and go get postal bins and then I would do all the shipping and it was like five in the morning because we made an arrangement with the local post office and they would stop by at like 6 a.m.  It started getting earlier and earlier. So now it's been four a.m. You're going to bed at four a.m. and I'm- Yeah, I have to start pushing my, I have to get- Yeah. Well, I'm up till two. So like- I'm waking up at four and you're going to bed at four.  So yeah, it's like three o'clock is usually when I pass out but I can't do that anymore. I got to like- And folks were asking if we own Radio Shack yet. No, but we did interview. So when I was- You did not own Radio Shack, guys. So when I was- Stop it. When I was at make, I worked with Radio Shack. When I was in advertising, worked with Radio Shack and then with Adafruit, I've interviewed two or three of the new owners of Radio Shack. I kind of measure time and who owns Radio Shack now. So right now it's a brand that's owned. There are some independent franchises that are still around but we don't own Radio Shack. We're fans, we have a hack sign. We just took the last bit, Radio Shack. And then the last thing, since folks are talking about blockchain and crypto and NFTs, here's another thing that I really like about our community. People can disagree about the directions of some of these technologies. They could disagree about how they're being implemented but you know what I like about our community that we have at Adafruit is there's ways to discuss it in a rational way that's respectful for one another. Yeah. And that's what people do in our Discord, so it's moderated. There's other chats, there's Twitter, there's YouTube, there's all the stuff. And it's so polarizing, discussing anything.  You love Google or you hate them. There's nothing in between anymore. You're not, you're either this or you're that, canceled, boycotted, all that stuff. But what I like in our community is people are able to say, yo, there's things that I'm working on, there's technologies I'm curious about and they're able to discuss it in a way that's respectful for one another. Even if there's technologies that you know I don't like, we just don't like it. But it doesn't, it has nothing to do with us. Yeah. And we could still, and it's interesting though.  I went and got an extra license. Yeah. So it's like, if I'm not gonna, if I'm gonna dislike something, I'm gonna like be certified in it. Yeah, you know, and one of the reasons I, I had a career- I'm a robotics either, so I made a robotics board. I'm like, I'm gonna prove to myself that I really don't like it by doing a very good job at it. And I think it's, you know, in my one stage of my career when I was in advertising, I think everyone agrees, like advertising could be terrible, it could be the worst thing, but it's also a fantastic way to communicate things and good information can be advertising. Adafruit does advertising, but in a very different way. We do open source code and we publish it and people share it. That is a form of advertising, but I had to learn that by like working on like a Super Bowl commercial before and like other things, because it's like, oh, like, it depends on how you use it and it also depends on the persons and what their moral compass is. So anyways, I really want to compliment everyone that, that- It's a shill. That, well, in our community, you can discuss things and people are respectful. And that's, and I think that's, that's one of the things that we can be the example and I think that's why we're, we're held to a higher standard, I get it. And we also, there's more scrutiny on us, but I, I'm all for it now, because with greatness comes responsibility. Yes. I think that was inspiring. Okay, any last questions? That's it. We're going to bounce. We want to get out of here, write it, write it now. Thank you so much everybody for joining us. That was our show. Thank you to Kara, who's running the Slack chat behind the scenes. Hello to Kara. And then thank you everyone in the chat, all the different chats. Thanks for the folks that were helping out with some of the moderation stuff in YouTube tonight. And special thanks to all of our customers for keeping us going. Don't forget, don't pay full price. You discount. You discount code. It's fine, we want you to do it.  This expires at brand 1159 or I'm probably going to fall asleep before midnight and then I'm going to turn off when I wake up at like four. So use it. We'll see everybody later. This was an eight of fruit production. Here is your moment of zener. We'll see everybody next week. Bye-bye.


This talk is about Trader Tracing for pseudo-random functions in this joint work with Rishabh, Sam and Brent. Software watermarking has been proposed as a mechanism for proving software ownership and protecting against the unauthorized distribution of software. Typically, in a watermarking scheme, a user can embed a tag or a mark within a program so that the resulting marked version of the program is functionally equivalent to the original program. Here, the mark could be a username, a serial number, or some other kind of identifier. The security requirement is that if an adversary manages to obtain a marked version of the program and tries to remove the mark from the program, in doing so, the adversary necessarily destroys the functionality of the program. More precisely, the watermarking scheme consists of two main algorithms, a marking algorithm that takes as description a Boolean circuit C and a Mark M, and outputs a marked version of the circuit. The second requirement is the extraction algorithm, which, given a circuit C prime, will extract the mark from the underlying circuit. The two requirements on a watermarking scheme are one, functionality preserving, which essentially says the marked version of the circuit and the original circuit behave identically in terms of its input-alpha behavior on almost all inputs in the domain or in the input space of the function. The second requirement is unremovability, which is a security requirement that says that an adversary, given a marked program C prime, will not be able to construct a new program C star, such that C star and C prime compute exactly the same functionality on most inputs, and C star does not contain the mark with respect to the extraction algorithm. So essentially, an adversary either has to construct a new program that is very different from the marked program, or the adversary will produce a program that is similar to the original program, but which will preserve the watermark. These two requirements together are sufficient to show that watermarking is only achievable for functionalities that are not learnable. As such, the study of software watermarking has so far primarily focused on watermarking cryptographic functions in natural class of non-learnable functions. Many previous words have in fact focused on watermarking pseudo-random functions, or PRS, where essentially the program has hardwired and cited the key for a pseudo-random function, and on input x will simply output the evaluation of the pseudo-random function on x. This is useful because pseudo-random functions are the workhorses of symmetric cryptography, and so once we can watermark a pseudo-random function, we can use it to watermark the signing key for a message authentication code, or the decryption key in a symmetric encryption scheme. The starting point of our work is to revisit the security definitions underline these kinds of software watermarking schemes, especially in a setting of pseudo-random functions. Let us take a look at the unremovability requirement in greater detail. Under the current formulation of unremovability, we require security to hold against any adversarial strategy that preserves the functionality of the mark program. Here we capture this notion of function equivalency by requiring that the adversaries program preserve the exact input output behavior of the program. So consider this setting in the case of a pseudo-random function, and consider in particular an adversarial strategy that produces a program that only outputs the n over 4 bits of the pseudo-random function, namely on any input x, it will evaluate the prf at x, and then it will truncate the output to only preserve the first n over 4 bits. Under the existing security notion, this strategy does not preserve the exact input output behavior. In fact, it preserves the exact input output behavior on none of the inputs, and so this is considered to not be functionality preserving, and as such, the definition of unremovability stipulates no guarantees on whether this new program contains the mark or not. In fact, if you look at all existing constructions of software watermarking for the case of pseudo-random functions, they would be unable to recover the watermark from this kind of program. It turns out that this can actually be quite problematic in concrete applications. So imagine a scenario where we have a watermarkable prf, and we want to use this to protect the decryption keys in a symmetric encryption scheme. In this case, a program that outputs the first n over 4 bits of a pseudo-random function might completely break semantic security of any encryption scheme that depends on it, and yet it would not be possible to recover the mark from this particular decryption program because under the existing definitions, it does not pursue functionality. Let's illustrate this using a simple example. On the left here, we have an image that is encrypted using a standard prf-based encryption scheme, say Encounter Mode, and now suppose we run our decryption program that only recovers the first n over 4 bits of a pseudo-random function on this encrypted image. Just by visual inspection, it is pretty clear what the image is encrypting, and for all intents and purposes, this program actually functions as a pretty good decryption algorithm. However, the watermarking security definitions provide no guarantees on whether we can extract a mark from this program or not. So if we're depending on the watermarking scheme to ensure that we can identify who leaked or who compromised a particular key or who the owner of this particular program is, such a decryption program that essentially breaks security of the encryption scheme, we would not be able to get any of the watermarking benefits from such a program. And this, I believe, illustrates why when we consider protecting building blocks like pseudo-random functions, restricting the definition, the security definition, to only allow adversarial strategies that preserve the exact input-alpha behavior is overly restrictive and does not can capture the full range of potential attack strategies. Strategies that might be considered to have defeated the scheme in any realistic application would not be permitted under the existing security model. And more broadly, this problem with the existing definition is that it's fundamentally tying the adversary's goals to the functionality requirements itself. Well, typically in cryptography, we try and decouple these. For instance, in the case of encryption, we require that the honest parties are able to recover the message in their entirety. And but when we consider the adversary, when we consider the security notion and what the adversary's goals are, we will say that recovering any information about the message from the ciphertext will constitute a successful attack. Naturally, the same philosophy should also apply to softer watermarking schemes when we consider notions like pseudo-random functions. Here, the exact functionality preserving seems like a very natural notion when capturing correctness, but it does not seem like the right notion for security. Namely, what we would desire if we want a watermarking scheme for pseudo-random functions is that whenever the adversary produces a program that breaks the security of the primitive, then the watermark should also be preserved and should be able to be extracted, given access to such a program. And this motivates the main primitive that we introduce in this work to address the shortcomings in existing definitions of security for watermarkable PRFs. We introduce the notion of a traceable PRF, where essentially we require that this marking security or this unremovability guarantee to hold not just against programs that preserve the exact input-alpha behavior, but more generally any program that manages to break security of a pseudo-random function. This notion is very similar to the setting in trader tracing where we require that any program that is able to decrypt cybertexts must necessarily preserve the embedded identifier, namely the mark. In the case of a traceable PRF, we require that any program that is able to break PRF security must contain the watermark itself, and the watermark should be extractable from any such program. We can model this more generally as follows. Suppose an adversary is given a marked version of a pseudo-random function and this adversary produces a new circuit C. We say that the circuit C is good or that it breaks pseudo-randomness if essentially it can win the PRF security game. Given input-alpha behaviors of either the pseudo-random function or the truly random function, the circuit C will be able to tell these two distributions apart. Now, if we look at this particular definition as formulated currently, there is actually a problem. It is problematic because the circuit C here could actually just contain a single hard-coded input output of the pseudo-random function. The circuit C is derived from the original pseudo-random function so it contains information about the input-alpha behavior. So we construct a distinguisher that has a single PRF at x-star hardwired inside it. It can always trivially break and distinguish these two distributions just by evaluating at x-star and seeing whether the response matches the pseudo-random value or does not match, in which case we can conclude that we are interacting with a truly random function. In this particular case, this particular circuit C is not very interesting because it only contains information about the pseudo-random function at a single point and in some sense is not really capturing the full capabilities of the PRF. So in order to make this definition meaningful and useful, we will relax the security requirement and say that the adversary has to produce a circuit C that contains some kind of global structure about the PRF behavior. Namely, the circuit C should be able to distinguish the pseudo-random function given only random evaluations of the PRF. So PRF evaluations on random points in the domain. In other words, we allow the distinguisher, we require that the distinguisher not only be able to break strong pseudo-randomness but even break weak pseudo-randomness. The adversary has to produce a circuit C that contains some global structure of the pseudo-random function that contains information about the outputs of the PRF on a large fraction of the domain. So just more formally, the syntax of a traceable PRF consists of the following four algorithms, a set-up algorithm that samples the pseudo-key for the pseudo-random function, a key generation algorithm that basically embeds a mark or an identifier here denoted ID within the key, an evaluation algorithm that basically implements PRF evaluation, and finally a tracing algorithm that given oracle access to some distinguisher will be able to produce an identity or a set of identities that were used to construct that distinguisher. The properties we require are correctness, which basically says is basically saying functionality preserving holds, namely, the unmarked version of the key, the master PRF key, should implement roughly the same functionality as the marked version of the key. Pseudo-randomness requires that we still have a pseudo-random function, so evaluation using the PRF key induces a pseudo-random distribution. And finally, we have this tracing security definition, which as I defined earlier, says any adversary that manages to produce a useful distinguisher that can break pseudo-randomness on uniform-random stamp, given uniform input outputs will be able to will must necessarily preserve the watermark. More formally, we modeled this as a game between an adversary and a challenger. The adversary starts by specifying a mark or an identity. It gets the secret key for that particular identity, and then it needs to construct a distinguisher. In a single key setting, we only allow the adversary to submit a single key. The requirement is that, as long as this distinguisher is useful, namely it breaks weak pseudo-randomness with non-negligible advantage epsilon, then the tracing algorithm will successfully recover this identity with probability that is close to epsilon. One nice property of traceable pseudo-random functions is that we can directly use them to obtain traceable notions of other primitives built from pseudo-random functions. For instance, if we consider the construction of symmetric encryption for many pseudo-random functions, and we replace that encryption scheme with a traceable pseudo-random function, then we get a traceable encryption scheme. In fact, this gives us a secret key trader tracing scheme. I'll note here that this is not the case if we start with a watermarkable PRF for many of these reasons that I outlined at the beginning of this talk. So traceable PRFs are useful in the sense that they allow us to directly take an application that depends on pseudo-random functions and derive a traceable version of that application. With watermarkable PRFs, because it satisfies this much weaker security notion, these types of results do not apply. So in terms of constructions, we show in this work that under the learning with errors assumption we can construct a single key traceable PRF. So here tracing security holds against an adversary that just obtains a single key. And the resulting construction is in a secret tracing model. So only an authority that knows a secret tracing key will be able to extract the mark from a particular circuit. And then assuming indistinguishability, obfuscation, and one-way functions, we can actually get a fully collusion-resistant traceable pseudo-random function. And this even supports public tracing, where any party is able to trace, just given the public parameters of the scheme. And something that's noteworthy here is that the assumptions that we need to rely on in both the single key setting as well as the collusion-resistant setting are exactly the same as the assumptions we need for watermarkable PRFs. So even though we have dramatically strengthened this achievable security with this new definition of a traceable PRF, we can still obtain many of the similar kinds of constructions from the same underlying assumptions. And they all rely on similar building blocks. However, there is no, say, black box way of taking a watermarkable construction and translating it into a traceable construction. And in this talk, I'm mostly going to focus on the construction based on LWE. So to construct a traceable pseudo-random function, we are going to rely on a new intermediate notion that we call a private linear constrained pseudo-random function. And this very much parallels the constructions of trader tracing from a notion called private linear broadcast encryption. You can view private linear constrained PRFs as essentially the analog of a private linear broadcast encryption in the PRF world. So let's begin by defining this notion more precisely. So in a constrained PRF, the holder of the PRF key can constrain it with respect to some constraint hereby again modeled as a Boolean circuit C to produce a constrained key. The constrained key can in turn be used to evaluate the pseudo-random function at all points x in the domain that satisfy the constraint. In the case where we are considering a linear constrained family, then the input points are associated with some index t. And this index t you can view as a number between 0 and 2 to dL. And the constrained keys is also identified with an associated with an identifier. Here this is a number between 0 and 2 to dL minus 1. We say that it's a linear constrained family when basically a constrained key with index ID can be used to evaluate on all domain elements whose index is smaller than the index associated with the key itself. Finally, we say that a linear constrained PRF is a private linear constrained PRF if the index that is associated with a particular index point is actually hidden. Finally, there exists a sampling algorithm that can be used to sample inputs with a specified index. So again, there's 2 to dL possible indices. There's a sampling algorithm that takes a particular index and will sample a domain element in the domain of the PRF that has that particular index. Now, we require some additional security properties to hold for a private linear constrained PRF. The first property is that the points in the domain of the pseudo random function that has the smallest index, namely index 0, these are the distribution of these points are actually indistinguishable from just sampling a random element in the domain of the PRF. So the distribution over the points with index 0 is computationally indistinguishable from a uniform random distribution over the full domain of the PRF. Next, we require that a PRF input that has an index i versus an index j are computationally indistinguishable unless the adversary possesses a key for an identity that lies in between this interval. So notice that if the adversary possesses a key that lies between this interval, then the key can be used to evaluate the PRF with index i but cannot be used to evaluate the PRF at the point with index j. However, if the adversary does not have such a key that either it is unable to evaluate the PRF at both i and j or it is able to evaluate the PRF at points i and j. So identity hiding says that in this case, the adversary would not be able to distinguish a point with index i from a point with index j. And finally, the last requirement is pseudorandomness which basically says the value of the pseudorandom function on inputs with the largest index namely 2 to dL will appear pseudorandom even if the adversary has many constrained keys. And this follows because any constrained key will never enable evaluation at the largest point in this set. So once we have a private linear constrained PRF that satisfies these three properties, it is actually fairly straightforward to construct a traceable PRF. So let's here show how we can use these three properties to aid us in constructing the tracing algorithm. The assumption here is that we have an adversary who manages to produce a distinguisher that is able to break weak pseudorandomness of the traceable PRF with non-negligible advantage epsilon. So the distinguishing advantage here is epsilon. So suppose now that we want to trace this particular distinguisher. The first property we have is that if we sample a domain element with index zero, these are going to be indistinguishable from a random domain element. And because the distinguisher is able to break weak pseudorandomness with advantage epsilon, so given just input output behavior on random domain elements, then if we replace those random domain elements with random elements with index zero, then the distinguisher will still succeed with advantage around epsilon or negligibly close to epsilon. At the other end of the spectrum, if we instead of sampling domain elements with index zero, we sample domain elements with index 2 to dl, well, by the pseudorandomness property, the decoder or the distinguisher should have advantage that is negligible or negligibly close to zero, because the distinguisher should not be able to distinguish in this particular setting. Now, if we look at the points in between, if we consider two points i and j, we know that by this final property, this identity-hiding property, the distinguishing advantage can only change by a negligible amount as long as the adversary did not have a key for the lies between that interval. So if we take these three properties altogether, the implication is, on one end, the distinguishing advantage is epsilon, at the very other end, the distinguishing advantage is zero, and that in between any interval that does not contain a key known to the adversary, the distinguishing advantage cannot change except by a negligible amount. And so there must be a jump somewhere, and that jump can only appear in intervals that contain the identity. So now we can actually trace that particular identity or set-up identities in the case where there are multiple, using an algorithm for something called the oracle jump-finding problem introduced by Nishimaki, Wicks, and Jandri. And this is basically using the same kind of algorithms that can be used in trader-tracing constructions. So once we have a private linear constraint pseudo-random function, it's actually quite straightforward to construct a traceable PRF using previous techniques developed in that setting of trader-tracing. So all that suffices now to construct a traceable PRF is to construct a private linear constraint PRF. The starting point for our construction here will be a standard constraint PRF for general circuit constraints. So suppose the domain of our PRF consists of L-bit strings, we will consider a circuit constraint PRF over this domain. If we only want to support linear constraints, this is quite simple. We can just encode a linear constraint as a circuit functionality. Now the problem here, though, is that the indices for the domain elements are basically the domain values themselves, and these are completely public, versus in a private linear constraint pseudo-random function, we require that the index associated with a particular domain element has to be hidden, and this is necessary in order to have properties like normal hiding, index hiding, and so on. So a natural solution to this is, well, if we want to hide something in crypto, the usual approach is to apply some kind of encryption. So instead of having the points themselves be the index, we will instead take our domain to be the ciphertext space for some symmetric encryption scheme, and the index associated with the point is basically the value that we get when we decrypt the particular point. So now when we construct our circuit constraints, or when we encode the linear constraints, what we're going to do is we're going to include the decryption key for the encryption scheme as part of the constraining circuit, and on input a domain element, which is basically a ciphertext, we will first decrypt the ciphertext to check what the index is, and then we will compare that index to the index associated with the key, and depending on that comparison relation, either allow for evaluation or not. So the only problem now is that this constrained key could leak information about the indices. So if you have the constrained key, you might be able to learn some information about the decryption key, and now if you know the decryption key, you can decrypt the index associated with any domain element and learn that index once again. So somehow we need to make sure that the decryption key is actually hidden in the constrained keys under our privately-near-constrained PRF system. It turns out that this we can also do by instead of using a constrained pseudo-random function, we use something called a private constrained pseudo-random function, which basically says the constrained key hides the underlying constraint. So with this, we can actually build a privately-near constrained PRF, and which in turn implies a traceable PRF. So just to summarize, to construct this privately-near-constrained PRFs, we can combine a private constrained PRF with any symmetric encryption. This gives us a privately-near constrained PRF. Here, in order to sample points that have a particular index, it is necessary to know the secret encryption key. So this is why this scheme only provides a secret tracing capabilities. And then this will give us a traceable PRF. So starting from the LWE assumption, we can obtain private constrained PRFs that is secure against a single key. So an adversary that has a single key will not be able to break any of the corresponding properties. And in turn, this gives us a single key privately-near constrained PRF, which implies a single key traceable PRFs. So to just summarize, in this work, our focus was on revisiting some of the definitional foundations of software watermarking, especially in the case of pseudo-random functions. And hopefully I have convinced you that in many settings where we are using a pseudo-random function to build a more general primitive, the existing definitions, security definitions for software watermarking are insufficient. And to address that deficiency in the existing definitions, we introduce this notion of a traceable pseudo-random function which requires that the watermark or this traceability guarantee to hold against any program that is able to distinguish or break pseudo-randomness of the underlying primitive and not only just against programs that preserve the exact input-output behavior which can be problematic depending on the exact application. And I think this illustrates a more general point that when we study notions of software watermarking, we should not always immediately tie functionality preserving to a notion of input-output preservation. In particular, there are many natural settings where we want to distinguish between what the honest parties should be able to do, so the functionality preserving for honest parties property versus what it means for the adversary to break security of the scheme. Just we should be able to capture adversarial strategies that do not necessarily replicate the exact input-output behavior but could still break the scheme in other contexts. So with that, I will wrap up and for full details on the constructions and the proofs, I'll refer to our paper on eprint. Thanks.


Welcome traders to Mailcharted with me, Petro Manly, once you visit Cable here on the four-hour time frame with this impulsive advance of the lows of the 20th of July and we're in a corrective pattern at the moment. Whilst we hold this sending trend line resistance currently at 139.25, look for another leg lower to ultimately test the 50% retracement at 137.80s, watch for bullish reversal patterns there to set long positions. Initially, targeting move up to test this resistance, structural resistance 140.27 and the 127 extension of our advance of the lows. Through then we look for the equality objective at 142.60 and monthly range resistance. Alternatively, if we don't test low, you can look to play a break of 139.56 to the upside. As always, traders, plan the trade, trade the plan the most importantly manage your risk. Until next time, thanks very much.