Since December, I have been working on a proposed extension to OpenPGP to add support for some sort of designated verifier signature. Most of this work involved doing a literature review and carefully reading the OpenPGP specification to see what cryptographic schemes can be implemented successfully in OpenPGP. I settled on a ring signature scheme by Abe et al. (2004), and recently posted a proposal to the OpenPGP mailing list. Note that this is a proposal for a draft of a proposed standard, so things remain very flexible. This is the best time for anyone to comment on the proposal, before I write up an I-D.
The following is a snippet of the description of ring signatures that I gave in my overview of the proposal:
Ring signatures allow a signer to specify a set of possible signers without revealing who actually signed the message.
The current OpenPGP specification lacks a straightforward way for Alice to send Bob an authenticated message that can only be verified by Bob. Right now, if such a signature is desired, the best that Alice can do is to send Bob a signed-then-encrypted message. Unfortunately, this means that Bob can show others the decrypted signature to prove to others that Alice signed the message. This ability of Bob to transfer Alice's signature to others is often undesirable from Alice's point of view.
Ring signatures provide an easy way for Alice to authenticate a message to Bob without concomitantly giving Bob the ability to transfer her signature. Alice simply creates a ring signature that specifies Alice and Bob as the possible signers of a message. Upon receipt of the message and ring signature, Bob is assured that the message is signed by Alice, but he cannot prove to others that Alice signed the message because Bob could have created the ring signature himself.
I am interested to hear from the perspective of end users. For instance:
Of course, I would also like to hear from anyone who has the time to go through the details of the proposal. Sections 3 and 4 contain the bulk of the actual cryptographic scheme, and it closely follows Abe et al.'s scheme with only small modifications to better fit OpenPGP. Some resources:
Ring signatures are interesting by themselves, and I think some Less Wrong readers might enjoy reading the following papers. The standard reference for ring signatures is Rivest et al. (2006); I would recommend reading this paper first if you plan on reading Abe et al.'s paper, because it contains a very clear exposition of the ideas behind ring signatures. A third paper that I recommend is Bresson et al. (2002); Sections 1–3 are particularly useful.
The current OpenPGP specification is given in RFC 4880. I don't recommend reading it unless you have some burning desire to learn more about OpenPGP; it's not particularly illuminating.
In the best case scenario, ring signatures get deployed on GnuPG within a few years and Alice can create a ring-signed message for Bob simply by running: gpg2 --clearsign --ring-signature --recipient Bob
(In the not-quite-worst case scenario, I write the I-D, everyone agrees it's crap, and I vow never to touch math again.)
What are the use cases of a ring signature? What does Alice hope to accomplish by arranging for only Bob to be able to verify a thing?
It's intended for situations where Alice and Bob wish to communicate digitally with some degree of privacy and authenticity. At the moment, using software like GnuPG (which is a free and open source implementation of OpenPGP), Alice can encrypt her messages to Bob to provide privacy, and she can also digitally sign her messages to provide authenticity (i.e., a cryptographic proof that she wrote the message).
Unfortunately, using such a system, Alice might worry that Bob could show others her messages and signatures, thus proving to others that she wrote and signed them. Such worries are not unusual if someone goes to the trouble of encrypting and signing their messages. For instance, if Alice is in a price negotiation with Bob, she might not want Bob to be able to prove to competitors that she offered a certain price.
By using a ring signature instead of a standard signature, Alice can alleviate such worries. When she signs a message using a ring signature, Bob can be sure that Alice signed the message, but it only proves to everyone else that either Alice or Bob signed the message. Thus Bob is unable to prove to others what Alice said to him, because he could have forged the ring signature himself!
Of course, Bob can still tell everyone what Alice said—using ring signatures instead of standard signatures only removes his ability to cryptographically prove to everyone what Alice said. This becomes a "he said she said" situation rather than a "she said this and here's the proof" situation. From Alice's point of view, the first situation is better than the second, so she would prefer to use ring signatures.
More generally, I hope for ring signatures to become easy enough to use that a typical user can use it for normal emails. Right now, it is not advisable for the average user to sign their emails simply because it is often a bad idea to give recipients the ability to prove to others what they said.
Unfortunately, using such a system, Alice might worry that Bob could show others her messages and signatures, thus proving to others that she wrote and signed them. Such worries are not unusual if someone goes to the trouble of encrypting and signing their messages.
Incidentally, this has actually been a practical concern on the black-markets: there have been occasional attempts to break pseudonyms by sending them messages encrypted to other pseudonyms' keys, and the initial proof that Dread Pirate Robert 2 was StExo come from DPR2 accidentally releasing a message signed by StExo's key.
After writing this, it seemed more appropriate for the Bragging Thread, but I haven't seen one in a while, so I'm posting here. I'm just really excited and wanted to share with someone.
I just completed the last programming assignment in Coursera's Algorithms course from Princeton. I worked on it for 6 hours straight this morning and just submitted it for full credit, passing all the tests. It was one of the harder assignments so far, but I finished it much faster than the others on which I averaged about 10-12 hours of work. Best of all, I didn't encounter any bugs that took me more than a minute or two to find and fix which is big for me and seems like evidence that my skills are improving.
I had never programmed in Java before this course, but it feels natural to me now.
On top of that, I feel like the Algorithms course is giving me a whole new perspective on languages like Python and Ruby which I use more often. For example, I had never questioned their automatically resizing arrays and I'd never understood how dictionaries/hashes worked, but now I know how much there is going on under the hood.
After writing this, it seemed more appropriate for the Bragging Thread, but I haven't seen one in a while
You could just start a new one.
Started working on a blog after observing that I haven't made nearly the dent in the Rationalsphere that I feel I could if I actually wrote stuff instead of just commented on other people's stuff. I'll link the blog when it has more than a couple of posts.
Wrote more than 10,000 words of my novel since January 1. The goal for the novel is 80,000 words by the ends of 2014, which I have been beeminding. I have been writing mostly in chunks of 250 to 500 words late in the evening, well after my cognitive limit for the day is exhausted, a few days a week. 500 words is really a paltry amount, barely a couple of paragraphs. Regardless, I have managed to limp along for two and a half months in this fashion and the book is actually going as planned, so I am somewhat validating my proof-of-concept that a decent novel really can be written in tiny fragments of time crammed in here and there, between a job and caring for two babies. Editing will probably be another matter, but that will happen when I have a more flexible schedule, by design.
Goal: Money
So I moved to Austin for an adventure with three or four half-plans for making money which all fell through, plus unexpected expenses hit me hard. A few months ago I read the writing on the wall and set about finding a Real Job. Interviewed at a local startup; they didn't want me. Went to some programmer meet-ups, gave a couple talks, stuck around afterwards to ask who was hiring. Found a great company that way, so starting this month I'm living in L.A., working for a funded startup in a skyscraper.
My buddy and I continue to grow our e-commerce business, 1100+ orders filled so far this year. Our inventory contains over 80K individual items. Custom software that I've written has allowed us to scale what is essentially a 1 or 1.5 person operation with room to grow. We ran a booth at a live event earlier this month which went great, did a lot of buying & selling, and generally made a great impression on a lot of customers. Expenses are huge, though, so even if we're profitable it isn't by much. My goal is for us to be ramen profitable by the end of the year.
So I'm walking two paths towards wealth. Moving forward is going to be a grind, a lot of hard work and careful planning but I'm excited for the opportunities.
Sorry if playing marketing guy is too wide the mark on norms here, but my gut says if you have a young business promote it to everyone who'll listen and some people who'd rather not: whatcha selling and if one of us likes it how do we buy it?
Here we are. We buy and sell Magic cards.
Attn Magic: the Gathering players
If you want to buy something, send me a PM and I'll send you a coupon code for a LW discount.
If you have MTG cards you want to sell, I want to talk to you. Our buy prices are competitive and we will buy most everything. Drop me a line with what you've got and I'll get back to you quick with an itemized spreadsheet breakdown.
Major project is finding a place to live and a way to sustain myself in Berkeley or near.
But I've been doing a lot on the side: http://fourhourscience.com/diegod-worlds-heteronimos/ I've compiled about a third of my writings and will compile the rest ASAP. I finished my book (years ago) and will present it as thesis next week. https://docs.google.com/file/d/0BxADVDGSaIVZVWlOaHE2WVYxMzA/edit I'm contacting the director of Robocop and Elite Squad 1 and 2 (actually good Brazilian Favela Movies, for those who think City of God was good, these are better). To work with him in a new long-footage perhaps. Becoming a visiting academic in Berkeley if all goes well. Working on Leverage if all goes perfect.
I'm also into a closure process with many relationships, places I want to go, and all that. I'm taking time to close the page behind me as I leave, and it has been beautiful and thrilling, like those people who know they will die and start immensely appreciating even a butterfly or cracks in the wall.
Woooooo, done with the logical uncertainty sequence. Read if you think probabilities are cool. Now I can get back to actually attempting to finish grad school.
I hired a maid to do my laundry, clean my room, and buy healthy groceries, all once a week. It seems excellent.
I signed up for Good Judgment Project's third season but so far haven't answered one question. I read somewhere that many people are part of teams. Does anyone know how to join one?
I bought some audiobooks for the first time and listened to parts of The Founder's Dilemmas on how to choose whether to found a startup. I am less keen on founding a startup in the near future than I was a month ago.
I kept editing an important blog post draft. It's been tough to write. I'm now going to leave it alone and return later. That can help make sure your opinions on a subject are stable.
I recently finished the second video for StoryBrain, which is my youtube channel and Twitter account dedicated to sharing the various theories and discoveries I made about books and movies in the course of working for years as a story analyst.
It's basically dedicated to all of the most interesting, useful, uncommon and counter-intuitive things I have, using evolutionary psychology, equations that model human reactions, and examples from just about everywhere in pop culture past and present. So in a lot of ways it's like Freakonomics for books and movies. Or anything else with a storyline.
I'm pretty excited about it and have taken a lot of time putting together a good look and format for the channel, and my editing and voice-work are pretty good so far (I've done work as a radio reporter). And the sheer amount of material I have and things I can cover is pretty staggering. Everything I've discovered I question and test intensely with every example I can think of, and so far I've got quite a few things that I think answer centuries old questions about the topics and really, honestly, can transform the way we think and talk about movies.
I've brought a few ideas up at professional writing forums and at the last MeetUp I attended, and just the fundamental stuff generated a 40+ reply thread on a very small site and had us talking for 30 minutes plus at the MeetUp (some of it is pretty counter-intuitive and I guess strange-looking at first). I was also considering writing a sequence on storytelling for here, but I'm not familiar enough with the site's dynamics and standards to make that venture yet. Anyway, as asked, I've put up two videos so far on lighter topics and will transition into my introductory videos talking about myself and the abnormal circumstances that led me into studying this in the first place, pretty soon.
A client for http://chirp.io in Python https://github.com/moreati/chirppy
I started this over Christmas, and I've been poking at it on and off since then - firstly trying (and failing) to reimplement the error correction. The extent of my knowledge there is http://math.stackexchange.com/questions/663643/discover-parameters-of-a-reed-solomon-code-from-its-output.
My current effort is to implement the audio as continuous phase - so there are no discontinuities in the chirp, which make a nasty click noise in the current implementation. Doing so, I've learned a lot about acoustic modems and amateur radio modulations.
I've been writing more, and posting some of it online since January, hoping to get broader feedback. The four articles I posted here seemed well-received, although they didn't generate much discussion. More have gone up on my personal site, including some self-indulgent fiction. Think Star Maker fanfiction, but only of the pedantic, moralizing parts, not of the wonder-and-terror-inspiring parts.
Most recently, I gathered some thoughts I'd scattered into recent comments and tweets for an essay on "principled" reasoning. It's probably relevant to LW interests, but I'm not cross-posting it here because I'm not sure LW needs more of that kind of meta-discourse. (I've aimed to make top-level posts only based on things I've actually done, for that reason.)
Continuing to work on my education startup (http://www.docademy.com), but tentatively have come to the conclusion that I'm trying to solve two separate problems. I may therefore have to split what has been one web app into two separate websites.
Been working on a new blog post for my career coaching blog (http://www.selfmaderenegade.net) about a simple framework that helps you determine your strategy for switching careers.
Also working on getting testimonials for the original pilot group of career coaching students that just finished their coaching, in order to get ready to relaunch with a new class of Self-Made Renegades (http://selfmaderenegade.net/self-made-renegade-coaching/) over the next couple months.
Writing a Black Company fanfic. I've been reading a decent amount of fan fiction recently, and enjoying it. I was pretty surprised that there was so little Black Company fanfic out there, as it seemed like a good setting for fan fiction. So I thought I'd do my little bit to correct the deficiency, and get some practice writing fiction. It's here.
I have just completed this.
http://www.workerscheduling.com/
My part is not the web or design, but the very logic and the programming of the engine behind the scene.
With our older, now pre-modern version we have just managed to schedule a bigger international dance week event. Much better than it was possible before by human intellect power. Despite, that (some) humans are surprisingly good at this.
In short:
I've taken an interest in steepled arrangements of quadrilaterals; i.e., an arrangement of n quadrilaterals with 2n vertices such that the intersection of any two quadrilaterals is either a vertex or the empty set, and each quadrilateral meets four others at its vertices. The implication is that n >=5, and I'm focused on the 3 dimensional case. A link from an earlier open thread shows that such an arrangement is possible.
The term steepled refers to a hand position where the corresponding fingers of each hand meet at the fingertips, forming a 'steeple'.
Consider an ant crawling on the surface of one of these arrangements. Starting at a vertex, she makes a bee-line (ant-line?) for the diagonally opposite corner of the quadrilateral she's on, and then enters the next quadrilateral which intersects at that point, and repeats the process again and again, always going across the diagonal. Eventually, she must arrive at her starting point, because there are a finite number of vertices. She may not have hit all the vertices, but she did not retrace her steps at any point.
Given a numerical labeling of the quadrilaterals, her path can be represented by a cycle of numerals corresponding to each quadrilateral she traversed. If there are unvisited vertices, the process can be repeated starting at an unvisited vertex, generating another cycle, until all vertices have been visited.
Different cycles or product of cycles (different even after a permutation of quadrilateral labels) represent different steepled quadrilateral arrangement types. The cycles have the following properties:
Each of the n numerals appears exactly twice (corresponding to the two diagonals of each quadrilateral).
Each numeral is neighbored in the cycle(s) by four different numerals between its two appearances.
Each cycle must have length >= 3.
Looking at the case n = 5, there are at least 7 distinct potential quadrilateral arrangements - i.e., 7 different eligible cycle products of the numerals 0 through 4. I'm looking into the question of whether each of these represents a physically possible 3-d steepled quadrilateral arrangement, and if so, can it be accomplished with all convex quadrilaterals or not. (That is, are you forced to use any non-convex quadrilaterals to construct the arrangement.)
I'm planning on posting this as a question to Math StackExchange, but I prefer to first be confident I can answer the question asked within a month - due to the logistics of that site, it's possible for a question to disappear after a month if no-one has answered it.
I'm a semifinalist for the MA365 mission (a one year simulation of Mars exploration). We now need to do a video to answer some questions such as "Why Mars? Why do you think we should go there?" (see my answer below). The Mars Society will chose 18 finalists that will be split in 3 teams. In august 2014, they (we?) will go to Devon Island during two weeks and they will pick the best team. This team of 6 will then do a simulation of Mars exploration during 365 days starting in July 2015. You can contribute to the project by giving money (in exchange for gifts) in the indiegogo campaign: this will help us to buy better equipment.
my answer to "Why Mars? Why do you think we should go there?" or as asked in the post "Why this project and not others?" (note: I would like to hear your answers too)
I think space exploration in general has a lot of benefits: it improves our understanding of the history of our solar system and it pushes us to develop new technologies that often become useful on Earth. I think the next step in space exploration is to send humans to Mars because it's probably the easiest and most interesting planet to explore in our solar system because it has some similarity with the Earth. I also think that sending humans to Mars will inspire more people to go study in science and technology, which will in turn improve humans' well being and life expectancy. Finally, I think that if we succeed to colonize Mars, it will be a good fallback position in case of an existential catastrophe happening on Earth.
I think the first manned mission to Mars will probably be in the next decade, so we need to prepare ourselves. For example, Inspiration Mars (www.inspirationmars.org) wants to send a couple to fly within 100 miles of Mars in 2018; Mars One (www.mars-one.com) wants to start sending humans to Mars in 2024 and let them there indefinitely. The USA, the Russian and the European space agencies are also planning manned missions to Mars relatively soon. So the research done by The Mars Society, such as this mission, will be really useful to all of these organisations.
I'm porting the credence game into predictionbook for CFAR. Goals include exposing the game to more people, having it playable in a nicer format, and getting data on how well-calibrated people are. Personal goals include learning Rails and having a public display of I-contributed-to-someone-else's-project. Currently stuck at a point where Rails doesn't seem to be acting like I think the docs say it should; this has cost me two or three pomodoros, and I think my next step is to see how friendly the IRC channel is.
For a few months I was beeminding "write at least one blog post every other week". I decided to stop beeminding that because it was giving me too little time to work on the credence game, but I'm still writing. In particular, I'm currently writing part two of the PTTLOS cliffs notes. I'm writing that series because I want to learn probability theory better, and for a public display of doing-cool-things that isn't a tiny coding project on github. Currently at a point where I don't remember enough calculus to fully understand a proof that I want to summarize, but I'm sure I can re-learn it.
This is the supposedly-bimonthly-but-we-keep-skipping 'What are you working On?' thread. Previous threads are here. So here's the question:
What are you working on?
Here are some guidelines: