A method for generating an encryption/decryption key, which is useable for safe communication between a first node and a second node, wherein the generated key is only valid for one communication session between the first node and the second node and as long as the communication session is active, said method comprising the steps of: sending a request from the first node to a central server for setting up safe communication with the second node, sending from the central server a first key generating file to the first node and a second key generating file to the second node in response to the request from the first node, start processing the first key generating file on the first node and the second key generating file on the second node, generating a first intermediate data set at the first node and a second intermediate data set at the second node, sending the first intermediate data set from the first node to the second node, comparing bits of the first intermediate data set with corresponding bits of the second intermediate data set, creating a new third intermediate data set based on the bit by bit comparison between the first and second intermediate data set by setting a first value if the compared bits are equal and a second value if the compared bits are unequal, sending the third intermediate data set from the second node to the first node, comparing bits of the third intermediate data set with the corresponding bits of the first intermediate data set, generating a first cryptographic key based on the bit by bit comparison between the third and the first intermediate data set by keeping the value of the bit of the first intermediate data set if the corresponding bit of the third intermediate data set is set to the first value and ignoring the bit of the first intermediate data set if the corresponding bit of the third intermediate data set is set to the second value, generating a second cryptographic key based on the bit by bit comparison between the first and the second intermediate data set by keeping the value of the bit of the second intermediate data set if the corresponding bit of the first intermediate data set is equal and ignoring the bit of the second intermediate data set if the compared bits are unequal, said first and second cryptographic key being the same. sending a request from the first node to a central server for setting up safe communication with the second node, sending from the central server a first key generating file to the first node and a second key generating file to the second node in response to the request from the first node, start processing the first key generating file on the first node and the second key generating file on the second node, generating a first intermediate data set at the first node and a second intermediate data set at the second node, sending the first intermediate data set from the first node to the second node, comparing bits of the first intermediate data set with corresponding bits of the second intermediate data set, creating a new third intermediate data set based on the bit by bit comparison between the first and second intermediate data set by setting a first value if the compared bits are equal and a second value if the compared bits are unequal, sending the third intermediate data set from the second node to the first node, comparing bits of the third intermediate data set with the corresponding bits of the first intermediate data set, generating a first cryptographic key based on the bit by bit comparison between the third and the first intermediate data set by keeping the value of the bit of the first intermediate data set if the corresponding bit of the third intermediate data set is set to the first value and ignoring the bit of the first intermediate data set if the corresponding bit of the third intermediate data set is set to the second value, generating a second cryptographic key based on the bit by bit comparison between the first and the second intermediate data set by keeping the value of the bit of the second intermediate data set if the corresponding bit of the first intermediate data set is equal and ignoring the bit of the second intermediate data set if the compared bits are unequal, said first and second cryptographic key being the same.