Talk:RSA code: Difference between revisions

Line 16:
 
: The description does need enhancement and citation per Dkf
:: A reference to [[wp:RSA|RSA]] for a start - yes it is there either added or missed by me at first read.
:: A caution that the modulus is a demonstration size only and reference to something on key sizes. Real keys are much longer and according to NIST even 1024 bit keys are on their way out. I believe the correct NIST document is referenced here [[wp:Key_size|Key sizes]]. Possibly also the RSA challenges [http://www.rsa.com/rsalabs/node.asp?id=2092 RSA Key Factoring Challenge Archive]
:: A caution on cryptography like appears in the MD5 or MD5 implementation task (the later if I recall)
:: A note that the <strike>blocking</strike> encoding character set is arbitrary and that real implementations just encrypt the the underlying binary -- however as noted later RSA 129 used a plain text encoding scheme
:: --[[User:Dgamey|Dgamey]] 10:44, 21 April 2011 (UTC) update: --[[User:Dgamey|Dgamey]] 01:33, 26 April 2011 (UTC)
 
::: If blocking is arbitrary, perhaps blocking should be removed from the task description? The Python implementations currently use a block size of 1 character, and the blocking code adds some significant complexity, so why not just get rid of it? --[[User:Rdm|Rdm]] 11:45, 22 April 2011 (UTC)
:::: Blocking is needed to keep the encoded plain text shorter than the modulus. It's really needed with a toy modulus like this. --[[User:Dgamey|Dgamey]] 01:33, 26 April 2011 (UTC)
 
::::I've been thinking about this and I see two tasks here. Let me explain. (I added the subtitle above)
 
:::::RSA should be about encryption/decryption. The problem is the demonstration numbers are too small for multiple ascii characters. Finding one or two sets of larger numbers would allow for this and remove the need for the blocking and some of the resulting constraints. RSA has no problem with zeros. Nor does it char about ascii, ebcdic, double-byte, etc. RSA also requires bignum support so having some numbers that exercise that would make sense. Since some languages can't do this having several sets of key pairs of regular and bignum size would allow everyone to play. Calling out the limitation should be enough. I was poking around looking for some, thinking of the smaller RSA challenges (140 bit) but haven't yet found the whole set of numbers. I think running a test message through a couple of different RSA key pairs would make a fine task. Perhaps generating some small keys would be a good sister task.
::::::Neither of the current implementations uses ascii characters, instead both use an encoding that can represent 31 distinct characters. This would support a block size of two characters. (The J implementation used a block size dynamically determined based on the number of represented characters and the keys, and this was two characters for the example key. I took that out though, when it seemed that no one else was going to budge on this issue, and the current J implementation uses a blocksize of 1 character -- which does have the advantage of simplicity.) --[[User:Rdm|Rdm]] 14:22, 25 April 2011 (UTC)
 
Line 34 ⟶ 35:
:::::: [http://www.prime-numbers.org/ prime number source] - I've requested a few over 5 billion and will post some
 
::::: I changed my mind both character encoding and plain tex blocking are needed.
:::::Character blocking/unblocking could be a whole other task. In fact we could clone the page and mark everything needs improvement (get the rsa out). This task needs more specification. The example text would encode ha as 0801 which is a character set size of 100 not the 31 or 32 shown. I think some of the code examples used base 30ish. This kind of task is common but unrelated to encryption. Older operating systems used to encode characters in 6 rather than 8 bits yielding 4 characters per 3 bytes, printable mappings as well.
 
:::::I also agree the huge UI thing didn't belong here. Possible another task.
 
:::: --[[User:Dgamey|Dgamey]] 14:15, 22 April 2011 (UTC) updated: --[[User:Dgamey|Dgamey]] 01:33, 26 April 2011 (UTC)
 
=== RSA129 as an example ===
Anonymous user