Skip to content

Configuration file (JSON)

Karel Kubicek edited this page Jun 1, 2017 · 9 revisions

Exemplary config file:

{
    "notes" : "./block/AES_r03",
    "seed" : null,

    "num-of-epochs" : 300,
    "significance-level" : 1,
    "tv-size" : 16,
    "tv-count" : 1000,
    "stream-a" : {
        "type" : "block",
        "generator" : "pcg32",
        "init-frequency" : "only-once",
        "algorithm" : "AES",
        "round" : 3,
        "block-size" : 16,
        "plaintext" : {
            "type" : "counter"
        },
        "key-size" : 16,
        "key" : {
            "type" : "pcg32-stream"
        },
        "mode" : "ECB",
        "iv" : {
            "type" : "false-stream"
        }
    },

    "stream-b" : {
        "type" : "pcg32-stream"
    },

    "backend" : {
        "type" : "circuit",
        "solver" : "global-search",

        "function-set" : [ "NOP", "CONS", "NOT",
                           "AND", "NAND", "OR", "XOR", "NOR",
                           "SHIL", "SHIR", "ROTL", "ROTR",
                           "MASK" ],
        "num-of-generations": 100,

        "initializer" : {
            "type" : "basic-initializer"
        },
        "mutator" : {
            "type" : "basic-mutator",
            "changes-of-functions" : 2,
            "changes-of-arguments" : 2,
            "changes-of-connectors" : 3
        },
        "evaluator" : {
            "type" : "categories-evaluator",
            "num-of-categories" : 8
        }
    }
 }

Stream-specific settings are added separate subtrees linked to the root element. Their structure is described in stream documentation.

  • notes developer notes (only descriptive)

  • seed hexadecimal string value of seed to use. EACirc have to be seeded with 64-bits values, i.e. "1fe40505e131963c"
    seed value can be null for random seed computations (common settings, if you do not need experiment reproduction)

  • num-of-epochs number of epochs (iterations with same learning dataset)

  • significance-level critical value alpha for KS test in the end of computation

  • tv-size number of test vectors in a test set (per set)

  • stream-a

  • stream-b
    JSON subtree with specification of stream for test vectors generation
    see Streams for data generation documentation

  • backend JSON subtree with backend specification

    • type which backend representation will be used, currently supported only circuit backed
    • solver name of the metaheuristic for optimisation in EACirc
    • function-set JSON array with list of binary functions used in circuit. See available list of functions
    • num-of-generations number on generations per epoch
    • initializer
    • mutator
    • evaluator JSON subtree with evaluator setup
Clone this wiki locally