From cefc6d7dce4fc936f7b4f027a31a6024083d2a46 Mon Sep 17 00:00:00 2001 From: canthou Date: Mon, 12 Sep 2016 22:39:11 +0300 Subject: [PATCH 1/4] Update main.sagews --- main.sagews | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/main.sagews b/main.sagews index f53b2dd..340823d 100644 --- a/main.sagews +++ b/main.sagews @@ -32,17 +32,6 @@ for i in range(m): print "Public Key is: ",PK #ENCRYPTION-------------------------------------------- -Keyboard=[' ','!','"','#','$'] -BinaryKeyboard=["00100000","00100001","00100010","00100011","00100100"] - -test="!" -index=0 -for i in range(len(test)): - if(test[i]==Keyboard[i]): - index=i - test=Keyboard[index] -print test - #A message in binary Message=[0,1,1,0,1,0,1,1,0,0] Messagelength=10 @@ -72,21 +61,10 @@ for i in range(Messagelength): S[ci,l]=PK[rand,l] print "Random Set is: ",S print "----------------------" - sumOfB=0 #this is the variable that will hold the sum of b,of last column for k in range(n+1): for j in range(Ssize): #In each column of EncryptedMessage, the sum of A parameters of each of column of S is entered,except for the last one - if(k Date: Mon, 12 Sep 2016 22:41:02 +0300 Subject: [PATCH 2/4] Update main.sagews --- main.sagews | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/main.sagews b/main.sagews index 340823d..4eb582b 100644 --- a/main.sagews +++ b/main.sagews @@ -32,6 +32,17 @@ for i in range(m): print "Public Key is: ",PK #ENCRYPTION-------------------------------------------- +Keyboard=[' ','!','"','#','$'] +BinaryKeyboard=["00100000","00100001","00100010","00100011","00100100"] + +test="!" +index=0 +for i in range(len(test)): + if(test[i]==Keyboard[i]): + index=i + test=Keyboard[index] +print test + #A message in binary Message=[0,1,1,0,1,0,1,1,0,0] Messagelength=10 From 4ed0950e46c1b9a5d3c09694891bf538dc59c7bc Mon Sep 17 00:00:00 2001 From: canthou Date: Tue, 13 Sep 2016 04:06:03 +0300 Subject: [PATCH 3/4] Update main.sagews --- main.sagews | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/main.sagews b/main.sagews index 4eb582b..8ec7a94 100644 --- a/main.sagews +++ b/main.sagews @@ -32,20 +32,10 @@ for i in range(m): print "Public Key is: ",PK #ENCRYPTION-------------------------------------------- -Keyboard=[' ','!','"','#','$'] -BinaryKeyboard=["00100000","00100001","00100010","00100011","00100100"] - -test="!" -index=0 -for i in range(len(test)): - if(test[i]==Keyboard[i]): - index=i - test=Keyboard[index] -print test - -#A message in binary -Message=[0,1,1,0,1,0,1,1,0,0] -Messagelength=10 +#Message to binary +Amessage="A message" +Message=' '.join(format(ord(x), 'b') for x in Amessage) +Messagelength=len(Message) #EncryptedMessage matrix initialization EncryptedMessage=matrix(Messagelength,n+1) From beca7e6754fda4fce2e77b06d29101b79ded2072 Mon Sep 17 00:00:00 2001 From: canthou Date: Fri, 23 Sep 2016 04:07:26 +0300 Subject: [PATCH 4/4] Add files via upload --- Documentation.doc | Bin 0 -> 44544 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Documentation.doc diff --git a/Documentation.doc b/Documentation.doc new file mode 100644 index 0000000000000000000000000000000000000000..b686b9dc8f77c9ad38fc812feb97cffed0993920 GIT binary patch literal 44544 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