#6164: [with patch, needs review] Phan's Mini-AES for educational purposes
--------------------------+-------------------------------------------------
 Reporter:  mvngu         |       Owner:  somebody                   
     Type:  enhancement   |      Status:  new                        
 Priority:  major         |   Milestone:  sage-4.0.3                 
Component:  cryptography  |    Keywords:  Mini-AES, AES, cryptography
 Reviewer:                |      Author:  Minh Van Nguyen            
   Merged:                |  
--------------------------+-------------------------------------------------

Comment(by mvngu):

 Replying to [comment:7 malb]:
 > '''Review Report'''
 > * I am wondering whether it would be better to have a directory
 {{{block_cipher}}} with a file {{{miniaes.py}}} inside instead of
 {{{block_cipher.py}}}?
 That can be arranged.
 [[BR]][[BR]]

 > * I guess it would be nice to have a function {{{sbox}}} which returns
 the encryption S-Box for further study?
 You read my mind. I forgot to add that. Man, it's early in the morning
 over here :-)
 [[BR]][[BR]]

 > * AFAIK, we agreed to not use {{{\leq}}} but {{{<=}}} instead, because
 our users might not speak LaTeX
 > * same for {{{\times}}}
 Let's leave them in for now and see how users react.
 [[BR]][[BR]]

 > * why are you more strict wrt types in {{{__call__}}} than in
 {{{encrypt}}}?
 The methods {{{encrypt}}} and {{{decrypt}}} are meant to deal with only
 16-bit blocks of data, so they're very limited in the length of their
 input. As their input are matrices over a finite field, I think the
 structure of the input and output mimics how a student would go through
 the encryption/decryption by hand. If they rather work with integers than
 finite field elements, they could use the provided conversion methods.

 The callable {{{__call__}}} is designed for performing
 encryption/decryption in one go, operating mainly on binary strings. So
 once someone is comfortable with how Mini-AES works, they can encrypt
 binary strings longer than 16 bits in length, which is at present not
 possible with the {{{encrypt}}} and {{{decrypt}}} methods. You can think
 of {{{__call__}}} as being there to do Mini-AES encryption/decryption on
 arbitrary data, while {{{encrypt}}} and {{{decrypt}}} aid in understanding
 the corresponding processes on a small scale, i.e. on 16-bit blocks.
 [[BR]][[BR]]

 > * {{{D = \sigma_{K_0} \circ \gamma^{-1} \circ \pi \circ \theta \circ
 \sigma_{K_1} \circ \gamma^{-1} \circ \pi \circ \sigma_{K_2} }}} isn't
 exactly easily readable, but I guess it looks nice in the reference
 manual. Maybe there is some compromise though?
 I'm not sure. It's meant as a specification of the decryption process.
 [[BR]][[BR]]

 > * Maybe http://sphinx.pocoo.org/markup/misc.html#dir-tabularcolumns is a
 good alternative to LaTeX tabular for readability?
 Sure. Let me try that one for a change.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6164#comment:8>
Sage <http://sagemath.org/>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to