3115
Comment:
|
← Revision 19 as of 2011-11-10 13:47:27 ⇥
568
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
== Part of my Thesis == * My thesis deals with algebraic attacks on block ciphers namely the Courtois Toy Cipher. So I will implement/have implemented several algebraic attack algorithms like XL,F4, and DR. Though those might not be of general interest. |
|
Line 8: | Line 6: |
== Other stuff I'm working on (postponed till 01.07) == * Clean-up Ideal class (make sure a basis != ideal, which is what Singular does) |
|
Line 11: | Line 7: |
* Memory consumption analogous to cputime(). This is tricky because some grep on top et al. doesn't provide the necessary information. E.g. Python never ever frees memory while running, and we also might count shared libraries several times this way. | == Stuff I'm working on == |
Line 13: | Line 9: |
* Memory profiling similar to %prun or hotshot. The memory profiler would provide hints which part consumes the most memory during a calculation. * Parallel sparse linear algebra to utilize all 16 cores at sage.math.washington.edu at once. :) It's either too hard for me (if there is no library) or simple as it would be just another library to expose. * [http://article.gmane.org/gmane.comp.mathematics.sage.general/193/ SAGEBot] is not dead yet. * [http://eprint.iacr.org/2006/224.pdf Generalizations of the Karatsuba Algorithm for Efficient Implementations] * Implement or wrap the [http://eprint.iacr.org/2006/251.pdf "Method of Four Russians"] for row reducing resp. inverting a dense boolean matrix * NTL wrapper makeover (more SAGEish, avoid function calls, avoid news, deletes) * [:Factory:cf.CF] makeover (avoid function calls, avoid news, deletes). Also restrict arithmetic to cf.CF (i.e. strongly type it) to avoid casting/coercion overhead. |
* http://trac.sagemath.org/sage_trac/query?status=new&status=assigned&status=reopened&owner=malb&order=priority |
Line 26: | Line 12: |
* Givaro is going to be in SAGE 1.5 * Cputime class/function which wraps all the cputime() calls for all the subprocesses for convenience. So only one '''cputime(all=True)''' call would be sufficient. (I extended David Harvey's Profiler class for this) * Consider this example: {{{#!python sage: R1 = PolynomialRing(GF(2**8),2) sage: R2 = PolynomialRing(GF(2**8),2000) sage: x1=R1.gen() sage: y1=R1.gen(1) sage: x2=R2.gen() sage: y2=R2.gen(1) sage: time for i in range(1000): _ =x2*y2 CPU times: user 1.58 s, sys: 0.03 s, total: 1.61 s Wall time: 1.63 #ring with 2000 variables sage: time for i in range(1000): _ =x1*y1 CPU times: user 0.21 s, sys: 0.03 s, total: 0.24 s Wall time: 0.24 #ring with two variables }}} This is due to the way multivariate polynomials in SAGE are represented. I want to come up with a more sparse representation which does not add zero to zero 1998 times in the second example. (I rewrote the polynomial representation to use dicts of dicts which map indices to exponents e.g., {{1:2}:3} represents 3*y^2 if y is the second variable in the ring.) |
|
Line 43: | Line 13: |
* http://trac.sagemath.org/sage_trac/query?status=closed&owner=malb&order=priority | |
Line 45: | Line 16: |
I'm a computer science grad student from Bremen, Germany, with a strong interest in cryptanalysis, right now mainly algebraic attacks on block ciphers. I maintain a blog at http://www.informatik.uni-bremen.de/~malb/blog.php . | I am a postdoc in Team SALSA at LIP6, Paris, France. I maintain a blog at http://martinralbrecht.wordpress.com and my "official" website is http://www-salsa.lip6.fr/~malb |
Martin Albrecht's (malb) SAGE projects
Stuff I'm working on
Done
Other stuff
I am a postdoc in Team SALSA at LIP6, Paris, France. I maintain a blog at http://martinralbrecht.wordpress.com and my "official" website is http://www-salsa.lip6.fr/~malb