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)
Пример #3
0
 def S_BOX_MTO(self):
     return modifyMTO(self.varsNum,
                      shortTableToLong(self.varsNum, self.S_BOX_Table))
Пример #4
0
 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)))