this post was submitted on 12 Aug 2023
45 points (100.0% liked)
Technology
37699 readers
257 users here now
A nice place to discuss rumors, happenings, innovations, and challenges in the technology sphere. We also welcome discussions on the intersections of technology and society. If it’s technological news or discussion of technology, it probably belongs here.
Remember the overriding ethos on Beehaw: Be(e) Nice. Each user you encounter here is a person, and should be treated with kindness (even if they’re wrong, or use a Linux distro you don’t like). Personal attacks will not be tolerated.
Subcommunities on Beehaw:
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Damnit, just when I'd barely managed to wrap my head around ECC, now they slap me with "learning with errors lattice problem". Anybody have a TS;DR (too stupid; didn't read) for this class of algorithms?
Imagine a 2D space. In this space, you pick two vectors starting from the same point, of any magnitude and direction you want. For non math people, you pick a point on an infinite paper and draw two lines, as long or short you want, and at any angle you want.
Consider these two lines the sides of a box, and complete them with two mirrored lines to form the complete box (a parallelogram). This box is a tile, called the basis. You start repeating this tile in all directions, indefinitely, and you put points at all the corners of all the boxes. These points form a "skewed" grid, repeating to infinity, called a lattice. This is the simples type of such lattice, in 2D space, with identical tiles and no gaps.
You can also use a different function to generate the tiles, instead of simply repeating identical ones. You could for example alternate tiles the size of the original and half-size tiles. Or you could think of more creative functions, including irrational numbers etc.
As long as the tiles form a repeating pattern and there are no gaps in the grid, it's called a periodic lattice. You can also make aperiodic lattices (non-repeating patterns, no gaps) and chaotic lattices (non-repeating patterns, with holes in the grid). And you can of course do this in 3D space, or in an N-space with an arbitrary number of dimensions.
To use this for cryptography you take two lattices of different basis ("skewed" differently) in a large N space, and put them against each other. You pick a random point on one of them, and wherever that point falls on the other lattice. Each point will have a different set of coordinates in its own lattice. You use these two sets of coordinates to encrypt/decrypt messages. [Edit: someone linked a video below that explains how with nice visuals, and also gets into the topic of "bad" vs "good" vectors.]
Turns out that for an attacker who only knows the coordinates of one point, finding the coordinates of the other one involves a class of problems called Closest Vector that can be incredibly hard, so hard that not even quantum computers can solve it in a practical amount of time. Whereas for the legit users, coding lattice functions and vector coordinates as cryptography keys can be done very fast, in finite amounts of memory, and with fairly small key sizes.
Your answer is much shorter and to the point, but for the people that understand things better with visuals, here's a Veritasium video about this exact thing
https://youtu.be/-UrdExQW0cs
Timestamp 17:50 if you want to skip directly to lattice cryptography.
Thank you for linking it! It's a lot easier to understand when you have images to go with it, and he goes into details about the actual cryptography that I glossed over.
Huh, interesting, thank you for the explanation. Somewhat surprising that can be used for asymmetric encryption, but that's probably just due to me not really having a handle on the concept. ECC at least is pretty intuitive