import os
from random import *
from math import *
+from bbs import *
+
infinity = 1000000000
return List
-def compute_filter_canny(level,image):
+def compute_filter_canny(level,image,MsgLen):
+
+ bbs = BlumBlumShub();
+ bbs.setN(18532395500947174450709383384936679868383424444311405679463280782405796233163977*39688644836832882526173831577536117815818454437810437210221644553381995813014959)
+ bbs.setSeed(18532395500947174450709383384936679868383424444311)
+
level2=level.copy()
level2= array(level2.getdata()).flatten()
l=0
processed= array(processed.getdata()).flatten()
List7=set(compute_list_bit_to_change(100,processed))
- nb_bit_embedded=(512*512/10)+40
+ #nb_bit_embedded=(512*512/10)+40
+ nb_bit_embedded=max(2*MsgLen,int(len(List3)/MsgLen)*MsgLen)+40
+ print "nb_bit_embedded",nb_bit_embedded
AvailablePixel3=List3
AvailablePixel5=AvailablePixel3.union(List5)
AvailablePixel7=AvailablePixel5.union(List7)
+ sub=set()
+
if len(AvailablePixel3)>nb_bit_embedded:
step=1
WorkingPixel=AvailablePixel3
+ sub = bbs.sample(AvailablePixel3,nb_bit_embedded)
elif len(AvailablePixel5)>nb_bit_embedded:
step=2
WorkingPixel=AvailablePixel5
+ sub = AvailablePixel3.union(
+ bbs.sample(AvailablePixel5-AvailablePixel3,nb_bit_embedded-len(AvailablePixel3)))
+
elif len(AvailablePixel7)>nb_bit_embedded:
step=3
WorkingPixel=AvailablePixel7
+ sub = AvailablePixel5.union(
+ bbs.sample(AvailablePixel7-AvailablePixel5,nb_bit_embedded-len(AvailablePixel5)))
else:
step=4
WorkingPixel=range(len(level2))
+ sub = range(len(level2))
+
print "avail P3",len(AvailablePixel3)
print "avail P5",len(AvailablePixel5)
print "avail P7",len(AvailablePixel7)
- print "size WorkingPixel",len(WorkingPixel)
- Weight=[0 for _ in WorkingPixel]
+
+ Weight=[0 for _ in sub]
l=0
- for i in WorkingPixel:
+ for i in sub:
if step>=1 and i in List3:
Weight[l]=1
if step>=2 and i in List5 and Weight[l]==0:
- List_bit_to_change=WorkingPixel
+ List_bit_to_change=sub
- return [List_bit_to_change,Weight]
+ return [sub,Weight]
red, green, blue = dd.split()
level=red.copy()
- [List_bit_to_change,Weight]=compute_filter_canny(level,dd)
- level= array(level.getdata()).flatten()
-
-
- bit_to_read=1
-
+ message="Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete voila c'est la fin blablabla:-)"
- M=18532395500947174450709383384936679868383424444311405679463280782405796233163977*39688644836832882526173831577536117815818454437810437210221644553381995813014959
- # M clef
- X=18532395500947174450709383384936679868383424444311
- # X clef
-
-
-
-
- l=0
-
+ message="Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela."
- message="Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete Ce que j'écris est très original... Bref, je suis un poete Salut christophe, arrives tu à lire ce message? normalement tu dois lire cela. Bon voici un test avec un message un peu plus long. Bon j'en rajoute pour voir. Ce que j'écris est très original... Bref, je suis un poete voila c'est la fin blablabla:-)"
message=message[0:len(message)/1]
leng_msg=len(message)
message=message+((leng_msg+7)/8*8-leng_msg)*" "
leng_error=int(len_leng)
leng_cor=leng
List_pack=a2b_list(leng_cor)
- print len(str(M))
+
+
+
+
+
+ [List_bit_to_change,Weight]=compute_filter_canny(level,dd,leng_msg)
+ level= array(level.getdata()).flatten()
+
+
+ bit_to_read=1
+
+
+
+
+ M=18532395500947174450709383384936679868383424444311405679463280782405796233163977*39688644836832882526173831577536117815818454437810437210221644553381995813014959
+ # M clef
+ X=18532395500947174450709383384936679868383424444311
+ # X clef
+
+
+
+
+ l=0
+
+
List_random=[]
while len(List_random)<len(List_bit_to_change):
red2, green, blue = dd2.split()
level2=red2.copy()
- [List_bit_to_change2,Weight2]=compute_filter_canny(level2,dd2)
+ [List_bit_to_change2,Weight2]=compute_filter_canny(level2,dd2,len(Message))
level2= array(level2.getdata()).flatten()
print "support2",len(List_bit_to_change2)
print "message2",len(Message)
- print "weight2",len(Weight)
+ print "weight2",len(Weight2)
alpha = float(len(List_bit_to_change2))/len(Message)
print alpha
print H_hat,H_hat2
- Stc_message2=[getBit(level2[l],bit_to_read) for l in List_bit_to_change]
+ Stc_message2=[getBit(level2[l],bit_to_read) for l in List_bit_to_change2]
LL1=list(List_bit_to_change);
LL2=list(List_bit_to_change2)
- print "Level",max([level2[l]-level[l] for l in xrange(len(Stc_message))])
+ print "Level",max([level2[l]-level[l] for l in xrange(len(Stc_message2))])
print "List bit to change",max([LL2[l]-LL1[l] for l in xrange(len(Stc_message))])
print "Stc message", max([Stc_message[l]-Stc_message2[l] for l in xrange(len(Stc_message))])