The robustness of programs using cryptography and the related fields must reside in the keys and the algorithms, not in unpublished implementation tricks. More, implementation glitches can ruin demonstrated algorithms. Therefore, here are the details of this implementation so that one can (in)validate its robustness.
These choices imply that all resulting values are from 0 to 256
The shares are the concatenation of the hexadecimal representation of these values (two characters per value), with one exception for 256, which is represented as 'G0'.
All calculations are based on the ASCII value of the secret bytes
Each byte of the secret is processed totally independently from the others, with different random values for a0, a1, a2, ...
Only printable characters having an ASCII code less than 128 are allowed in order to avoid any characters sets related issues
Shares structure:
The first value is x, which can also be considered as the share number
The remaining values are the Di, one value (two characters) for each character of the secret
01033ED38FFE2E2F57CDE8BB
0203B095FF8FC8FEB41FF694
03030494C8D51FD0796A8FG0
040316D0EBCF35A6A7ADB4FE
05038848677D09803DE8648E
At the present time, the program implements strictly the Shamir's method. Some authors have proposed improvements, in particular by using variations that allow to detect individual invalid shares. One of them is Martin Tompa in How to Share a Secret with Cheaters.
In order to maintain the compatibility of the shares generated with the current version of ShareSecret and future ones that may provide such improvements, this byte is used as a "flag".
Currently, its Least Significant Bit is set to 0, meaning "no cheaters detection". It will be set to 1 when/if such a detection is implemented and the corresponding option is selected. The others bits are random. This means that this value is currently a random even number.
Here is the Scilab prototype used to get the maths right.
Availability:
It is my intention to keep allowing free usage of ShareSecret on this website.
However, should this website not be available for any reason, you will still be able to recover your secret using the stand-alone version (which you should definitely download while the site is still there...)
ShareSecret is freeware, provided as-is, and as such comes with no guarantees or support.
Stand-alone version:
Here is a cross-operating system version using Adobe AIR, available for Windows, Mac OS X and Linux. You need to install the Adobe AIR runtime.