News for hackers. Stuff that matters.
Re:Now I understand why almost no one uses encrypted email by jerf on Thursday April 16, 2020 @10:55AM (#22889975)
There is a useful idea called Pareto Optimality: https://en.wikipedia.org/wiki/Pareto_efficiency

If you measure two things, you can draw the "frontier" between them, sketching out the max of X that you can have while having an amount of Y. This will draw a graph where the lower left is the part you can reach, and the the upper right is the part you can't, e.g. you can't have 100% security and 100% usability.

When you are on that frontier, than the two things are in apparent opposition to each other, in the sense that you can't get more of one without having less of the other. However, if you are not on that frontier, then suddenly the conflict evaporates, because you can indeed have more of one without less of the other.

(Almost everything we ever talk about as software engineers being in "opposition" to each other is actually in this relationship. Sometimes optimality on one axis is so easy to achieve that it's still practical to discuss the two things as being in "opposition", but most of the time, before worrying about to things being in opposition it should first be checked that we are indeed on this optimality frontier. Otherwise we risk constraining our thoughts into a win/lose frame and miss the win/win options on the table.)

All of that is a lead up to my claim that the idea that GPG is on the Pareto frontier for usability and security doesn't pass the smell test. In fact it manages to have such a bad UI that it adversely impacts the security it can provide. It isn't just what git calls the "porcelain", either; some of the fundamental data structures GPG uses are just not quite right and produce fundamental confusion. It certainly doesn't help that the UI is so obscure that even a heavy user can be confused by everything that is going on.

GPG really needs a total UI overhaul, but I think this is one of those cases where the existence of an apparently "blessed" product (the GPG distribution itself) prevents anything better from being able to get enough of a foothold to succeed. If you waved a magic wand and made me the PM over the GPG product, I'd be putting out a call to the community to make a better UI, no holds barred (i.e., fundamental data structure changes are on the table and while I wouldn't necessarily want to promise a lack of backwards compatibility, don't be afraid to break it), and in a year we'll circle back around to the proposals and the GPG project itself will bless one of them. But that probably won't happen. (And I personally lack the bandwidth and the gpg street cred, so "why don't you do it" isn't a terribly practical response.)

Re:Now I understand why almost no one uses encrypted email by 6510 on Thursday April 16, 2020 @12:02PM (#22890742)
If I say "Public private key cryptography" it is like music to my ears. The term is near poetic. The experience is so hard to explain I think I have to make a drawing.

https://i.ibb.co/DgQ82kt/gnuPG.png

Re:Now I understand why almost no one uses encrypted email by hinkley on Thursday April 16, 2020 @11:06AM (#22890132)
Turns out the Pareto frontier explains a big chunk of my thesis on performance vs readability.
Re:Now I understand why almost no one uses encrypted email by andybak on Thursday April 16, 2020 @11:21AM (#22890308)
These things usually form triangles with "cheap, good, fast: pick any two" being the canonical case.

What's the 3rd point in your triangle? I suspect it's "developer time" or "price" which boil down to the same thing depending on who's doing the measuring.

Re:Now I understand why almost no one uses encrypted email by hinkley on Thursday April 16, 2020 @12:13PM (#22890843)
We are essentially talking about situations where variables are partly independent, and here you are trying to bring everything back to a zero sum game already. I shouldn’t be responding at all, but ok, I’ll bite.

Skill.

Writing slow, unmaintainable code is usually a false economy. But many people just don’t know any better.

Take the refactoring Extract Variable, which is probably the simplest example. You name an intermediate value, thereby documenting it. Then hoist it out of the loop, making it faster, shorter, and clear that this value should not change.

Re:Now I understand why almost no one uses encrypted email by jerf on Thursday April 16, 2020 @11:45AM (#22890570)
Triangles are just a convenient way to frame the three-dimensional relationship. Theoretically you can take it to any number of dimensions with fairly obvious extensions to the definition; however, it starts to become computationally expensive and human-impractical to gain much understanding that way.

This is why almost no matter what you put on the points of the triangle, it works; as long as on the frontier there is at least some opposition, it works. The times you can have all of X and all of Y are rare, and all of three things essentially unheard of.