Advertisement

-CHECK OUT YOUR PRESENTS (in the OP)!- The Gamedev Super Secret Secret Santa Thread!

Started by December 16, 2010 06:14 AM
52 comments, last by szecs 14 years, 1 month ago
Quote:
Original post by irreversible
I'm just here to mediate so no one will know who their present is from!


Oops.



Sending everything to a central user isn't "Super Secret Secret" enough. The central user could reveal the sender, prompting potential embarrassment and/or retaliation for those who pick poor presents.

The obvious thing is to use public key cryptography and onion routing. Each present is "wrapped" (encrypted) a number of times from a random selection of the participants. You must forward every message you receive once unwrapped, it could be addressed to you in the end!

I've started a implementation of the above, because doing it manually would probably be a disaster. If you all create public keys now, we should have this up and running by February hopefully.
Advertisement
Quote:
Original post by rip-off
Sending everything to a central user isn't "Super Secret Secret" enough. The central user could reveal the sender, prompting potential embarrassment and/or retaliation for those who pick poor presents.

The obvious thing is to use public key cryptography and onion routing. Each present is "wrapped" (encrypted) a number of times from a random selection of the participants. You must forward every message you receive once unwrapped, it could be addressed to you in the end!

I've started a implementation of the above, because doing it manually would probably be a disaster. If you all create public keys now, we should have this up and running by February hopefully.


Can I use private keys above ten to the sixth???



Your private key is your own business. I just expect that you can decrypt all messages with the key you post. I think keys generated with openssl will be sufficient for this.

Which brings us to an interesting conundrum, which will probably delay my implementation until March at the earliest. A number of users who act as "Grinches" might try to infiltrate the secret Santa group with malicious thought afoot. They might drop presents, or otherwise attempt to corrupt the process. They might inject malicious or unfestive presents.

Dealing with the latter would appear to be impossible without dropping the strong anonymity we all want for this project. Dealing with the former might involve sending each message through a number of mutually independent channels, so no one node can sabotage the overall process. The automatic software will detect duplicate presents and not display the additional ones to the user.

Researching how the TOR network handles this will probably be vital to my implementation. However, packets != presents. We want a little better than best effort delivery, but there is no underlying GCP (gift control protocol) which will detect present loss. Implementing such a protocol on top of the gamedev PM system will take some time I imagine.

I hope you can bear with me for the delays. Just think how nice it will be to have this last bit of festive cheer when you open your Super Secret Secret Santa present sometime after March!
But...but! I am a Python fanboi! It's bloated and slow as hell! I can't possibly make that deadline!
Funny, I was thinking of using either Python or Ruby for the initial prototype. Then, once I have something that works, the obvious thing is to rewrite it in Java, C# or C++. This will hopefully scale better given the limited number of nodes in the cluster.

To the gamedev.net staff (especially Superpig), how feasible do you think it might be to add some kind of OAuth setup for the gd.net PM system in the given timeframe? I would prefer to not ask the users for their login credentials, we don't want another yodachat after all.
Advertisement
Quote:
Original post by rip-off
Funny, I was thinking of using either Python or Ruby for the initial prototype. Then, once I have something that works, the obvious thing is to rewrite it in Java, C# or C++.


Oh. In all seriousness now, I think rewriting the Python/Ruby prototype in Obj-C will yield better results, given the nature and the syntax of the languages...

I am beginning to suspect you are not taking me seriously. Your use of a message passing language as some kind of humourous metaphor for the "present passing" did not pass me by.

Rest assured, potential Grinch, you will not sway me. My onion routed GCP will run rings (literally) around your attempts to stop it, no more than your attempts at making me pick a high level, non verbose language for the final implementation stop it. We all know that no serious software is written in such languages.
Okay okay, gah! I was just saying...

This is too complex for me anyway...maybe if I brushed up on my assembly skills...
O man, what have I got myself into? Anyone know a good tutorial on how to program snow in Haskell?

This topic is closed to new replies.

Advertisement