Patent Description:
Anonymity authentication is a process of confirming a right to access one or more data or to perform one or more services. Normally, an authentication requires user credentials such as a username and a password, where the anonymity authentication confirms rights to access the one or more data or to perform the one or more services without exposing their actual identity of the user. The anonymity of communication parties needs to remain hidden in a successful protocol for privacy protection requirements of authentication and message exchange scenarios. Further, the protocol has to protect user privacy including access to sensitive web-service, an investment web-service, personal financial information uploaded to a cloud server, a device's location information uploaded to the cloud server.

<FIG> illustrates a block diagram that illustrates authentication of one or more parties 104A-N according to the prior art. The block diagram includes a cloud <NUM> and the one or more parties 104A-N that are communicatively connected to the cloud <NUM>. Each of the one or more parties 104A-N includes a secret key and a public key. The one or more parties 104A-N enables a secure channel establishment process with any of a Transport Layer Security, TLS, an Internet Protocol Security, IPSec, an Authenticated Key Exchange, AKE, or an Advanced Configurable Crypto Environment, ACCE, protocol, that enables sending of information with identification information, the public key and the secret key, associated with the one or more parties 104A-N. Even with the secure channel establishment between the one or more parties 104A-N and the cloud <NUM>, there is a chance of leakage of privacy of one or more parties 104A-N, which sending and receiving the information. As the identification information is also sent with the information, attackers may get the message along with the identification information.

Currently, there are several known solutions are available, including the AKE, ACCE protocols, TLS, and IPSec, that provide the authentication, integrity, and confidentiality for exchanging messages, but those solutions expose the identification information (i.e. an identity of the user). The cloud <NUM> may obtain the user's privacy behavior based on the user's identity information and data, resulting in revealing the user's privacy. Another existing solution is a Broadcast Encryption based solution, that enables a sender to encrypt the message directly with all group members public keys and sends ciphertexts to all group members. Only a receiver with a matching private key can decrypt the message, while other receivers fail to decrypt the ciphertexts. The existing solutions disclose the identification information of the one or more parties 104A-N to the attackers, that are in communication. The solutions like TLS <NUM>, a Quick UDP Internet Connection, QUIC, IPsec Internet Key Exchange, IKE and Secure Shell, SSH protects the messages in the protocol including identity-related data such as identities, public keys, or digital signatures, that may also reveal the user's privacy. The document <NPL>, describes an anonymous secure routing protocol (ASRPAKE) for mobile ad hoc networks (MANETs) focused on maintaining security and anonymity through authenticated key exchange mechanisms embedded within the routing algorithm. The document <NPL>, describes a novel anonymous authenticated key agreement protocol designed for vehicular ad hoc networks (VANETs), leveraging the combination of Elliptic Curve Integrated Encryption Scheme (ECIES) with ring signatures.

Therefore, the present invention aims to improve the security and privacy protection of existing systems or technologies in anonymity authentication and message exchange.

It is an object of the disclosure to provide a method of sending an encrypted message from a client device to a server, and a method of receiving the encrypted message from the client device by the server with improved security on anonymity authentication and message exchange, and privacy protection while avoiding one or more disadvantages of prior art approaches. A client device, a server, and a computer program are also provided.

This object is achieved by the features of the independent claims. Further implementations are apparent from the dependent claims, the description, and the figures.

The disclosure provides a method of sending an encrypted message from a client device to a server and a method of receiving the encrypted message from the client device by the server. According to a first aspect, there is provided a method of sending an encrypted message from a client device to a server. The method includes selecting a subgroup of neighbouring devices by the client device. The method includes computing, by the client device, a ring signature based on a secret key of the client device, a hash value generated by the client device, and a public key of each neighbouring device. The method includes calculating a session key based on a concatenation of a public server key and the generated hash value by the client device. The method includes encrypting a message using the session key and sending the encrypted message to the server with the generated hash value and the ring signature.

This method uses a passive key exchange and the ring signature that builds a privacy-preserving authenticated key agreement solution during this entire process. The method enables the one or more parties including the client device to establish a secure communication channel for secure message exchange, thereby providing anonymity authentication and secure message exchange for communication partners. The method provides secure communication with message authentication, integrity, and confidentiality. The method provides privacy protection and does not disclose any identification information of the one or more parties that are in communication, e.g. party ID, Domain Name, and the like. The method improves security on anonymity authentication and message exchange. The method provides better compatibility and a friendly integration environment.

The one or more parties may add the identification information and a public key for any type of message, and send it to any client device in the one or more parties through the server, thereby providing a privacy-preserving authentication and secure data exchange. The method shows the message as an anonymous ID and the public key belonging to the one or more parties. The method does not involve any trusted third party in the one or more parties. The method does not require any knowledge, consent, or assistance of other parties to build a subgroup. The method does not include any pre-defined group, a manager, a group public key, a setup for registration or revocation procedures.

The method includes security properties of an authentication for the client device and the server, a secure channel establishment, data upload or data download confidentiality and integrity, and anonymity of the client device. The method provides high performance in securing the channel establishment in the client device and the server.

Optionally, the client device and each neighbouring device receive the public key from the server.

Optionally, the hash value is generated from a random number using a hash function.

Optionally, the ring signature is based on a concatenation of the secret key of the client device, the hash value generated by the client device, and the public key of each neighbouring device.

Optionally, the session key is calculated using a key derivation function including a pseudorandom function.

Optionally, the method includes encrypting the message includes using an authenticate encryption with associated data.

According to a second aspect, there is provided a method of receiving an encrypted message from a client device by a server. The method includes receiving, by the server, an encrypted message from a client device, the encrypted message including a hash value generated by the client device and a ring signature based on a secret key of the client device, the hash value generated by the client device, and a public key of each neighbouring device in a subgroup of neighbouring devices selected by the client device. The method includes verifying, by the server, the ring signature using the public key of each neighbouring device in the subgroup. The method includes calculating, by the server, a session key based on a concatenation of a public server key and the generated hash key value received from the client device.

This method uses a passive key exchange and the ring signature that builds a privacy-preserving authenticated key agreement solution during this entire process. The method enables the one or more parties including the client device to establish a secure communication channel for secure message exchange, thereby providing anonymity authentication and secure message exchange for communication partners. The method provides secure communication with message authentication, integrity and confidentiality. The method provides privacy protection and does not disclose any identification information of the one or more parties that are in communication, e.g. party ID, Domain Name, and the like. The method improves security on anonymity authentication and message exchange. The method provides better compatibility and a friendly integration environment.

The one or more parties may add the identification information and a public key for any type of message, and send it to any client device in the one or more parties through the server, thereby providing a privacy preserving authentication and secure data exchange. The method shows the message as an anonymous ID and the public key belonging to the one or more parties. The method does not involve any trusted third party in the one or more parties. The method does not require any knowledge, consent, or assistance of other parties to build a subgroup. The method does not include any pre-defined group, a manager, a group public key, a setup for registration or revocation procedures.

The method includes security properties of an authentication for the client device and the server, a secure channel establishment, data upload or data download confidentiality and integrity, an anonymity of the client device. The method provides high performance in securing the channel establishment in the client device and the server.

Optionally, the public key of the client device and each neighbouring device are sent by the server.

According to a third aspect, there is provided a client device. The client device is configured to: select a subgroup of neighbouring devices; compute a ring signature based on a secret key of the client device, a hash value generated by the client device, and a public key of each neighbouring device; calculate a session key based on a concatenation of a public server key and the generated hash value; and encrypt a message using the session key and send the encrypted message to the server with the generated hash value and the ring signature.

According to a fourth aspect, there is provided a server. The server is configured to: receive the encrypted message from the client device, the encrypted message including a hash value generated by the client device and a ring signature based on a secret key of the client device, the hash value generated by the client device, and a public key of each neighbouring device in a subgroup of neighbouring devices selected by the client device; verify the ring signature using the public key of each neighbouring device in the subgroup; and calculate a session key based on a concatenation of a public server key and the generated hash value received from the client device.

According to a fifth aspect, there is provided a computer program. The computer program comprises instructions which, when the program is executed by a processor, cause the processor to carry out the method according to the first aspect or the second aspect.

Therefore, in contradistinction to the prior art, according to the methods, establish a secure communication channel for secure message exchange, and provide anonymity authentication and secure message exchange between the one or more parties. The method improves security on the anonymity authentication and message exchange and provides privacy protection with better compatibility and a friendly integration environment.

These and other aspects of the disclosure will be apparent from the implementations described below.

Implementations of the disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which:.

Implementations of the disclosure provide a method of sending an encrypted message from a client device to a server, and a method of receiving the encrypted message from the client device by the server, with improved security on anonymity authentication and message exchange, and privacy protection.

To make solutions of the disclosure more comprehensible for a person skilled in the art, the following implementations of the disclosure are described with reference to the accompanying drawings.

Terms such as "a first", "a second", "a third", and "a fourth" (if any) in the summary, claims, and foregoing accompanying drawings of the disclosure are used to distinguish between similar objects and are not necessarily used to describe a specific sequence or order. It should be understood that the terms so used are interchangeable under appropriate circumstances, so that the implementations of the disclosure described herein are, for example, capable of being implemented in sequences other than the sequences illustrated or described herein. Furthermore, the terms "include" and "have" and any variations thereof, are intended to cover a non-exclusive inclusion. For example, a process, a method, a system, a product, or a device that includes a series of steps or units, is not necessarily limited to expressly listed steps or units but may include other steps or units that are not expressly listed or that are inherent to such process, method, product, or device.

<FIG> is a block diagram <NUM> that illustrates sending an encrypted message from a client device <NUM> to a server <NUM> and receiving an encrypted message from the client device <NUM>by the server <NUM> in accordance with an implementation of the disclosure. The block diagram <NUM> includes the client device <NUM>, the server <NUM>, and one or more subgroup of neighbouring devices 206AN. The client device <NUM> selects a subgroup of neighbouring devices to send the encrypted message to the server <NUM>. The subgroup of neighbouring devices may be at least one of the one or more neighbouring devices 206A-N. The client device <NUM> computes a ring signature based on a secret key of the client device <NUM>, a hash value generated by the client device <NUM>, and a public key of each neighbouring device of the selected subgroup of the neighbouring devices. The client device <NUM> calculates a session key based on a concatenation of a public server key and the hash value generated by the client device <NUM>. The client device <NUM> encrypts a message using the session key and sends the encrypted message to the server <NUM> with the generated hash value and the ring signature.

Optionally, the client device <NUM> and each neighbouring device receive the public key from the server.

Optionally, the ring signature is based on a concatenation of the secret key of the client device <NUM>, the hash value generated by the client device <NUM>, and the public key of each neighbouring device.

Optionally, the client device <NUM> encrypts the message using an authenticate encryption with associated data.

The server <NUM> receives the encrypted message from the client device <NUM>. The server <NUM> verifies the ring signature using the public key of each subgroup of the neighbouring devices. The server <NUM> calculates the session key based on the concatenation of the public key server and the generated hash value received from the client device <NUM>. The server <NUM> sends the encrypted message along with the session key to the selected subgroup of the neighbouring devices. The client device <NUM> decrypts the encrypted message using the session key.

Optionally, the public key of the client device <NUM> and each neighbouring device are sent by the server.

Optionally, the server <NUM> encrypts the message using an authenticate encryption with associated data.

The client device <NUM> uses a passive key exchange and the ring signature that builds a privacy-preserving authenticated key agreement solution during this entire process. The server <NUM> enables the one or more neighbouring devices 206A-N including the client device <NUM> to establish a secure communication channel for secure message exchange, thereby providing anonymity authentication and secure message exchange for communication partners. The server <NUM> provides secure communication with message authentication, integrity, and confidentiality. The server <NUM> provides privacy protection and does not disclose any identification information of the one or more neighbouring devices 206A-N that are in communication, e.g. party ID, Domain Name, and the like. The server <NUM> improves security on anonymity authentication and message exchange. The server <NUM> provides better compatibility and a friendly integration environment.

The one or more neighbouring devices 206A-N may add the identification information and a public key for any type of message, and send it to any client device in the one or more neighbouring devices 206A-N through the server <NUM>, thereby providing a privacy preserving authentication and secure data exchange. The server <NUM> shows the message as an anonymous ID and the public key belonging to the one or more neighbouring devices 206A-N. The server <NUM> does not involve any trusted third party in the one or more neighbouring devices 206A-N. The server <NUM> does not require any knowledge, consent, or assistance of other neighbouring devices to build a subgroup. The server <NUM> does not include any pre-defined group, a manager, a group public key, a setup for registration or revocation procedures.

The server <NUM> includes security properties of an authentication for the client device <NUM> with the server <NUM>, a secure channel establishment, data upload or data download confidentiality and integrity, an anonymity of the client device <NUM>. The server <NUM> provides high performance in securing the channel establishment in the client device <NUM> with the server <NUM>.

<FIG> illustrates a block diagram <NUM> for an anonymity authentication and message exchange in a cloud <NUM> in accordance with an implementation of the disclosure. The block diagram <NUM> includes the cloud <NUM>, and one or more subgroup of neighbouring devices 304A-N. The one or more subgroup of neighbouring devices 304A-N includes a first subgroup of neighbouring devices 304A, and a Nth subgroup of neighbouring devices 304N. The first subgroup 304A includes one or more first parties 306AA-AN, and one or more second parties 306BA-BN. The Nth subgroup 304N includes one or more third parties 306CA-CN, and one or more fourth parties 306DA-DN. Optionally, at least one of any of the one or more first parties 306AA-AN, the one or more second parties 306BA-BN, the one or more third parties 306CA-CN, and the one or more fourth parties 306DA-DN is a client device. Optionally, the cloud <NUM> is a server.

The client device selects a subgroup of the neighbouring devices and may perform a passive key exchange protocol to send an encrypted message to the cloud <NUM>.

The client device computes a ring signature with one or more keys. The one or more keys may include a secret key (sk) and a public key (pk). The one or more subgroup of neighbouring devices 304A-N may obtain the public keys over a public network. The ring signature is a digital signature computed by the client device with the one or more keys. The ring signature may be similar to group signatures. The client device encrypts a message and sends the encrypted message to the cloud <NUM>. The client device may upload the encrypted message to the cloud <NUM> with C = ENC (K, plaintext).

The cloud <NUM> sends the encrypted message to the selected subgroup of the neighbouring devices. Optionally, the selected subgroup of the neighbouring devices includes any of the one or more first parties 306AA-AN, the one or more second parties 306BA-BN, the one or more third parties 306CA-CN, and the one or more fourth parties 306DA-DN.

One or more parties in the selected subgroup of the neighbouring devices decrypt the encrypted message. The selected subgroup of the neighbouring devices may be the Nth subgroup of neighbouring devices 304N with the one or more third parties 306CA-CN and the one or more fourth parties 306DA-DN. Optionally, the one or more third parties 306CA-CN and the one or more fourth parties 306DA-DN in the Nth subgroup of neighbouring devices 304N download the encrypted message from the cloud <NUM> with C = ENC (K, plaintext).

<FIG> is a block diagram <NUM> of a structure for anonymity authentication and message exchange in a server <NUM> in accordance with an implementation of the disclosure. The block diagram <NUM> includes a party <NUM>, a server <NUM>, a key exchange protocol <NUM>, a ring signature component <NUM>, and an authenticated channel <NUM>. The party <NUM> sends a message to the server <NUM> with the key exchange protocol <NUM>. Optionally, the party <NUM> is a client device. The party <NUM> selects a subgroup of neighbouring devices that includes one or more parties. The party <NUM> may include an identification number with one or more keys. The one or more keys include at least one of a secret key, and a public key. The public key may be obtained over a public network. The key exchange protocol <NUM> enables the party <NUM> to perform a passive key exchange. Optionally, the key exchange protocol <NUM> enables the one or more parties in the subgroup of neighbouring devices to perform the passive key exchange.

The party <NUM> executes a ring signature on the message based on the passive key exchange. The party <NUM> may execute the ring signature with the ring signature component <NUM>. Optionally, the ring signature component <NUM> includes any of scheme or algorithms to execute the ring signature. The ring signature component <NUM> may include a Rivest & Shamir & Tauman, RST ring signature scheme. The ring signature enables the party <NUM> to generate one or more keys, sign the message, and verify a signature of the message. The RST ring signature scheme may add only one modular multiplication and one symmetric encryption per ring member to generate and verify the signature. Optionally, the signature is computed by using a long-term key. Optionally, the ring signature component <NUM> encrypts the message by executing the ring signature. The ring signature component <NUM> may encrypt the message with the secret key, which can be used for any of upload or download.

The authenticated channel <NUM> provides a session key for authentication of the server <NUM> and the neighbouring devices in the selected subgroup, and secure communication of the message. Optionally, the authenticated channel <NUM> provides the session key with ENC (K, m). The authenticated channel <NUM> provides an authenticated secure channel with anonymity. The structure for anonymity authentication and message exchange may not leak identification information of the one or more parties, the party <NUM>, and the neighbouring devices in the selected subgroup, during protocol processing i.e. during the passive key exchange. Optionally, a generic structure for anonymity authentication and message exchange includes Passive Key Exchange + Generic Ring Signature Scheme = Authentication and Secure Message communication with Perfect Anonymity.

The key exchange protocol <NUM> sends the encrypted message to the server <NUM> along with the secret key. The server <NUM> decrypts the encrypted message with the secret key. Optionally, the server <NUM> sends the encrypted message to the neighbouring devices in the selected subgroup by the party <NUM>.

Optionally, the ring signature is cryptographic signature algorithm, that provides only the ring signature of identity information i.e. RingSign (ski, X) to active attackers in the public network. The cryptographic signature algorithms may not enable the active attackers to extract the identity information without a negligible probability. The Ringsign() is a secure cryptographic algorithm for Probabilistic Polynomial-Time Turing (PPT), that may not break anonymity property and extract the identity information.

Optionally, the session keys are assured by a cryptographic Key Derivation Function, KDF, Authenticated Encryption with Associated Data, AEAD scheme, passive static Diffie-Hellman, DH key exchange protocol, and cryptographic signature scheme. The passive static DH and KDF assure randomness of the key, and the signature scheme assures the authentication of the message exchange. The active attackers may get only the ciphertext of key-related information as the AEAD, KDF, passive static DH, and signature scheme are cryptographic encryption algorithms and protocols. The active attackers may not extract the plaintext of session keys without the negligible probability. Optionally, the structure includes a reduction algorithm to break the cryptographic algorithms.

<FIG> is a block diagram of one or more parties 504A-N obtaining public information in accordance with an implementation of the disclosure. The block diagram includes the one or more parties 504A-N including a first party 504A, a second party 504B, and a Nth party 504N, and a cloud <NUM>. The one or more parties 504A-N may include a client device. The cloud <NUM> may be a server in a public network. The one or more parties 504A-N retrieves the public information over the public network. Optionally, the public information includes any of an identification information or a long-term public key certificate.

Optionally, the one or more parties 504A-N include the client device that uploads a message to the cloud <NUM> without leaking the identification information of the client device to the cloud <NUM>. The client device selects a subgroup with neighbouring devices. For example, the client device selects a subgroup R with r members, where <NUM><r=<n, where the subgroup R = {<NUM>,. ,r}, R_PK = {pk1,. , pkr}, R_ID = {ID<NUM>,.

The client device may generate random x, compute x = g^x, compute ring signature: S_i = RingSig (ski, R_PK, x), compute session key and ciphertext of m: K = KDF(pk_s^x, pk_s||x| |string "ENC") ; C = AEAD (K, m) and send (X, S_i, C) to the cloud <NUM>. Optionally, the client device sends (X, S_i, C) to the cloud <NUM> along with a public key and a secret key.

Optionally, the cloud <NUM> verifies S_i using {R_PK}. The cloud <NUM> may compute a session key if the verification is correct. Optionally, the cloud <NUM> decrypts the cipher c: K = KDF (X^sk_s, pk_s ||x|| string "ENC" ; m = AEAD (K, C). The cloud <NUM> may compute the session key and decrypt the cipher with a zero round trip time.

<FIG> is a flow diagram that illustrates a method of sending an encrypted message from a client device to a server in accordance with an implementation of the disclosure. At a step <NUM>, a subgroup of neighbouring devices is selected by the client device. At a step <NUM>, a ring signature is computed by the client device based on a secret key of the client device, a hash value generated by the client device, and a public key of each neighbouring device. At a step <NUM>, a session key is calculated by the client device based on a concatenation of a public server key and the generated hash value. At a step <NUM>, a message is encrypted by the client device using the session key and the encrypted message is sent to the server with the generated hash value and the ring signature.

This method uses a passive key exchange and the ring signature that builds a privacy-preserving authenticated key agreement solution during this entire process. The method enables the one or more parties include the client device to establish a secure communication channel for secure message exchange, thereby providing anonymity authentication and secure message exchange for communication partners. The method provides secure communication with message authentication, integrity and confidentiality. The method provides privacy protection and does not disclose any identification information of the one or more parties that are in communication, e.g. party ID, Domain Name, and the like. The method improves security on the anonymity authentication and message exchange. The method provides better compatibility and a friendly integration environment.

The one or more parties may add the identification information and a public key for any type of messages, and send it to any client device in the one or more parties through the server, thereby providing a privacy preserving authentication and secure data exchange. The method shows the message as an anonymous ID and the public key belonging to the one or more parties. The method does not involve any trusted third party in the one or more parties. The method does not require any knowledge, consent, or assistance of other parties to build a subgroup. The method does not include any pre-defined group, a manager, a group public key, a setup for registration or revocation procedures.

<FIG> is a flow diagram that illustrates a method of receiving an encrypted message from a client device by a server in accordance with an implementation of the disclosure. At a step <NUM>, an encrypted message is received by the server from the client device. The encrypted message includes a hash value generated by the client device and a ring signature based on a secret key of the client device, the hash value generated by the client device, and a public key of each neighbouring device in a subgroup of neighbouring devices selected by the client device. At a step <NUM>, the ring signature is verified by the server using the public key of each neighbouring device in the subgroup. At a step <NUM>, a session key is calculated by the server based on a concatenation of a public server key and the generated hash value received from the client device. At a step <NUM>, the encrypted message is decrypted by the client device using the session key.

This method uses a passive key exchange and the ring signature that builds a privacy-preserving authenticated key agreement solution during this entire process. The method enables the one or more parties including the client device to establish a secure communication channel for secure message exchange, thereby providing anonymity authentication and secure message exchange for communication partners. The method provides secure communication with message authentication, integrity, and confidentiality. The method provides privacy protection and does not disclose any identification information of the one or more parties that are in communication, e.g. party ID, Domain Name, and the like. The method improves security on the anonymity authentication and message exchange. The method provides better compatibility and a friendly integration environment.

<FIG> is an illustration of a system <NUM> (e.g. a client device) in which the various architectures and functionalities of the various previous embodiments may be implemented. As shown, the system <NUM> includes at least one processor <NUM> that is connected to a sending device <NUM>, wherein the system <NUM> may be implemented using any suitable protocol, such as Peripheral Component Interconnect (PCI), PCI-Express, AGP (Accelerated Graphics Port), Hyper-Transport, or any other bus or point-to-point communication protocol (s). The system <NUM> also includes a memory <NUM>.

Control logic (software) and data are stored in the memory <NUM> which may take a form of random-access memory (RAM). In the disclosure, a single semiconductor platform may refer to a sole unitary semiconductor-based integrated circuit or chip. It should be noted that the term single semiconductor platform may also refer to multi-chip modules with increased connectivity which simulate on-chip modules with increased connectivity which simulate on-chip operation, and make substantial improvements over utilizing a conventional central processing unit (CPU) and bus embodiment. Of course, the various modules may also be situated separately or in various combinations of semiconductor platforms.

The system <NUM> may also include a secondary storage <NUM>. The secondary storage <NUM> includes, for example, a hard disk drive and a removable storage drive, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, digital versatile disk (DVD) drive, recording device, universal serial bus (USB) flash memory. The removable storage drive at least one of reads from and writes to a removable storage unit in a well-known manner.

Computer programs, or computer control logic algorithms, may be stored in at least one of the memory <NUM> and the secondary storage <NUM>. Such computer programs, when executed, enable the system <NUM> to perform various functions as described in the foregoing. The memory <NUM>, the secondary storage <NUM>, and any other storage are possible examples of computer-readable media.

In an implementation, the architectures and functionalities depicted in the various previous figures may be implemented in the context of the processor <NUM>, a graphics processor coupled to a communication interface <NUM>, an integrated circuit (not shown) that is capable of at least a portion of the capabilities of both the processor <NUM> and a graphics processor, a chipset (namely, a group of integrated circuits designed to work and sold as a unit for performing related functions, and so forth).

Furthermore, the architectures and functionalities depicted in the various previous-described figures may be implemented in a context of a general computer system, a circuit board system, a game console system dedicated for entertainment purposes, an application-specific system. For example, the system <NUM> may take the form of a desktop computer, a laptop computer, a server, a workstation, a game console, an embedded system.

Furthermore, the system <NUM> may take the form of various other devices including, but not limited to a personal digital assistant (PDA) device, a mobile phone device, a smart phone, a television, and so forth. Additionally, although not shown, the system <NUM> may be coupled to a network (for example, a telecommunications network, a local area network (LAN), a wireless network, a wide area network (WAN) such as the Internet, a peer-to-peer network, a cable network, or the like) for communication purposes through an I/O interface <NUM>.

It should be understood that the arrangement of components illustrated in the figures described are exemplary and that other arrangement may be possible. It should also be understood that the various system components (and means) defined by the claims, described below, and illustrated in the various block diagrams represent components in some systems configured according to the subject matter disclosed herein. For example, one or more of these system components (and means) may be realized, in whole or in part, by at least some of the components illustrated in the arrangements illustrated in the described figures.

In addition, while at least one of these components are implemented at least partially as an electronic hardware component, and therefore constitutes a machine, the other components may be implemented in software that when included in an execution environment constitutes a machine, hardware, or a combination of software and hardware.

Claim 1:
A method of sending an encrypted message from a client device (<NUM>) to a server (<NUM>, <NUM>), the method comprising:
selecting, by the client device (<NUM>), a subgroup of neighbouring devices (206A-N, 304A-N);
computing, by the client device (<NUM>), a ring signature based on a secret key of the client device (<NUM>), a hash value generated by the client device (<NUM>), and a public key of each neighbouring device;
calculating, by the client device (<NUM>), a session key based on a concatenation of a public server key and the generated hash value; and
encrypting, by the client device (<NUM>), a message using the session key and sending the encrypted message to the server (<NUM>, <NUM>) with the generated hash value and the ring signature.