]> AND Private Git Repository - canny.git/blobdiff - stc/exp/python/stc.py
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
reprise
[canny.git] / stc / exp / python / stc.py
index cb1c3969daa9ecdb62a7642430b49d4a3e41a266..4d0b1f1055a1ea6c1d86bdcba921700250465fc8 100644 (file)
@@ -61,8 +61,9 @@ def forward(H_hat,x,message,lnm):
     indx,indm = 0,0
     i=0
     while i < nbblock: # pour chaque bit du message
-        if i%100 == 0 : 
+        """if i%100 == 0 : 
             print i
+        """
         for j in xrange(w):   # pour chaque colonne de H_hat
             #print indx, "en entrant",wght
             k = 0
@@ -99,8 +100,9 @@ def backward(start,H_hat,x,message,lnm,path):
     y=np.zeros(len(x))
     i=0
     while i < nbblock:
-        if i%10000 == 0 :
+        """if i%10000 == 0 :
             print i
+        """
         l = range(w)
         l.reverse()
         for j in l:   # pour chaque colonne de H_hat
@@ -123,6 +125,7 @@ def trouve_H_hat(n,m,h):
     assert alpha >= 2 
     index = min(int(alpha),9)
     mat = {
+        1 : [255]
         2 : [71,109],
         3 : [95, 101, 121],
         4 : [81, 95, 107, 121],
@@ -192,18 +195,33 @@ def equiv(x,y):
 
 ################
 
-x = [randint(0,1) for _ in xrange(50000)]
-message = [randint(0,1) for _ in xrange(10000)]
 
 
-(x_b,y,H_hat) = stc(x,message)
+
 # x_b est la sous partie de x qui va etre modifiee
 # y est le vecteur des bits modifies
 # H_hat est la sous-matrice retenue qui est embarquee dans H  
-
-
-print nbdif(x_b,y)
-
+eval = True
+count = 0
+
+""""
+while count < 1000 and eval :
+    lx = randint(500,1000)
+    x = [randint(0,1) for _ in xrange(lx)]
+    lm = randint(lx/10,lx/2)
+    message = [randint(0,1) for _ in xrange(lm)]
+    (x_b,y,H_hat) = stc(x,message)
+    eval = equiv(message, prod(H_hat,len(message),y))
+    if not (eval):
+        print x
+        print message
+
+    count +=1
+    if count % 100 == 0 :
+        print count
+                     
+print nbdif(x_b,y),count
+"""