diff --git a/poweranalysis_part_1/out b/poweranalysis_part_1/out new file mode 100644 index 0000000..f26a000 --- /dev/null +++ b/poweranalysis_part_1/out @@ -0,0 +1 @@ +Please provide 16 bytes of plaintext encoded as hex: power measurement result: [97, 68, 75, 87, 100, 74, 108, 123, 115, 75, 49, 59, 56, 82, 104, 102, 73, 78, 126, 141, 97, 93, 95, 117, 113, 121, 103, 113, 89, 118, 81, 79, 76, 109, 131, 111, 73, 53, 78, 110, 96, 112, 105, 106, 79, 52, 69, 52, 98, 87, 90, 88, 73, 98, 73, 84, 72, 47, 50, 39, 70, 59, 76, 78, 87, 66, 56, 65, 76, 75, 50, 63, 89, 119, 129, 103, 78, 65, 91, 124, 137, 114, 110, 109, 136, 144, 130, 79, 34, 48, 100, 134, 115, 98, 116, 104, 92, 75, 71, 99, 87, 101, 66, 70, 67, 65, 42, 33, 53, 64, 63, 68, 78, 98, 76, 99, 113, 123, 125, 93, 118, 79, 112, 91, 97, 57, 42, 38, 47, 55, 42, 72, 64, 85, 66, 103, 102, 119, 115, 104, 99, 77, 93, 82, 101, 94, 104, 101, 124, 123, 130, 92, 115, 113, 110, 90, 79, 122, 102, 84, 62, 98, 118, 109, 104, 82, 120, 103, 106, 69, 53, 46, 50, 47, 74, 86, 81, 83, 91, 121, 93, 83, 90, 114, 110, 86, 104, 127, 126, 116, 100, 108, 83, 85, 90, 91, 102, 90, 70, 78, 60, 67, 38, 62, 68, 81, 74, 88, 98, 102, 110, 86, 78, 84, 116, 128, 101, 103, 114, 140, 140, 112, 75, 59, 54, 94, 95, 99, 86, 67, 97, 85, 77, 80, 102, 129, 112, 83, 65, 62, 70, 54, 54, 49, 56, 74, 105, 111, 112, 74, 58, 64, 96, 103, 64, 70, 102, 143, 106, 116, 88, 132, 101, 98, 61, 81, 106, 108, 81, 46, 84, 85, 118, 78, 79, 77, 95, 98, 100, 110, 136, 108, 105, 71, 61, 41, 42, 57, 56, 43, 34, 31, 32, 80, 77, 109, 73, 106, 101, 123, 121, 139, 149, 166, 166, 197, 178, 187, 171, 193, 191, 198, 208, 231, 233, 217, 190, 171, 163, 161, 145, 146, 151, 175, 177, 153, 143, 146, 176, 193, 186, 196, 196, 180, 185, 191, 200, 178, 153, 158, 130, 140, 138, 179, 146, 129, 125, 132, 176, 152, 163, 164, 191, 197, 187, 161, 165, 149, 182, 186, 199, 200, 177, 157, 128, 165, 199, 208, 200, 172, 183, 184, 168, 133, 123, 123, 143, 157, 200, 200, 189, 145, 150, 141, 177, 170, 180, 186, 176, 158, 143, 178, 201, 203, 177, 148, 133, 131, 139, 170, 151, 165, 184, 177, 173, 92, 168, 168, 233, 146, 106, 91, 129, 159, 199, 249, 254, 237, 149, 156, 114, 128, 154, 206, 195, 172, 103, 147, 151, 227, 219, 206, 185, 211, 259, 277, 284, 247, 187, 199, 187, 173, 163, 140, 170, 125, 142, 131, 119, 107, 138, 207, 277, 278, 214, 182, 130, 157, 184, 256, 273, 245, 201, 167, 141, 108, 161, 174, 195, 113, 70, 114, 184, 192, 136, 112, 111, 169, 133, 175, 130, 161, 133, 106, 135, 168, 202, 183, 218, 214, 167, 143, 127, 159, 161, 187, 218, 163, 153, 165, 176, 200, 149, 165, 129, 131, 116, 107, 118, 117, 141, 133, 192, 221, 208, 155, 138, 176, 225, 255, 259, 270, 257, 239, 187, 182, 169, 179, 173, 179, 184, 175, 178, 177, 185, 181, 181, 184, 189, 199, 189, 186, 154, 153, 167, 178, 186, 164, 151, 149, 146, 173, 180, 190, 166, 152, 166, 195, 207, 206, 190, 184, 174, 177, 161, 152, 151, 181, 210, 213, 205, 188, 167, 135, 126, 129, 132, 138, 154, 173, 161, 150, 166, 191, 199, 199, 186, 192, 167, 170, 160, 165, 166, 182, 180, 184, 171, 205, 203, 178, 174, 159, 207, 183, 188, 162, 193, 158, 133, 86, 86, 101, 118, 148, 188, 230, 226, 157, 119, 93, 111, 72, 121, 137, 135, 154, 143, 177, 127, 107, 113, 97, 154, 166, 173, 138, 94, 99, 144, 175, 199, 133, 141, 158, 233, 269, 228, 151, 118, 140, 154, 140, 105, 101, 115, 149, 141, 144, 187, 264, 269, 224, 221, 204, 221, 195, 157, 174, 148, 153, 101, 135, 119, 182, 174, 237, 194, 190, 202, 223, 239, 225, 231, 249, 243, 181, 170, 189, 244, 198, 199, 217, 215, 223, 160, 141, 89, 132, 212, 264, 222, 186, 192, 223, 230, 230, 214, 221, 137, 159, 139, 219, 181, 209, 171, 246, 173, 151, 72, 112, 121, 124, 159, 147, 206, 181, 192, 179, 189, 181, 182, 184, 206, 203, 182, 177, 185, 177, 157, 149, 157, 180, 183, 167, 160, 126, 170, 164, 183, 152, 165, 138, 133, 143, 181, 192, 196, 190, 183, 143, 134, 151, 175, 185, 169, 182, 167, 163, 133, 116, 137, 182, 200, 189, 139, 170, 186, 225, 197, 184, 181, 184, 186, 184, 195, 164, 154, 159, 201, 209, 186, 173, 161, 158, 141, 150, 184, 199, 219, 179, 194, 190, 215, 227, 234, 269, 279, 263, 254, 223, 164, 87, 36, 92, 142, 178, 135, 120, 92, 107, 139, 192, 190, 160, 160, 212, 188, 154, 85, 81, 79, 162, 211, 224, 146, 158, 170, 172, 127, 104, 97, 160, 173, 167, 153, 172, 231, 166, 114, 84, 83, 76, 103, 115, 180, 140, 193, 209, 277, 234, 201, 126, 133, 172, 197, 161, 151, 147, 177, 184, 198, 218, 210, 214, 179, 180, 210, 239, 177, 160, 198, 220, 237, 179, 181, 104, 141, 154, 209, 213, 167, 194, 152, 169, 130, 144, 152, 117, 95, 110, 112, 136, 143, 168, 207, 240, 285, 293, 238, 209, 154, 125, 99, 93, 168, 229, 274, 210, 135, 73, 65, 74, 65, 89, 92, 127, 98, 113, 142, 207, 221, 213, 186, 166, 148, 150, 157, 169, 163, 140, 146, 155, 186, 177, 161, 131, 134, 150, 175, 146, 167, 155, 182, 159, 173, 177, 183, 184, 173, 165, 167, 169, 187, 193, 197, 159, 169, 157, 181, 179, 202, 199, 182, 147, 160, 144, 156, 138, 137, 142, 150, 168, 172, 172, 165, 169, 168, 167, 177, 193, 190, 157, 150, 154, 165, 156, 181, 210, 192, 193, 159, 186, 164, 171, 148, 121, 143, 190, 183, 152, 110, 144, 147, 200, 171, 216, 136, 176, 146, 139, 143, 160, 206, 237, 199, 216, 216, 244, 219, 167, 168, 216, 237, 259, 203, 227, 152, 199, 204, 243, 226, 181, 197, 204, 190, 217, 188, 188, 119, 98, 73, 73, 116, 198, 188, 156, 101, 114, 106, 158, 227, 277, 213, 185, 128, 190, 180, 191, 192, 210, 246, 187, 132, 135, 112, 173, 134, 170, 182, 222, 233, 198, 162, 122, 87, 150, 195, 209, 206, 206, 268, 259, 258, 187, 125, 149, 181, 190, 134, 136, 185, 166, 165, 126, 139, 102, 121, 144, 200, 228, 192, 183, 129, 176, 142, 121, 94, 130, 206, 274, 255, 252, 197, 200, 169, 210, 230, 254, 223, 180, 177, 175, 194, 172, 168, 180, 174, 190, 168, 161, 167, 194, 213, 182, 154, 172, 205, 200, 198, 167, 152, 125, 137, 165, 159, 164, 170, 173, 172, 165, 177, 175, 174, 181, 196, 209, 218, 185, 184, 150, 148, 125, 159, 187, 208, 187, 206, 213, 232, 220, 192, 183, 171, 166, 160, 162, 184, 181, 176, 181, 204, 208, 214, 175, 177, 151, 193, 207, 204, 171, 175, 184, 206, 199, 194, 175, 139, 126, 104, 110, 115, 148, 180, 173, 196, 196, 257, 269, 212, 214, 192, 194, 138, 73, 105, 144, 224, 238, 218, 136, 131, 159, 199, 173, 160, 206, 228, 217, 163, 134, 167, 168, 174, 116, 139, 138, 142, 89, 106, 144, 228, 218, 231, 232, 280, 245, 231, 243, 283, 223, 228, 167, 157, 92, 130, 169, 226, 168, 137, 120, 201, 207, 212, 132, 125, 105, 138, 142, 118, 164, 221, 261, 263, 262, 203, 176, 128, 158, 173, 155, 179, 130, 176, 159, 196, 176, 157, 174, 229, 260, 209, 179, 153, 161, 176, 184, 193, 138, 103, 91, 82, 107, 105, 172, 234, 207, 195, 110, 107, 75, 85, 155, 197, 197, 182, 120, 182, 186, 264, 236, 236, 188, 179, 150, 164, 164, 191, 201, 204, 170, 152, 157, 172, 158, 155, 175, 169, 159, 147, 179, 188, 198, 196, 185, 144, 143, 170, 182, 171, 146, 157, 136, 141, 152, 187, 177, 184, 168, 208, 173, 178, 160, 176, 147, 155, 133, 168, 167, 204, 180, 147, 140, 169, 172, 160, 146, 167, 152, 150, 165, 188, 184, 188, 193, 223, 198, 205, 160, 145, 150, 170, 169, 147, 129, 131, 151, 153, 149, 104, 157, 161, 205, 189, 240, 270, 212, 174, 159, 175, 148, 80, 106, 184, 257, 242, 169, 167, 195, 268, 226, 168, 130, 147, 172, 161, 123, 166, 201, 199, 188, 201, 277, 304, 243, 211, 158, 212, 201, 215, 146, 173, 185, 250, 251, 251, 175, 116, 79, 110, 105, 170, 196, 207, 189, 203, 198, 129, 133, 177, 245, 197, 200, 219, 234, 241, 179, 220, 202, 235, 200, 181, 161, 109, 118, 92, 110, 115, 164, 183, 214, 178, 176, 161, 223, 260, 280, 269, 271, 219, 215, 151, 169, 96, 118, 73, 136, 126, 189, 167, 198, 215, 174, 161, 149, 155, 134, 105, 163, 208, 240, 238, 253, 204, 153, 140, 164, 237, 196, 199, 143, 179, 156, 191, 171, 185, 171, 196, 211, 207, 180, 168, 181, 213, 207, 205, 193, 182, 172, 173, 178, 195, 182, 167, 136, 111, 146, 173, 195, 188, 185, 186, 173, 169, 167, 177, 164, 185, 201, 236, 209, 212, 184, 193, 160, 180, 166, 176, 151, 138, 162, 186, 232, 230, 205, 187, 181, 180, 174, 167, 166, 176, 172, 200, 218, 240, 202, 197, 188, 188, 172, 157, 194, 211, 199, 160, 127, 144, 160, 177, 210, 176, 195, 166, 249, 224, 185, 123, 111, 172, 183, 240, 206, 208, 204, 189, 208, 159, 146, 100, 123, 152, 145, 146, 120, 134, 122, 185, 215, 254, 221, 177, 105, 64, 130, 202, 213, 181, 135, 127, 115, 106, 112, 112, 140, 170, 184, 157, 132, 108, 138, 197, 206, 145, 117, 100, 115, 65, 58, 96, 106, 140, 115, 101, 93, 75, 97, 147, 209, 204, 167, 184, 251, 226, 208, 187, 225, 213, 239, 253, 210, 191, 130, 127, 76, 113, 101, 113, 114, 147, 154, 177, 176, 203, 198, 237, 188, 159, 115, 174, 170, 147, 140, 176, 258, 259, 279, 244, 246, 176, 198, 169, 173, 106, 96, 106, 148, 131, 163, 191, 191, 207, 180, 211, 186, 175, 162, 163, 180, 210, 194, 175, 159, 162, 175, 189, 197, 210, 205, 213, 183, 190, 191, 219, 206, 213, 219, 206, 184, 171, 196, 212, 194, 167, 147, 147, 154, 181, 201, 227, 204, 202, 196, 198, 173, 142, 163, 183, 216, 223, 210, 197, 176, 188, 184, 182, 191, 206, 199, 177, 160, 162, 158, 168, 181, 211, 212, 207, 210, 191, 198, 150, 147, 118, 152, 187, 190, 206, 207, 227, 163, 132, 92, 161, 152, 230, 163, 190, 184, 222, 176, 139, 151, 192, 227, 255, 254, 193, 163, 127, 131, 148, 145, 198, 188, 228, 226, 193, 222, 186, 208, 150, 179, 217, 204, 137, 91, 132, 179, 153, 127, 103, 110, 148, 197, 242, 241, 196, 219, 217, 217, 192, 210, 256, 192, 114, 42, 96, 174, 215, 245, 168, 125, 70, 68, 142, 154, 171, 141, 140, 139, 98, 125, 196, 268, 225, 199, 164, 149, 112, 142, 133, 168, 122, 165, 144, 190, 171, 211, 221, 222, 150, 135, 151, 228, 174, 151, 140, 129, 146, 139, 223, 253, 270, 266, 256, 236, 169, 165, 122, 110, 90, 141, 217, 223, 229, 220, 228, 157, 98, 145, 155, 180, 147, 180, 188, 167, 172, 168, 203, 198, 214, 178, 168, 157, 168, 185, 189, 180, 159, 158, 169, 155, 165, 159, 206, 190, 212, 163, 170, 140, 160, 144, 153, 157, 181, 163, 178, 165, 202, 189, 185, 168, 181, 180, 193, 177, 174, 131, 109, 103, 139, 147, 141, 123, 156, 158, 161, 142, 168, 173, 185, 171, 177, 168, 183, 179, 181, 175, 187, 191, 195, 187, 173, 172, 161, 164, 156, 141, 163, 169, 194, 195, 232, 208, 226, 216, 278, 202, 168, 141, 161, 187, 153, 216, 208, 259, 205, 213, 171, 211, 146, 199, 135, 182, 165, 190, 171, 168, 202, 216, 235, 216, 249, 188, 180, 190, 213, 186, 123, 142, 220, 248, 235, 169, 154, 144, 120, 155, 135, 214, 227, 269, 206, 131, 124, 120, 117, 142, 130, 148, 67, 97, 161, 194, 168, 164, 152, 222, 161, 139, 70, 50, 91, 149, 210, 246, 244, 202, 186, 196, 177, 157, 157, 241, 258, 233, 219, 190, 174, 115, 85, 79, 129, 185, 188, 145, 133, 182, 163, 147, 106, 148, 148, 119, 164, 187, 186, 175, 148, 226, 221, 283, 257, 193, 142, 110, 141, 190, 222, 229, 200, 207, 180, 168, 149, 179, 176, 170, 175, 182, 185, 181, 183, 191, 189, 178, 194, 207, 202, 178, 156, 168, 151, 179, 160, 201, 183, 195, 179, 172, 184, 185, 178, 172, 168, 195, 191, 185, 185, 197, 197, 185, 174, 185, 191, 211, 179, 174, 157, 185, 198, 172, 172, 132, 145, 147, 173, 195, 181, 183, 178, 191, 187, 194, 192, 199, 184, 178, 163, 168, 173, 171, 166, 152, 178, 177, 182, 151, 183, 193, 212, 211, 229, 250, 182, 145, 161, 191, 204, 131, 180, 132, 141, 128, 166, 155, 151, 200, 215, 172, 103, 100, 108, 170, 151, 153, 80, 101, 149, 223, 246, 244, 215, 237, 215, 227, 187, 170, 106, 115, 130, 192, 238, 236, 262, 212, 229, 220, 243, 206, 129, 112, 164, 235, 229, 183, 132, 162, 155, 171, 182, 237, 249, 177, 100, 48, 101, 135, 184, 210, 256, 225, 178, 120, 169, 169, 220, 241, 217, 193, 108, 169, 180, 227, 169, 110, 145, 163, 217, 157, 200, 145, 138, 99, 162, 197, 219, 241, 240, 236, 183, 139, 139, 105, 138, 94, 110, 69, 89, 131, 203, 193, 196, 208, 214, 226, 197, 227, 185, 220, 214, 237, 161, 126, 104, 103, 173, 161, 234, 224, 225, 178, 109, 132, 113, 118, 113, 148, 195, 168, 141, 159, 159, 152, 155, 201, 216, 213, 210, 224, 166, 136, 99, 96, 77, 136, 146, 201, 216, 209, 223, 176, 218, 213, 263, 208, 199, 193, 269, 240, 167, 127, 125, 204, 205, 256, 205, 239, 218, 223, 217, 165, 141, 72, 92, 129, 142, 180, 168, 178, 109, 83, 77, 98, 128, 125, 132, 116, 184, 188, 247, 170, 136, 106, 104, 109, 100, 136, 215, 235, 211, 156, 89, 126, 97, 103, 138, 166, 225, 202, 200, 144, 96, 108, 107, 149, 171, 204, 226, 238, 267, 257, 221, 176, 151, 189, 223, 200, 126, 146, 211, 285, 200, 165, 159, 204, 231, 230, 247, 202, 212, 165, 153, 131, 188, 259, 217, 163, 120, 146, 207, 242, 304, 318, 301, 236, 165, 121, 114, 135, 168, 218, 279, 284, 238, 151, 124, 162, 232, 246, 273, 240, 252, 166, 168, 141, 211, 234, 304, 258, 232, 167, 181, 163, 160, 145, 168, 203, 235, 268, 219, 189, 148, 200, 249, 260, 283, 230, 195, 199, 227, 293, 214, 226, 155, 180, 192, 211, 267, 244, 232, 182, 179, 171, 211, 168, 172, 104, 137, 188, 235, 264, 243, 270, 277, 282, 204, 191, 237, 319, 289, 277, 206, 249, 181, 216, 220, 242, 259, 237, 262, 283, 285, 304, 234, 221, 192, 264, 308, 270, 259, 236, 236, 165, 113, 138, 137, 129, 169, 238, 271, 262, 213, 199, 134, 195, 207, 211, 146, 192, 228, 256, 264, 248, 248, 210, 259, 276, 234, 210, 164, 220, 180, 245, 201, 202, 151, 184, 202, 250, 228, 267, 203, 207, 219, 235, 246, 254, 243, 281, 250, 244, 213, 188, 181, 201, 253, 293, 308, 252, 209, 162, 138, 157, 116, 141, 173, 189, 193, 202, 245, 284, 281, 262, 192, 171, 131, 150, 179, 220, 210, 143, 156, 238, 315, 279, 270, 260, 306, 279, 267, 287, 275, 214, 149, 147] diff --git a/poweranalysis_part_1/sol.py b/poweranalysis_part_1/sol.py new file mode 100755 index 0000000..62acee1 --- /dev/null +++ b/poweranalysis_part_1/sol.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 +from pwn import * +import matplotlib.pyplot as plt + +address = "saturn.picoctf.net" +port = 63821 + +def fetch_data(message): + conn = remote(address, port, level="warn") + conn.recvuntil(b"hex: ") + conn.sendline(message) + conn.recvuntil(b"[") + list_string = conn.recvuntil(b"]", drop=True) + conn.close() + return [int(s.strip()) for s in list_string.split(b',')] + +data_array = [] +P = log.progress("fetching timing data") +for i in range(16): + P.status(f"{i+1}/16") + data_array.append(fetch_data(b"00112233445566778899aabbccddeeff")) +P.success("16/16 all data fetched") + +data = [0]*len(data_array[0]) +for i in range(len(data_array)): + slice = data_array[i] + for j, n in enumerate(slice): + data[j] += n + +plt.plot(data) +plt.show() +