资源算法AdversarialCrypto

AdversarialCrypto

2019-09-10 | |  67 |   0 |   0

Learning to Protect Communications with Adversarial Neural Cryptography

This is a slightly-updated model used for the paper "Learning to Protect Communications with Adversarial Neural Cryptography".

We ask whether neural networks can learn to use secret keys to protect information from other neural networks. Specifically, we focus on ensuring confidentiality properties in a multiagent system, and we specify those properties in terms of an adversary. Thus, a system may consist of neural networks named Alice and Bob, and we aim to limit what a third neural network named Eve learns from eavesdropping on the communication between Alice and Bob. We do not prescribe specific cryptographic algorithms to these neural networks; instead, we train end-to-end, adversarially. We demonstrate that the neural networks can learn how to perform forms of encryption and decryption, and also how to apply these operations selectively in order to meet confidentiality goals.

This code allows you to train encoder/decoder/adversary network triplets and evaluate their effectiveness on randomly generated input and key pairs.

Prerequisites

The only software requirements for running the encoder and decoder is having TensorFlow installed.

Requires TensorFlow r0.12 or later.

Training and evaluating

After installing TensorFlow and ensuring that your paths are configured appropriately:

python train_eval.py

This will begin training a fresh model. If and when the model becomes sufficiently well-trained, it will reset the Eve model multiple times and retrain it from scratch, outputting the accuracy thus obtained in each run.

Model differences from the paper

The model has been simplified slightly from the one described in the paper - the convolutional layer width was reduced by a factor of two. In the version in the paper, there was a nonlinear unit after the fully-connected layer; that nonlinear has been removed here. These changes improve the robustness of training. The initializer for the convolution layers has switched to the tf.contrib.layers default of xavier_initializer instead of a simpler truncated_normal.

Contact information

This model repository is maintained by David G. Andersen (dave-andersen).


上一篇:Hierarchical Question-Imagee Co-Attention

下一篇:AttentionOCR

用户评价
全部评价

热门资源

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • inferno-boilerplate

    This is a very basic boilerplate example for pe...