def maxAbsolute(varsNum, Matrix): Matrix = shortTableToLong(varsNum, Matrix) allTruthtable = AllTruthTableSelect(varsNum) resList = [] for ele in allTruthtable[1:]: resList.append(autoCorrelation(Matrix, ele, allTruthtable)) maxValue = 0 for ele in resList: value = max(ele) if value > maxValue: maxValue = value return maxValue
def uniform(varsNum, SMatix): SMatix = shortTableToLong(varsNum, SMatix) alltruthTable = AllTruthTableSelect(varsNum) midOpRes = boxMidOp(SMatix, alltruthTable) countList = [] for element in alltruthTable: for ele in midOpRes: count = 0 for i in range(len(ele[0])): tmpList = [] for j in range(len(ele)): tmpList.append(ele[j][i]) if tmpList == element: count += 1 countList.append(count) return max(countList)
def S_BOX_MTO(self): return modifyMTO(self.varsNum, shortTableToLong(self.varsNum, self.S_BOX_Table))
def S_Box_Nonlinearity(self): return nonlinearity( self.varsNum, binartToHex(self.varsNum, shortTableToLong(self.varsNum, self.S_BOX_Table)))
tmp = tmp1 + ' ' + tmp2 binTmpList.append(tmp) return binTmpList if __name__ == '__main__': start = time.time() table = [128, 199, 143, 172, 158, 42, 216, 26, 188, 12, 84, 68, 177, 16, 52, 114, 248, 65, 24, 234, 41, 77, 9, 205, 226, 214, 32, 129, 104, 210, 101, 198, 241, 74, 3, 4, 48, 51, 213, 212, 82, 108, 27, 185, 18, 229, 155, 88, 197, 72, 173, 144, 64, 151, 130, 153, 81, 236, 165, 201, 75, 98, 141, 39, 227, 150, 21, 13, 6, 34, 8, 57, 96, 181, 102, 230, 171, 192, 169, 163, 37, 2, 89, 170, 54, 220, 242, 44, 36, 136, 203, 204, 182, 228, 49, 83, 139, 70, 17, 92, 218, 179, 160, 209, 1, 149, 174, 22, 132, 166, 178, 105, 35, 46, 217, 232, 202, 11, 147, 116, 23, 180, 69, 58, 154, 29, 78, 0, 127, 73, 19, 47, 38, 110, 94, 30, 76, 164, 93, 250, 61, 56, 60, 194, 25, 196, 200, 45, 59, 195, 245, 95, 122, 106, 112, 159, 120, 115, 133, 193, 50, 91, 137, 14, 145, 240, 90, 124, 118, 156, 135, 221, 235, 246, 63, 253, 117, 175, 85, 243, 97, 219, 190, 244, 113, 125, 103, 167, 138, 247, 131, 66, 100, 87, 55, 15, 146, 189, 28, 161, 162, 86, 225, 111, 53, 207, 121, 224, 109, 7, 184, 62, 142, 238, 187, 254, 215, 249, 237, 186, 126, 211, 251, 33, 107, 71, 222, 208, 43, 119, 231, 176, 67, 31, 183, 191, 252, 157, 233, 80, 99, 168, 123, 152, 79, 223, 206, 40, 148, 140, 239, 20, 134, 10, 5, 255] binartToHex(8, shortTableToLong(8, table)) end = time.time() print(end - start)
for ele in midOpRes: count = 0 for i in range(len(ele[0])): tmpList = [] for j in range(len(ele)): tmpList.append(ele[j][i]) if tmpList == element: count += 1 countList.append(count) return max(countList) if __name__ == '__main__': table = [ 69, 82, 172, 84, 3, 4, 188, 93, 88, 52, 252, 246, 251, 135, 213, 152, 27, 169, 165, 102, 67, 214, 244, 137, 231, 49, 161, 109, 139, 147, 32, 209, 125, 73, 205, 58, 106, 30, 143, 41, 224, 163, 85, 189, 158, 193, 108, 220, 184, 215, 182, 111, 16, 64, 140, 185, 6, 218, 35, 87, 39, 14, 241, 38, 116, 157, 240, 154, 174, 136, 104, 43, 40, 166, 179, 197, 124, 103, 78, 155, 28, 181, 0, 21, 8, 113, 79, 92, 48, 47, 9, 44, 56, 10, 226, 151, 129, 159, 225, 119, 76, 62, 230, 175, 126, 253, 138, 236, 162, 160, 53, 107, 150, 149, 242, 101, 249, 191, 24, 5, 131, 73, 75, 60, 80, 207, 55, 11, 29, 248, 238, 33, 228, 117, 74, 86, 105, 45, 216, 148, 66, 110, 36, 20, 250, 23, 180, 121, 130, 194, 119, 99, 192, 171, 59, 232, 243, 208, 254, 127, 217, 210, 146, 202, 134, 50, 176, 90, 91, 63, 211, 112, 67, 255, 97, 222, 223, 145, 94, 54, 239, 13, 128, 95, 2, 144, 49, 19, 118, 96, 89, 64, 177, 234, 132, 122, 168, 25, 195, 227, 153, 77, 18, 22, 12, 183, 221, 233, 170, 42, 247, 200, 178, 190, 187, 114, 206, 212, 164, 15, 17, 229, 156, 1, 237, 201, 51, 100, 142, 245, 81, 203, 141, 34, 37, 173, 167, 46, 72, 199, 219, 31, 87, 204, 61, 235, 120, 186, 198, 7, 196, 70, 123, 26, 133, 98 ] print(uniform(8, shortTableToLong(8, table)))