-
-
Notifications
You must be signed in to change notification settings - Fork 491
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Phan's Mini-AES for educational purposes #6164
Comments
comment:1
I'm CC'ing Martin, as he's the only person I know who might be interested in reviewing this ticket. |
comment:2
Hi, how does the MiniAES compare to the small scale AES variants already in Sage? I guess, they should at least re-use the same building blocks. e.g. there is an S-Box class which might be worth using, some of the functions might do the same etc. |
comment:3
Replying to @malb:
As you know, Mini-AES was designed as a very small scale variant of the AES. It can be used to teach crypto to computer science students who don't have the necessary maths background to understand finite fields and (basic) abstract algebra. Ideally, such students should have taken at least two courses in basic calculus, and at least two courses in programming. As I see it, Mini-AES and the implementation contained in the patch require "minimum" maths background for crypto students to work through the processes of encryption and decryption. As noted in the paper C. Cid, S. Murphy, and M. Robshaw. Small scale variants of the AES. In Proceedings of Fast Software Encryption 2005. LNCS 3557, Springer Verlag, 2005. Mini-AES and the simplified AES variant by Musa, Schaefer, and Wedig have been designed for teaching purposes. On the other hand, the small scale variants of the AES by Cid, Murphy, and Robshaw have been designed as a framework for cryptanalysis and comparing different cryptanalytic techniques that can be brought to bear on the AES or its small scale variants. As I see it, the small scale variants of Cid et al. require far more advanced maths to describe and use. To be fair, the simplified variant by Musa et al. also requires far too much advanced maths than is suitable for someone who requires a basic understanding of how AES works. What I want to do with the patch is to implement a variant of the AES that fits in with Neal Koblitz's idea of Kid Krypto, where one should not require too much advanced maths to describe the working of a cryptosystem. Each method of the class
Yes. You got me there. I see what I can do to re-use the building blocks in |
comment:4
Replying to @sagetrac-mvngu:
Btw. |
comment:5
Replying to @malb:
I'm on it. I anticipate changing/adding to the documentation of
Thanks for the pointer. And for free courtesy of Martin :-)
Duly noted. |
Author: Minh Van Nguyen |
comment:6
The patch uses the S-box implementation in |
comment:7
Review Report
Note, that most of the above are recommendations, not requirements. This ticket is much better documented than almost every other module in Sage! |
comment:8
Replying to @malb:
That can be arranged.
You read my mind. I forgot to add that. Man, it's early in the morning over here :-)
Let's leave them in for now and see how users react.
The methods The callable
I'm not sure. It's meant as a specification of the decryption process.
Sure. Let me try that one for a change. |
comment:9
Fixed the following issues raised by malb:
I still use LaTeX markup for tables, as the |
comment:10
Replying to @sagetrac-mvngu:
It is somewhere in the developer docs that we should expect users to speak LaTeX, so I'd recommend to change that. I'll give the patch a positive review and leave it to your decision to follow this advise or not. |
comment:11
Doctests fail in 4.1.alpha0:
|
based on Sage 4.1.alpha0 |
comment:12
Attachment: trac_6164-mini-aes.patch.gz Can you try again with the new patch? |
comment:13
Yep that works! positive review again! |
Merged: sage-4.1.alpha2 |
Reviewer: Martin Albrecht |
To facilitate the learning of cryptography (in particular the Advanced Encryption Standard), it's a good idea to add a class to allow students to explore the working of a block cipher. The goal here is to implement the Mini-AES block cipher of Phan as described in the paper:
R. C.-W. Phan. Mini advanced encryption standard (mini-AES): a testbed for cryptanalysis students. Cryptologia, 26(4):283--306, 2002.
This is a simplified variant of the AES to be used for cryptography education.
CC: @malb
Component: cryptography
Keywords: Mini-AES, AES
Author: Minh Van Nguyen
Reviewer: Martin Albrecht
Merged: sage-4.1.alpha2
Issue created by migration from https://trac.sagemath.org/ticket/6164
The text was updated successfully, but these errors were encountered: