A computing device for attesting a communication partner, comprising: a communication port; and a processor configured to: determine a round-trip time for communication between the computing device and the communication partner; obtain a nonce; based on the round-trip time, select at least one computation parameter for a predefined function that outputs a verification value; determine a time threshold based on the round-trip time and the predefined function; generate an attestation request including the nonce and the at least one computation parameter; send the attestation request to the communication partner via the communication port; receive a verification value from the communication partner, wherein the verification value is generated on the communication partner using the predefined function after the communication partner receives the attestation request; determine whether the verification value is received within time threshold; determine whether the verification value is equal to an expected value; and determine that the communication partner is a trusted device if the received value is received within the time threshold and the received value is equal to the expected value. a communication port; and a processor configured to: determine a round-trip time for communication between the computing device and the communication partner; obtain a nonce; based on the round-trip time, select at least one computation parameter for a predefined function that outputs a verification value; determine a time threshold based on the round-trip time and the predefined function; generate an attestation request including the nonce and the at least one computation parameter; send the attestation request to the communication partner via the communication port; receive a verification value from the communication partner, wherein the verification value is generated on the communication partner using the predefined function after the communication partner receives the attestation request; determine whether the verification value is received within time threshold; determine whether the verification value is equal to an expected value; and determine that the communication partner is a trusted device if the received value is received within the time threshold and the received value is equal to the expected value. determine a round-trip time for communication between the computing device and the communication partner; obtain a nonce; based on the round-trip time, select at least one computation parameter for a predefined function that outputs a verification value; determine a time threshold based on the round-trip time and the predefined function; generate an attestation request including the nonce and the at least one computation parameter; send the attestation request to the communication partner via the communication port; receive a verification value from the communication partner, wherein the verification value is generated on the communication partner using the predefined function after the communication partner receives the attestation request; determine whether the verification value is received within time threshold; determine whether the verification value is equal to an expected value; and determine that the communication partner is a trusted device if the received value is received within the time threshold and the received value is equal to the expected value.