Пример #1
0
def test_init_key_schedule():
    '''key_bv is the 128-bit input key value represented as a BitVector; return
       key_schedule as an array of (4*(1+#rounds)) 32-bit BitVector words '''
    key = AES.key_to_bv('2b7e151628aed2a6abf7158809cf4f3c')
    expected = \
    [AES.key_to_bv("2b7e1516"), AES.key_to_bv("28aed2a6"), AES.key_to_bv("abf71588"), AES.key_to_bv("09cf4f3c"),\
     AES.key_to_bv("a0fafe17"), AES.key_to_bv("88542cb1"), AES.key_to_bv("23a33939"), AES.key_to_bv("2a6c7605"),\
     AES.key_to_bv("f2c295f2"), AES.key_to_bv("7a96b943"), AES.key_to_bv("5935807a"), AES.key_to_bv("7359f67f"),\
     AES.key_to_bv("3d80477d"), AES.key_to_bv("4716fe3e"), AES.key_to_bv("1e237e44"), AES.key_to_bv("6d7a883b"),\
     AES.key_to_bv("ef44a541"), AES.key_to_bv("a8525b7f"), AES.key_to_bv("b671253b"), AES.key_to_bv("db0bad00"),\
     AES.key_to_bv("d4d1c6f8"), AES.key_to_bv("7c839d87"), AES.key_to_bv("caf2b8bc"), AES.key_to_bv("11f915bc"),\
     AES.key_to_bv("6d88a37a"), AES.key_to_bv("110b3efd"), AES.key_to_bv("dbf98641"), AES.key_to_bv("ca0093fd"),\
     AES.key_to_bv("4e54f70e"), AES.key_to_bv("5f5fc9f3"), AES.key_to_bv("84a64fb2"), AES.key_to_bv("4ea6dc4f"),\
     AES.key_to_bv("ead27321"), AES.key_to_bv("b58dbad2"), AES.key_to_bv("312bf560"), AES.key_to_bv("7f8d292f"),\
     AES.key_to_bv("ac7766f3"), AES.key_to_bv("19fadc21"), AES.key_to_bv("28d12941"), AES.key_to_bv("575c006e"),\
     AES.key_to_bv("d014f9a8"), AES.key_to_bv("c9ee2589"), AES.key_to_bv("e13f0cc8"), AES.key_to_bv("b6630ca6")]
    actual = AES.init_key_schedule(key)
    assert actual == expected;

    key = AES.key_to_bv("00000000000000000000000000000000")
    expected = \
    [AES.key_to_bv("00000000"), AES.key_to_bv("00000000"), AES.key_to_bv("00000000"), AES.key_to_bv("00000000"),\
     AES.key_to_bv("62636363"), AES.key_to_bv("62636363"), AES.key_to_bv("62636363"), AES.key_to_bv("62636363"),\
     AES.key_to_bv("9b9898c9"), AES.key_to_bv("f9fbfbaa"), AES.key_to_bv("9b9898c9"), AES.key_to_bv("f9fbfbaa"),\
     AES.key_to_bv("90973450"), AES.key_to_bv("696ccffa"), AES.key_to_bv("f2f45733"), AES.key_to_bv("0b0fac99"),\
     AES.key_to_bv("ee06da7b"), AES.key_to_bv("876a1581"), AES.key_to_bv("759e42b2"), AES.key_to_bv("7e91ee2b"),\
     AES.key_to_bv("7f2e2b88"), AES.key_to_bv("f8443e09"), AES.key_to_bv("8dda7cbb"), AES.key_to_bv("f34b9290"),\
     AES.key_to_bv("ec614b85"), AES.key_to_bv("1425758c"), AES.key_to_bv("99ff0937"), AES.key_to_bv("6ab49ba7"),\
     AES.key_to_bv("21751787"), AES.key_to_bv("3550620b"), AES.key_to_bv("acaf6b3c"), AES.key_to_bv("c61bf09b"),\
     AES.key_to_bv("0ef90333"), AES.key_to_bv("3ba96138"), AES.key_to_bv("97060a04"), AES.key_to_bv("511dfa9f"),\
     AES.key_to_bv("b1d4d8e2"), AES.key_to_bv("8a7db9da"), AES.key_to_bv("1d7bb3de"), AES.key_to_bv("4c664941"),\
     AES.key_to_bv("b4ef5bcb"), AES.key_to_bv("3e92e211"), AES.key_to_bv("23e951cf"), AES.key_to_bv("6f8f188e")]
    actual = AES.init_key_schedule(key)
    assert actual == expected

    key = AES.key_to_bv("ffffffffffffffffffffffffffffffff")
    expected = \
    [AES.key_to_bv("ffffffff"), AES.key_to_bv("ffffffff"), AES.key_to_bv("ffffffff"), AES.key_to_bv("ffffffff"),\
     AES.key_to_bv("e8e9e9e9"), AES.key_to_bv("17161616"), AES.key_to_bv("e8e9e9e9"), AES.key_to_bv("17161616"),\
     AES.key_to_bv("adaeae19"), AES.key_to_bv("bab8b80f"), AES.key_to_bv("525151e6"), AES.key_to_bv("454747f0"),\
     AES.key_to_bv("090e2277"), AES.key_to_bv("b3b69a78"), AES.key_to_bv("e1e7cb9e"), AES.key_to_bv("a4a08c6e"),\
     AES.key_to_bv("e16abd3e"), AES.key_to_bv("52dc2746"), AES.key_to_bv("b33becd8"), AES.key_to_bv("179b60b6"),\
     AES.key_to_bv("e5baf3ce"), AES.key_to_bv("b766d488"), AES.key_to_bv("045d3850"), AES.key_to_bv("13c658e6"),\
     AES.key_to_bv("71d07db3"), AES.key_to_bv("c6b6a93b"), AES.key_to_bv("c2eb916b"), AES.key_to_bv("d12dc98d"),\
     AES.key_to_bv("e90d208d"), AES.key_to_bv("2fbb89b6"), AES.key_to_bv("ed5018dd"), AES.key_to_bv("3c7dd150"),\
     AES.key_to_bv("96337366"), AES.key_to_bv("b988fad0"), AES.key_to_bv("54d8e20d"), AES.key_to_bv("68a5335d"),\
     AES.key_to_bv("8bf03f23"), AES.key_to_bv("3278c5f3"), AES.key_to_bv("66a027fe"), AES.key_to_bv("0e0514a3"),\
     AES.key_to_bv("d60a3588"), AES.key_to_bv("e472f07b"), AES.key_to_bv("82d2d785"), AES.key_to_bv("8cd7c326")]
    actual = AES.init_key_schedule(key)
    assert actual == expected
Пример #2
0
def test_init_key_schedule():
    '''key_bv is the 128-bit input key value represented as a BitVector; return
       key_schedule as an array of (4*(1+#rounds)) 32-bit BitVector words '''
    key = AES.key_to_bv('2b7e151628aed2a6abf7158809cf4f3c')
    expected = \
    [AES.key_to_bv("2b7e1516"), AES.key_to_bv("28aed2a6"), AES.key_to_bv("abf71588"), AES.key_to_bv("09cf4f3c"),\
     AES.key_to_bv("a0fafe17"), AES.key_to_bv("88542cb1"), AES.key_to_bv("23a33939"), AES.key_to_bv("2a6c7605"),\
     AES.key_to_bv("f2c295f2"), AES.key_to_bv("7a96b943"), AES.key_to_bv("5935807a"), AES.key_to_bv("7359f67f"),\
     AES.key_to_bv("3d80477d"), AES.key_to_bv("4716fe3e"), AES.key_to_bv("1e237e44"), AES.key_to_bv("6d7a883b"),\
     AES.key_to_bv("ef44a541"), AES.key_to_bv("a8525b7f"), AES.key_to_bv("b671253b"), AES.key_to_bv("db0bad00"),\
     AES.key_to_bv("d4d1c6f8"), AES.key_to_bv("7c839d87"), AES.key_to_bv("caf2b8bc"), AES.key_to_bv("11f915bc"),\
     AES.key_to_bv("6d88a37a"), AES.key_to_bv("110b3efd"), AES.key_to_bv("dbf98641"), AES.key_to_bv("ca0093fd"),\
     AES.key_to_bv("4e54f70e"), AES.key_to_bv("5f5fc9f3"), AES.key_to_bv("84a64fb2"), AES.key_to_bv("4ea6dc4f"),\
     AES.key_to_bv("ead27321"), AES.key_to_bv("b58dbad2"), AES.key_to_bv("312bf560"), AES.key_to_bv("7f8d292f"),\
     AES.key_to_bv("ac7766f3"), AES.key_to_bv("19fadc21"), AES.key_to_bv("28d12941"), AES.key_to_bv("575c006e"),\
     AES.key_to_bv("d014f9a8"), AES.key_to_bv("c9ee2589"), AES.key_to_bv("e13f0cc8"), AES.key_to_bv("b6630ca6")]
    actual = AES.init_key_schedule(key)
    assert actual == expected

    key = AES.key_to_bv("00000000000000000000000000000000")
    expected = \
    [AES.key_to_bv("00000000"), AES.key_to_bv("00000000"), AES.key_to_bv("00000000"), AES.key_to_bv("00000000"),\
     AES.key_to_bv("62636363"), AES.key_to_bv("62636363"), AES.key_to_bv("62636363"), AES.key_to_bv("62636363"),\
     AES.key_to_bv("9b9898c9"), AES.key_to_bv("f9fbfbaa"), AES.key_to_bv("9b9898c9"), AES.key_to_bv("f9fbfbaa"),\
     AES.key_to_bv("90973450"), AES.key_to_bv("696ccffa"), AES.key_to_bv("f2f45733"), AES.key_to_bv("0b0fac99"),\
     AES.key_to_bv("ee06da7b"), AES.key_to_bv("876a1581"), AES.key_to_bv("759e42b2"), AES.key_to_bv("7e91ee2b"),\
     AES.key_to_bv("7f2e2b88"), AES.key_to_bv("f8443e09"), AES.key_to_bv("8dda7cbb"), AES.key_to_bv("f34b9290"),\
     AES.key_to_bv("ec614b85"), AES.key_to_bv("1425758c"), AES.key_to_bv("99ff0937"), AES.key_to_bv("6ab49ba7"),\
     AES.key_to_bv("21751787"), AES.key_to_bv("3550620b"), AES.key_to_bv("acaf6b3c"), AES.key_to_bv("c61bf09b"),\
     AES.key_to_bv("0ef90333"), AES.key_to_bv("3ba96138"), AES.key_to_bv("97060a04"), AES.key_to_bv("511dfa9f"),\
     AES.key_to_bv("b1d4d8e2"), AES.key_to_bv("8a7db9da"), AES.key_to_bv("1d7bb3de"), AES.key_to_bv("4c664941"),\
     AES.key_to_bv("b4ef5bcb"), AES.key_to_bv("3e92e211"), AES.key_to_bv("23e951cf"), AES.key_to_bv("6f8f188e")]
    actual = AES.init_key_schedule(key)
    assert actual == expected

    key = AES.key_to_bv("ffffffffffffffffffffffffffffffff")
    expected = \
    [AES.key_to_bv("ffffffff"), AES.key_to_bv("ffffffff"), AES.key_to_bv("ffffffff"), AES.key_to_bv("ffffffff"),\
     AES.key_to_bv("e8e9e9e9"), AES.key_to_bv("17161616"), AES.key_to_bv("e8e9e9e9"), AES.key_to_bv("17161616"),\
     AES.key_to_bv("adaeae19"), AES.key_to_bv("bab8b80f"), AES.key_to_bv("525151e6"), AES.key_to_bv("454747f0"),\
     AES.key_to_bv("090e2277"), AES.key_to_bv("b3b69a78"), AES.key_to_bv("e1e7cb9e"), AES.key_to_bv("a4a08c6e"),\
     AES.key_to_bv("e16abd3e"), AES.key_to_bv("52dc2746"), AES.key_to_bv("b33becd8"), AES.key_to_bv("179b60b6"),\
     AES.key_to_bv("e5baf3ce"), AES.key_to_bv("b766d488"), AES.key_to_bv("045d3850"), AES.key_to_bv("13c658e6"),\
     AES.key_to_bv("71d07db3"), AES.key_to_bv("c6b6a93b"), AES.key_to_bv("c2eb916b"), AES.key_to_bv("d12dc98d"),\
     AES.key_to_bv("e90d208d"), AES.key_to_bv("2fbb89b6"), AES.key_to_bv("ed5018dd"), AES.key_to_bv("3c7dd150"),\
     AES.key_to_bv("96337366"), AES.key_to_bv("b988fad0"), AES.key_to_bv("54d8e20d"), AES.key_to_bv("68a5335d"),\
     AES.key_to_bv("8bf03f23"), AES.key_to_bv("3278c5f3"), AES.key_to_bv("66a027fe"), AES.key_to_bv("0e0514a3"),\
     AES.key_to_bv("d60a3588"), AES.key_to_bv("e472f07b"), AES.key_to_bv("82d2d785"), AES.key_to_bv("8cd7c326")]
    actual = AES.init_key_schedule(key)
    assert actual == expected
Пример #3
0
 def test_init_key_schedule_0(self):
     ntk='2b7e151628aed2a6abf7158809cf4f3c'
     q = aes.init_key_schedule(aes.key_bv(ntk))
     self.assertEqual(len(q),44,"there should be 44 elements in the key schedule")
     self.assertEqual(aes.bv_hex_str(q[0]),'2b7e1516',"random testing elements\
     of key schedule according to FIPS-197 appendix 2")
     self.assertEqual(aes.bv_hex_str(q[20]),'d4d1c6f8',"random testing elements\
     of key schedule according to FIPS-197 appendix 2")
     self.assertEqual(aes.bv_hex_str(q[43]),'b6630ca6',"random testing elements\
     of key schedule according to FIPS-197 appendix 2")
     self.assertEqual(aes.bv_hex_str(q[33]),'b58dbad2',"random testing elements\
     of key schedule according to FIPS-197 appendix 2")
Пример #4
0
 def test_init_key_schedule_0(self):
     ntk = '2b7e151628aed2a6abf7158809cf4f3c'
     q = aes.init_key_schedule(aes.key_bv(ntk))
     self.assertEqual(len(q), 44,
                      "there should be 44 elements in the key schedule")
     self.assertEqual(
         aes.bv_hex_str(q[0]), '2b7e1516', "random testing elements\
     of key schedule according to FIPS-197 appendix 2")
     self.assertEqual(
         aes.bv_hex_str(q[20]), 'd4d1c6f8', "random testing elements\
     of key schedule according to FIPS-197 appendix 2")
     self.assertEqual(
         aes.bv_hex_str(q[43]), 'b6630ca6', "random testing elements\
     of key schedule according to FIPS-197 appendix 2")
     self.assertEqual(
         aes.bv_hex_str(q[33]), 'b58dbad2', "random testing elements\
     of key schedule according to FIPS-197 appendix 2")