|
|
|
|
| View previous topic :: View next topic |
| Author |
Message |
lostdummy
Daedalian Member
|
Posted: Sat Oct 20, 2012 2:16 pm Post subject: 1 |
|
|
I got idea for this because on one of threads here I had impression that problem author had different solution in mind when he initially stated problem, compared to what he posted at end.
Not related to that specific issue, nor even if my impression was correct, what I started wondering was:
Is there any convenient way for problem authors to state solution at same time when they state problem, in such way that they can not change it later on, but at same time to prevent possible solvers to see what is that solution?
Solution to this should be:
1) 'convenient': very easy for author to do it, and even easier for others to check when later author post solution.
2) 'irreversible': very hard for solvers to guess correct solution only based on what is initially posted
3) 'protected': prevent from someone maliciously changing posts/data needed to verify that author did it correctly
Although I'm sure it could be done better, my current best solution for this is:
Author post salted hash of solution, where 'salt' comes from some finite set with unknown number of members.
Example rule:
1) author select name of any book from Amazon as 'salt'
2) they use exact name as appears there, but are free to change upper/lower case on any letter
3) they append ':' and their solution to this salt
4) they calculate SHA512 hash on above, for example using sites like www.tools4noobs.com/online_tools/hash/
5) they post resulting hash together with problem
Reason for salt is that without it, it would be very easy for solvers to guess solution in problems that have small set of possible solutions (they would just have to calculate hashes for all possible solutions).
Reason for salt to be from "finite set with unknown number of members" it that if we would allow ANY salt, than author could later change solution and find appropriate new salt to result in same hash - it IS hard to do with good hashes, but it is doable. But if we limit author to salts like I suggested (book names), then it is practically impossible they will find other book to match same hash. On other side, "unknown number' was needed because if we limit salt options too much, solvers could use all possible salt values with all possible results to find which one fits. So salt should be selected in such way that 'all possible salt values' are not known, and yet that it is limited.
I believe selection of book names (limited, but generally unknown set), with combination of upper/lower cases ( increase number of salts millions of times, yet still keep it very limited for author to find new salt+result that make same hash).
Also, above principle can work for large solutions too, not only numbers. For example, if I didn't post this wall of text as suggested solution already, and if i use above principle, I could have posted following (for text in first spoiler):
in first post where i stated problem, i could post hash of solution:
50054074ac3d5de8bcc9f42a54c28127e104cf35214c3a41227035767fc0595457599a54fb0adf31a69f2bbd344c75b0f3cc4093907da72a55a0a9d817c672ae
and in last post where I reveal solution I would post what I posted in first spoiler, and would add that my 'salt' was RINGWORLD.
That would make it easy for people to check if I really had this same solution in mind from start. Of course, its even easier when solution is something like single number ;p
*EDIT* added 3rd 'requirement'
Last edited by lostdummy on Sun Oct 21, 2012 3:35 pm; edited 1 time in total |
|
| Back to top |
|
 |
Zag
Unintentionally offensive old coot
|
Posted: Sat Oct 20, 2012 2:48 pm Post subject: 2 |
|
|
This sounds a little like a solution in search of a problem. I mean, have we had a big problem with puzzle writers claiming a different solution was correct than the one they originally intended?
We do have a rather nice mechanism for solvers to check if their answer is correct without the puzzle author being around to confirm. We use it here, for instance, and here.
(Can you guess where those links go without following them?)
On the other hand, I could see your solution being used for a "Whoever guesses my number first wins $1 million" sort of game. |
|
| Back to top |
|
 |
Trojan Horse
Daedalian Member
|
Posted: Sat Oct 20, 2012 3:45 pm Post subject: 3 |
|
|
If the author of the puzzle that inspired this puzzle comes by and attacks you for doubting his honesty, you won't be able to plausibly deny that you were referring to his puzzle.  |
|
| Back to top |
|
 |
lostdummy
Daedalian Member
|
Posted: Sat Oct 20, 2012 4:02 pm Post subject: 4 |
|
|
Zag,
I did not post this as idea to be used on forum, but as interesting problem - reason why we post majority of puzzles here.
So, while its nice if solution to this problem could be used anywhere (even if thats $1milion game), its finding best solution that was my intent, not using it ;p
BTW, links that you posted do not solve this problem. Because it allows author to change his intended solution later on - he just need to change password too. |
|
| Back to top |
|
 |
Nsof
Daedalian Member
|
Posted: Sat Oct 20, 2012 4:25 pm Post subject: 5 |
|
|
Commitment scheme _________________ Will sell this place for beer |
|
| Back to top |
|
 |
lostdummy
Daedalian Member
|
Posted: Sat Oct 20, 2012 4:41 pm Post subject: 6 |
|
|
yes, that looks very much related to this problem ;p
Although, based on quick read of that wiki page, I'm not certain any of listed methods fit to 'convenient' part of requirement. Can you suggest one of those as better fit for this particular problem? |
|
| Back to top |
|
 |
Elethiomel
Daedalian Member
|
Posted: Sat Oct 20, 2012 7:33 pm Post subject: 7 |
|
|
I think the most convenient solution is to introduce a trusted party.  |
|
| Back to top |
|
 |
Suspence
Daedalian Member
|
Posted: Sun Oct 21, 2012 4:01 am Post subject: 8 |
|
|
| lostdummy wrote: |
Is there any convenient way for problem authors to state solution at same time when they state problem, in such way that they can not change it later on, but at same time to prevent possible solvers to see what is that solution?
Solution to this should be:
1) 'convenient': very easy for author to do it, and even easier for others to check when later author post solution.
2) 'irreversible': very hard for solvers to guess correct solution only based on what is initially posted
|
Sure. The setter could PM the solution to a designated GL account for this purpose. The puzzle setter would have access to that account. When the puzzle is solved, the setter could reveal the password, and any who wanted to confirm could check the PM in that account.
Since that password is public knowledge, a new setter could create a puzzle, change the password to that account, PM the password to it, then reveal the password when their puzzle is solved.
Lather, rinse, repeat...unless there is a way to modify read PMs that I'm not thinking of. _________________ I hate people who try to write interesting things in their signature. |
|
| Back to top |
|
 |
Jack_Ian
Big Endian
|
Posted: Sun Oct 21, 2012 3:19 pm Post subject: 9 |
|
|
I used MD5 here to allow users to verify their own answers.
It's not very safe for single words, but should be suitable for complete structured sentences. It would certainly be very difficult to construct a coherent sentence after the fact that had the same digest code. |
|
| Back to top |
|
 |
lostdummy
Daedalian Member
|
Posted: Sun Oct 21, 2012 3:28 pm Post subject: 10 |
|
|
| Suspence wrote: |
When the puzzle is solved, the setter could reveal the password, and any who wanted to confirm could check the PM in that account.
|
Yes, that is workable solution ;p
Although , it has few drawbacks:
- setter still have fairly large time window in which he can replace answer with new one. Namely, he can delete first PM (since he has access) and send new PM. Theoretically, people who want to check could compare PM date, but that is not deterministic- setter could have changed answer few hours after original post, and claim that he actually PMed answer slightly later. Or setter could have really PMed answer few hours after he posted problem. So ... hard to determine if PM was changed in first day.
- it requires open access for everyone to check, and that means someone with malicious intent is able to delete that PM, thus making this principle less secure for setter and his ability to prove he did it correctly. I guess this one should have been another 'requirement' in problem (protect setter) |
|
| Back to top |
|
 |
lostdummy
Daedalian Member
|
Posted: Sun Oct 21, 2012 3:32 pm Post subject: 11 |
|
|
| Jack_Ian wrote: |
I used MD5 here to allow users to verify their own answers.
It's not very safe for single words, but should be suitable for complete structured sentences. It would certainly be very difficult to construct a coherent sentence after the fact that had the same digest code. |
Exactly - simple hash was first idea I had too, but it fails requirement to prevent solvers to find correct result even when only few possible results exist.
For example, if result is positive number under 100, its easy to generate all hashes and compare. Or even if result is single word, as you you mentioned ;p |
|
| Back to top |
|
 |
Jack_Ian
Big Endian
|
Posted: Sun Oct 21, 2012 7:05 pm Post subject: 12 |
|
|
| If answer is 100, give MD5 hash X for "The answer to my wonderful puzzle is one hundred. Hope you enjoyed it." or some other long-winded phrase. |
|
| Back to top |
|
 |
lostdummy
Daedalian Member
|
Posted: Sun Oct 21, 2012 9:04 pm Post subject: 13 |
|
|
| Jack_Ian wrote: |
| If answer is 100, give MD5 hash X for "The answer to my wonderful puzzle is one hundred. Hope you enjoyed it." or some other long-winded phrase. |
That is good approach ;p
It actually beat my suggestion in 'convenient' part, at least for solvers and those who are checking, and solve at same time 'guessing simple solution' issue.
Only downside that I can see is that author would have to save somewhere exact phrase that he used for hash calculation - instead of just remembering 'ringworld', he would have to store/save exact sentence, so later he can repeat it exactly same.
But that is downside only for very short answers (ie number/word etc) that could have be remembered, since for any long answer author would need to save that answer anyway since it would be hard to remember it exactly.
So I would say that if this approach is "author should post hash of solution, and in case of simple solution use words/sentence to make exact sentence hard to guess", then it is better/simpler than what I suggested ;p |
|
| Back to top |
|
 |
Suspence
Daedalian Member
|
Posted: Mon Oct 22, 2012 7:16 pm Post subject: 14 |
|
|
| lostdummy wrote: |
| Suspence wrote: |
When the puzzle is solved, the setter could reveal the password, and any who wanted to confirm could check the PM in that account.
|
Yes, that is workable solution ;p
Although , it has few drawbacks:
- setter still have fairly large time window in which he can replace answer with new one. Namely, he can delete first PM (since he has access) and send new PM. Theoretically, people who want to check could compare PM date, but that is not deterministic- setter could have changed answer few hours after original post, and claim that he actually PMed answer slightly later. Or setter could have really PMed answer few hours after he posted problem. So ... hard to determine if PM was changed in first day.
- it requires open access for everyone to check, and that means someone with malicious intent is able to delete that PM, thus making this principle less secure for setter and his ability to prove he did it correctly. I guess this one should have been another 'requirement' in problem (protect setter) |
The timestamp of the problem being posted and the solution being PMd could be compared. It doesn't seem like a big ask to require that the solution be PMd before the puzzle is posted.
If all else fails, just put the solution in a sealed envelope marked "Do not open until 2085".  _________________ I hate people who try to write interesting things in their signature. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You can reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|
|