A first computing device adapted to perform a method of authenticating communication with a second computing device, using a function of combined information obtained from the second computing device, the first computing device programmed to: in response to receiving a commitment message from the second computing device, the commitment message containing content based on at least a first part of the combined information, and receiving, either through a commitment message or a separate message, the first part of the combined information with a delay mechanism that only allows the first computing device to determine the first part of the information after a predetermined time; and also receiving a subsequent message comprising the first part of the information from the second computing device to the first computing device once the second computing device has received notification that the first computing device has received the message, which receipt commits the first computing device to the first function value; determining whether the subsequent message was received before the predetermined time, and in response to the subsequent message being received before the predetermined time, performing the steps of: compiling the combined information by combining the first part of the information in the subsequent message, with the remainder of the combined information at least part of which has been received from the second computing device, calculating the function of the combined information, thereby to enable comparison of the calculated function value with a value calculated by the second computing device, using an empirical channel, and in response to the subsequent message not being received before the predetermined time: aborting the authentication, determining the first part of the combined information in accordance with the delay mechanism, compiling the combined information using the determined first part of the information, and calculating the function value. in response to receiving a commitment message from the second computing device, the commitment message containing content based on at least a first part of the combined information, and receiving, either through a commitment message or a separate message, the first part of the combined information with a delay mechanism that only allows the first computing device to determine the first part of the information after a predetermined time; and also receiving a subsequent message comprising the first part of the information from the second computing device to the first computing device once the second computing device has received notification that the first computing device has received the message, which receipt commits the first computing device to the first function value; determining whether the subsequent message was received before the predetermined time, and in response to the subsequent message being received before the predetermined time, performing the steps of: compiling the combined information by combining the first part of the information in the subsequent message, with the remainder of the combined information at least part of which has been received from the second computing device, calculating the function of the combined information, thereby to enable comparison of the calculated function value with a value calculated by the second computing device, using an empirical channel, and compiling the combined information by combining the first part of the information in the subsequent message, with the remainder of the combined information at least part of which has been received from the second computing device, calculating the function of the combined information, thereby to enable comparison of the calculated function value with a value calculated by the second computing device, using an empirical channel, and in response to the subsequent message not being received before the predetermined time: aborting the authentication, determining the first part of the combined information in accordance with the delay mechanism, compiling the combined information using the determined first part of the information, and calculating the function value.