What is NNSP?

NNSP is an abbreviation of 'Neural Network Synchronization Protocol' which is secured application-level protocol upon TCP/IP. Client's and server's neural networks are synchronized (have identical synaptic weights) by learning and exchanging public outputs of their networks. When synchronization is successfully done, weights of networks are used for secret key derivation. That key is then used for encryption/decryption of subsequent communication.
Client and server are active participants in synchronizing stage and that leads to synchronization of their neural networks. Consider third participant (attacker) who wants also to synchronize and derive secret key to decrypt communication between server and client. However, he is not able to do that because of passive participation (just listening), i.e. NNSP solves classic cryptographic problem.
Usage of NNSP

Source code of NNSP is written in C language and it allows to build-up your client-server applications in very easy way. Developer of application does not need to implement any TCP/IP algorithms or socket operations. All he needs is only to process incoming message, to construct outgoing message and to send it by using NNSP functions.
Server is implemented in multithreaded way because of simplicity and of need to store neural network and other information for each connected client, i.e. for each client different secret key is constructed and used.
Team is looking for...

Security specialist
Security specialist will be responsible for design and analysis of security issue and improvements of NNSP.

C/C++ developer
Main developer's task is to maintain source code and to implement new features of NNSP designed by security and neural networks specialists.
Licence

Neural Network Synchronization Protocol by Jiri Giesl and Radim Pisan is licensed under a Creative Commons Attribution 3.0 Unported License.