Ask Your Question

asante's profile - activity

2019-04-17 11:34:44 -0600 received badge  Popular Question (source)
2018-06-21 12:47:13 -0600 commented answer HUGE delay in sage.crypto.sbox.SBox method nonlinearity() introduced in v.8.2

@sageuser1 I finally had some spare time and checked the timings of a simple c implementation to compute the LAT (which is the main time consuming part for computing the nonlinearity). I guess the Sage implementation can definitely be improved. I opened a ticket for it, https://trac.sagemath.org/ticket/25633 and will work on it at the upcoming SageDays.

2018-06-08 13:07:17 -0600 commented answer HUGE delay in sage.crypto.sbox.SBox method nonlinearity() introduced in v.8.2

@sageuser1 yes that may well be the case. If I find some spare time, I'll try to investigate if this could be improved.

2018-06-08 04:08:22 -0600 received badge  Good Answer (source)
2018-06-07 15:00:24 -0600 received badge  Nice Answer (source)
2018-06-07 10:42:11 -0600 answered a question HUGE delay in sage.crypto.sbox.SBox method nonlinearity() introduced in v.8.2

I've opened the following ticket: https://trac.sagemath.org/ticket/25516 The regression was indeed introduced by recent changes to the SBox module and should be fixed with the above patch.

Thanks for reporting this!

2018-06-06 02:53:27 -0600 commented answer HUGE delay in sage.crypto.sbox.SBox method nonlinearity() introduced in v.8.2

Samuel informed me, I'll take a look into this.

2017-01-18 11:49:45 -0600 received badge  Teacher (source)
2017-01-17 03:02:31 -0600 received badge  Supporter (source)
2017-01-17 03:02:31 -0600 received badge  Scholar (source)
2017-01-17 03:02:26 -0600 commented answer How to dynamically add boolean variables?

:) +1 for your update, this nicely comprehends your first part.

2017-01-16 08:26:20 -0600 commented question How can I exit help?

ctrl+tab changes the tab in chromium - does this help you?

2017-01-16 08:22:27 -0600 commented answer How to dynamically add boolean variables?

Oh, that's actually a good idea, I hadn't thought of this :D But I still have another concern: I might want to actually add the variable y to the system of equations, so that the Groebner basis algorithms work with y - maybe this has some advantages for Groebner bases? Using an ordinary python variable does not help in this way, right?

2017-01-16 08:20:05 -0600 commented answer How to dynamically add boolean variables?

Yes, that's what I initially thought of - but my hope was, that there is something more "clever".

2017-01-13 05:00:08 -0600 received badge  Student (source)
2017-01-13 04:58:24 -0600 commented question Grobner basis

What do you mean with Output: No output is coming, is it running, i.e. takes too long to compute the Groebner basis?

2017-01-13 04:58:06 -0600 answered a question Grobner bases of ideals

When you have unknowns in GF(2), you might want to use BooleanPolynomialRing, instead of the more general PolynomialRing. The BooleanPolynomialRing takes care of that for all unknowns in GF(2) it holds: x^2 = x. With this you code looks like this:

P.<x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35>=BooleanPolynomialRing(35,order='lex');
I=Ideal([x1*x21*x22*x23*x24*x25*x26*x27*x28*x29*x30*x31*x32*x33*x34*x35-1,x2*x14*x15*x16*x17*x18*x19*x20*x2*x22*x23*x24*x25*x26*x27*x28-1,x3*x11*x12*x13*x15*x17*x19*x20*x21*x22*x23*x24*x29*x30*x31*x35-1,x4*x8*x9*x10*x14*x18*x19*x20*x23*x24*x25*x27*x29*x30*x32*x34-1,x5*x7*x8*x10*x12*x13*x19*x20*x22*x24*x25*x26*x29*x31*x32*x33-1,x6*x7*x9*x10*x11*x13*x16*x17*x18*x20*x22*x23*x25*x26*x29*x30-1,x1^2-1,x2^2-1,x3^2-1,x4^2-1,x5^2-1,x6^2-1,x7^2-1,x8^2-1,x9^2-1,x10^2-1,x11^2-1,x12^2-1,x13^2-1,x14^2-1,x15^2-1,x16^2-1,x17^2-1,x18^2-1,x19^2-1,x20^2-1,x21^2-1,x22^2-1,x23^2-1,x24^2-1,x25^2-1,x26^2-1,x27^2-1,x28^2-1,x29^2-1,x30^2-1,x31^2-1,x32^2-1,x33^2-1, x34^2-1,x35^2-1])
I.groebner_basis();

My laptop computes this Groebner basis within seconds.

2017-01-13 04:58:06 -0600 asked a question How to dynamically add boolean variables?

I want to experiment with Groebner bases for a system of equations in boolean unknowns. In order to simplify equations I would like to dynamically insert new variables for some terms. Is this possible somehow?

An example could be:

F = BooleanPolynomialRing(4, ["x0", "x1", "x2", "x3"])
F.inject_variables()
eqns = [x0 + x1*x2 + x3 + 1, x0 + x1*x2*x3, x0 + 1]
# now add 'y == x1*x2'
eqns = [x0 + y + x3 + 1, x0 + y*x3, x0 + 1] # NameError: name 'y' is not defined