Method and apparatus for secure transmission of data
AssigneeGeneral Instrument Corporation
InventorEric J. Sprunk
Life of this patent
Estimating the term…
Abstract
An apparatus and method are utilized for transmitting data across an interface between a sender and a receiver. The sender and receiver can be provided with a shared key, a receiver—key and a sender—key. A payload message can be combined with the keys to generate a unique message for transmission across the interface. The payload message can be authenticated utilizing the same input and the same algorithm on the receiving end of the transmission. The resulting confirmatory payload message can be utilized with the authenticating payload message to authenticate the payload message.
Claims40
A method for transmitting data across an interface between a sender and a receiver, comprising:
- providing said sender with a shared key;
- providing said receiver with said shared key;
- providing said receiver with a receiver—key by generating a nonce for said receiver—key at said receiver;
- conveying said receiver—key to said sender;
- providing said sender with a sender—key by generating a nonce for said sender—key at said sender;
- conveying said sender—key to said receiver;
- providing a payload message;
- generating an authenticating payload message utilizing at least said shared key, said receiver—key and said sender—key;
- generating a confirmatory authenticating payload message;
- utilizing said authenticating payload message and said confirmatory payload message to authenticate said payload message.
An apparatus for transmitting data across an interface between a sender and a receiver, comprising:
- code operable to provide said sender with a shared key;
- code operable to provide said receiver with said shared key;
- code operable to provide said receiver with a receiver—key, wherein said receiver—key is a nonce generated at said receiver;
- code operable to convey said receiver—key to said sender;
- code operable to provide said sender with a sender—key, wherein said sender—key is a nonce generated at said sender;
- code operable to convey said sender—key to said receiver;
- code operable to provide a payload message;
- code operable to generate an authenticating payload message utilizing at least said shared key, said receiver—key and said sender—key;
- code operable to generate a confirmatory authenticating payload message;
- code operable to utilize said authenticating payload message and said confirmatory authenticating payload message to authenticate said payload message.
A method for transmitting data between a sender and a receiver, comprising:
- providing said sender with a shared key;
- providing said receiver with said shared key;
- generating a receiver—nonce for said receiver at said receiver;
- generating a transaction identifier for identifying a transaction between said receiver and said sender;
- transmitting said receiver—nonce and said transaction identifier from said receiver to said sender;
- generating a sender—nonce for said sender at said sender;
- transmitting said sender—nonce and said transaction identifier from said sender to said receiver;
- forming a payload message;
- forming an authenticating message utilizing at least said shared key, said sender—nonce, said receiver—nonce and said transaction identifier;
- transmitting said payload message, said authenticating message, and said transaction identifier from said sender to said receiver;
- utilizing said authenticating message to authenticate said payload message.
An apparatus for transmitting data between a sender and a receiver, comprising:
- code operable to provide said sender with a shared key;
- code operable to provide said receiver with said shared key;
- code operable to generate a receiver—nonce for said receiver at said receiver;
- code operable to generate a transaction identifier for identifying a transaction between said receiver and said sender;
- code operable to transmit said receiver—nonce and said transaction identifier from said receiver to said sender;
- code operable to generate a sender—nonce for said sender at said sender;
- code operable to transmit said sender—nonce and said transaction identifier from said sender to said receiver;
- code operable to form a payload message;
- code operable to form an authenticating message utilizing at least said shared key, said sender nonce, said receiver—nonce and said transaction identifier;
- code operable to transmit said payload message, said authenticating message, and said transaction identifier from said sender to said receiver;
- code operable to utilize said authenticating message to authenticate said payload message.
A method for securely transmitting data across an interface between a sender and a receiver, comprising:
- providing said sender with a secret key;
- providing said receiver with said secret key;
- generating a receiver—random—number—nonce at said receiver;
- storing said receiver—random—number—nonce at said receiver;
- generating at said receiver a transaction identifier for identifying an authentication transaction;
- storing said transaction identifier at said receiver;
- transmitting said receiver—random—number—nonce and said transaction identifier from said receiver to said sender;
- storing said receiver—random—number—nonce at said sender;
- storing said transaction identifier at said sender;
- generating a sender—random—number—nonce at said sender;
- storing said sender—random—number—nonce at said sender;
- transmitting said sender—random—number—nonce and said transaction identifier from said sender to said receiver;
- storing said sender—random—number—nonce at said receiver;
- forming a payload message at said sender;
- forming at said sender an authenticating message utilizing said payload message, said secret key, said sender—random—number—nonce, said;
- receiver—random—number—nonce and said transaction identifier;
- transmitting said payload message, said authenticating message, and said transaction identifier from said sender to said receiver;
- storing said payload message at said receiver;
- storing said authenticating message at said receiver;
- confirming that the value of the transaction identifier is equivalent to the value of the transaction identifier transmitted previously;
- forming at said receiver a confirmatory authenticating payload message utilizing said payload message, said secret key, said sender—random—number—nonce, said receiver—random—number—nonce and said transaction identifier;
- comparing said confirmatory authenticating payload message with said authenticating message;
- determining that said payload message is authentic based on said confirmatory authenticating payload message being equivalent to said authenticating message;
- and
- utilizing said payload message.
A system for securely transmitting data across an interface between a sender and a receiver, comprising:
- a sender storing a secret key;
- a receiver storing said secret key;
- code for generating a receiver—random—number—nonce at said receiver;
- a first memory coupled to said receiver for storing said receiver—random—number—nonce and for storing said transaction identifier;
- code for generating at said receiver a transaction identifier for identifying said receiver—random—number—nonce;
- code for transmitting said receiver—random—number—nonce and said transaction identifier from said receiver to said sender;
- a second memory coupled to said sender for storing said receiver—random—number—nonce and said transaction identifier;
- code for generating a sender—random—number—nonce at said sender;
- wherein said memory coupled to said sender is operable to store said sender—random—number—nonce;
- code for transmitting said sender—random—number—nonce and said transaction identifier from said sender to said receiver;
- wherein said first memory is operable to store said sender—random—number—nonce;
- code for forming a payload message at said sender;
- code for forming at said sender an authenticating message utilizing said payload message, said secret key, said sender—random—number—nonce, said receiver—random—number—nonce and said transaction identifier;
- code for transmitting said payload message, said authenticating message, and said transaction identifier from said sender to said receiver;
- wherein said first memory is operable to store said payload message and said authenticating message;
- code for confirming that the value of the transaction identifier is equivalent to the value of the transaction identifier transmitted previously;
- code for forming at said receiver a confirmatory authenticating payload message utilizing said payload message, said secret key, said sender—random—number—nonce, said receiver—random—number—nonce and said transaction identifier;
- code for comparing said confirmatory authenticating payload message with said authenticating message;
- and
- code for determining that said payload message is authentic based on said confirmatory authenticating payload message being equivalent to said authenticating message.
Dependencies are inferred from the claim text.