Hamming codes with privacy
By encoding messages with Hamming codes that maintain a Hamming distance of one between adjacent bit sequences and applying differential privacy, the method ensures effective error correction and enhanced privacy in data communication systems.
Patent Information
- Application Number
- PCT/EP2025/053061
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-23
- Filing Date
- 2025-02-06
- Publication Date
- 2025-08-28
AI Technical Summary
Existing data communication systems face challenges in preserving privacy while maintaining error correction performance, particularly with Hamming codes, as they do not effectively obscure the relationship between adjacent data points.
The method involves encoding messages using Hamming codes that map adjacent messages to adjacent codewords, ensuring a Hamming distance of one between adjacent bit sequences, and incorporating differential privacy algorithms to distort the original data, thereby enhancing privacy without compromising error correction.
This approach maintains error correction capabilities while significantly improving data privacy by making adjacent data points indistinguishable, compliant with regulations like GDPR and CCPA.
Smart Images

Figure EP2025053061_28082025_PF_FP_ABST
Abstract
Description
HAMMING CODES WITH PRIVACYTECHNICAL FIELD
[0001] Various example embodiments generally relate to the field of dataencoding and decoding. Some example embodiments relate to preserving dataprivacy with error correction codes.BACKGROUND
[0002] In various communication applications it may be desired to preserveprivacy of individuals, for example by modifying original data such that theresulting data cannot be used to infer information about any individual. Forwarderror correction coding (FEC) may be applied to enable transmitted data to be correctly received regardless of error occurring in the transmission channel, forexample a wireless radio channel. Hamming codes are one class of error correctioncodes. SUMMARY
[0003] This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
[0004] Example embodiments of the present disclosure enable to improve dataprivacy without affecting error correction performance of Hamming codes. Thisand other benefits may be achieved by the features of the independent claims.Further example embodiments are provided in the dependent claims, thedescription, and the drawings.
[0005] According to a first aspect, a method is disclosed. The method maycomprise: obtaining a message for encoding, the message belonging to a messagespace; encoding the message based on a Hamming code to obtain a codeword belonging to a codeword space, wherein the Hamming code is configured to mapadjacent messages of the message space to adjacent codewords of the codeword space; and transmitting a signal comprising the codeword.
[0006] According to an example embodiment of the first aspect, the messagecomprises an integer, and a distance between adjacent integers of the message space is equal to one.
[0007] According to an example embodiment of the first aspect, the methodcomprises: converting the integer to a bit sequence based on a mapping configured to map adjacent integers of the message space to adjacent bit sequences, wherein aHamming distance between adjacent bit sequences is equal to one; and encodingthe bit sequence as the message.
[0008] According to an example embodiment of the first aspect, the messagecomprises a bit sequence, and a Hamming distance between adjacent bit sequences of the message space is equal to one.
[0009] According to an example embodiment of the first aspect, the codewordspace comprises bit sequences, and a Hamming distance between the adjacent codewords is equal to a minimum distance of the Hamming code.
[0010] According to an example embodiment of the first aspect, Hamming codeis characterized by a parity-check matrix comprising a concatenation of a non- identity matrix and an identity matrix, wherein columns of the non-identity matrix are ordered according to increasing or decreasing weight.
[0011] According to an example embodiment of the first aspect, the Hammingcode is characterized by a generator matrix, wherein rows of the generator matrix comprise shifted versions of a binary representation of a generator polynomial of the Hamming code.
[0012] According to an example embodiment of the first aspect, the methodcomprises: obtaining the message based on a counting query to a set of data.
[0013] According to an example embodiment of the first aspect, the methodcomprises: privatizing the message based on a differential privacy algorithm before the encoding of the message.
[0014] According to a second aspect, a method is disclosed. The method maycomprise: receiving a signal comprising a representation of a codeword belongingto a codeword space; and decoding the representation of the codeword based on a Hamming code to obtain an estimate of a message belonging to a message space, wherein the Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space.
[0015] According to an example embodiment of the second aspect, themessage comprises an integer, and a distance between adjacent integers of the message space is equal to one.
[0016] According to an example embodiment of the second aspect, themessage comprises a bit sequence, and a Hamming distance between adjacent bit sequences of the message space is equal to one.
[0017] According to an example embodiment of the second aspect, thecodeword space comprises bit sequences, and a Hamming distance between the adjacent codewords is equal to a minimum distance of the Hamming code.
[0018] According to an example embodiment of the second aspect, theHamming code is characterized by a parity-check matrix comprising a concatenation of a non-identity matrix and an identity matrix, wherein columns of the non-identity matrix are ordered according to increasing or decreasing weight.
[0019] According to an example embodiment of the second aspect, theHamming code is characterized by a generator matrix, wherein rows of the generator matrix comprise shifted versions of a binary representation of a generator polynomial of the Hamming code
[0020] According to a third aspect, an apparatus is disclosed. The apparatus maycomprise: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to: obtaina message for encoding, the message belonging to a message space; encode themessage based on a Hamming code to obtain a codeword belonging to a codeword space, wherein the Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space; and transmit a signal comprising the codeword.
[0021] According to an example embodiment of the third aspect, the messagecomprises an integer, and a distance between adjacent integers of the message space is equal to one.
[0022] According to an example embodiment of the third aspect, the instructionsare configured to, when executed by the at least one processor, cause the apparatusto: convert the integer to a bit sequence based on a mapping configured to mapadjacent integers of the message space to adjacent bit sequences, wherein aHamming distance between adjacent bit sequences is equal to one; and encode thebit sequence as the message.
[0023] According to an example embodiment of the third aspect, the messagecomprises a bit sequence, and a Hamming distance between adjacent bit sequences of the message space is equal to one.
[0024] According to an example embodiment of the third aspect, the codewordspace comprises bit sequences, and a Hamming distance between the adjacent codewords is equal to a minimum distance of the Hamming code.
[0025] According to an example embodiment of the third aspect, Hamming codeis characterized by a parity-check matrix comprising a concatenation of a non- identity matrix and an identity matrix, wherein columns of the non-identity matrix are ordered according to increasing or decreasing weight.
[0026] According to an example embodiment of the third aspect, the Hammingcode is characterized by a generator matrix, wherein rows of the generator matrix comprise shifted versions of a binary representation of a generator polynomial of the Hamming code.
[0027] According to an example embodiment of the third aspect, the instructionsare configured to, when executed by the at least one processor, cause the apparatusto: obtain the message based on a counting query to a set of data.
[0028] According to an example embodiment of the third aspect, the instructionsare configured to, when executed by the at least one processor, cause the apparatusto: privatize the message based on a differential privacy algorithm before theencoding of the message.
[0029] According to a fourth aspect, an apparatus is disclosed. The apparatusmay comprise: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to:receive a signal comprising a representation of a codeword belonging to a codewordspace; and decode the representation of the codeword based on a Hamming code toobtain an estimate of a message belonging to a message space, wherein the Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space.
[0030] According to an example embodiment of the fourth aspect, the messagecomprises an integer, and a distance between adjacent integers of the message space is equal to one.
[0031] According to an example embodiment of the fourth aspect, the messagecomprises a bit sequence, and a Hamming distance between adjacent bit sequences of the message space is equal to one.
[0032] According to an example embodiment of the fourth aspect, thecodeword space comprises bit sequences, and a Hamming distance between the adjacent codewords is equal to a minimum distance of the Hamming code.
[0033] According to an example embodiment of the fourth aspect, theHamming code is characterized by a parity-check matrix comprising a concatenation of a non-identity matrix and an identity matrix, wherein columns of the non-identity matrix are ordered according to increasing or decreasing weight.
[0034] According to an example embodiment of the fourth aspect, the Hammingcode is characterized by a generator matrix, wherein rows of the generator matrix comprise shifted versions of a binary representation of a generator polynomial of the Hamming code.
[0035] According to a fifth aspect, an apparatus is disclosed. The apparatus maycomprise: means for obtaining a message for encoding, the message belonging to amessage space; means for encoding the message based on a Hamming code to obtain a codeword belonging to a codeword space, wherein the Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space; and means for transmitting a signal comprising the codeword. The apparatus may comprise means for performing any example embodiment of the method of the first aspect.
[0036] According to a sixth aspect, an apparatus is disclosed. The apparatus maycomprise: means for receiving a signal comprising a representation of a codewordbelonging to a codeword space; and means for decoding the representation of the codeword based on a Hamming code to obtain an estimate of a message belongingto a message space, wherein the Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space. The apparatus may comprise means for performing any example embodiment of the method of the second aspect.
[0037] According to a seventh aspect, a data structure is disclosed. The datastructure may comprise: a generator matrix of a Hamming code configured to map adjacent messages of a message space to adjacent codewords of a codeword space. The data structure may be embodied on a computer-readable medium.
[0038] According to an eighth aspect, a data structure is disclosed. The datastructure may comprise: a parity-check matrix configured for decoding a Hamming code, wherein the Hamming code is configured to map adjacent messages of a message space to adjacent codewords of a codeword space. The data structure may be embodied on a computer-readable medium.
[0039] According to a ninth aspect, a method is disclosed. The method maycomprise: obtaining, by an encoder device, a first message for encoding, the firstmessage belonging to a message space; communicating, with a decoder device, information indicative of a first Hamming code being configured for encoding thefirst message; encoding the first message based on the first Hamming code to obtaina first codeword belonging to a codeword space, wherein the first Hamming code is configured to map adjacent messages of the message space to adjacent codewordsof the codeword space; and transmitting a signal comprising the first codeword tothe decoder device.
[0040] According to an example embodiment of the ninth aspect, the methodmay comprise: obtaining, by the encoder device, a second message for encoding, the second message belonging to the message space; communicating, with the decoder device, information indicative of a second code being configured forencoding the second message; encoding the second message based on the secondcode; and transmitting a signal comprising the encoded second message to thedecoder device.
[0041] According to an example embodiment of the ninth aspect, the methodmay comprise: receiving the information indicative of the first Hamming code being configured for encoding the first message and the information indicative ofthe second code being configured for encoding the second message from the decoder device.
[0042] According to an example embodiment of the ninth aspect, the methodmay comprise: determining to configure the first Hamming code for encoding the first message and the second code for encoding the second message; and transmitting the information indicative of the first Hamming code being configured for encoding the first message and the information indicative of the second code being configured for encoding the second message to the decoder device.
[0043] According to an example embodiment of the ninth aspect, the secondcode comprises a second Hamming code configured to map at least one pair of adjacent messages of the message space to non-adjacent codewords of the codeword space.
[0044] According to an example embodiment of the ninth aspect, the firstmessage and the second message comprise respective integers, and a distance between adjacent integers of the message space is equal to one.
[0045] According to an example embodiment of the ninth aspect, the methodmay comprise: converting the respective integers to bit sequences based on a mapping configured to map adjacent integers of the message space to adjacent bit sequences, wherein a Hamming distance between the adjacent bit sequences isequal to one; an encoding the bit sequences as the first and second messages.
[0046] According to an example embodiment of the ninth aspect, the firstmessage and the second message comprise respective bit sequences, and a Hamming distance between adjacent bit sequences of the message space is equal to one.
[0047] According to an example embodiment of the ninth aspect, the methodmay comprise: obtaining the first message and the second message based on at least one counting query to a set of data.
[0048] According to an example embodiment of the ninth aspect, the methodmay comprise: privatizing the first message based on a differential privacyalgorithm before the encoding of the first message; or privatizing the secondmessage based on the differential privacy algorithm before the encoding of the second message.
[0049] According to an example embodiment of the ninth aspect, the codewordspace comprises bit sequences, and a Hamming distance between the adjacent codewords is equal to a minimum distance of the Hamming code.
[0050] According to an example embodiment of the ninth aspect, the Hammingcode is characterized by a parity-check matrix comprising a concatenation of a non- identity matrix and an identity matrix, wherein columns of the non-identity matrix are ordered according to increasing or decreasing weight.
[0051] According to an example embodiment of the ninth aspect, the Hammingcode is characterized by a generator matrix, wherein rows of the generator matrix comprise shifted versions of a binary representation of a generator polynomial of the Hamming code.
[0052] According to a tenth aspect, a method is disclosed. The method maycomprise: communicating, by a decoder device with an encoder device, information indicative of a first Hamming code being configured for encoding a first message by the encoder device, wherein the first message belongs to a message space; receiving, from the encoder device, a signal comprising a representation of a first codeword belonging to a codeword space and representing the first message; and decoding the representation of the first codeword based on the first Hamming code to obtain an estimate of the first message, wherein the first Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space.
[0053] According to an example embodiment of the tenth aspect, the methodcomprises: communicating, by the decoder device with the encoder device, information indicative of a second code being configured for encoding a second message by the encoder device, wherein the second message belongs to the message space; receiving, from the encoder device, a signal comprising a representation ofthe encoded second message representing the second message; and decoding therepresentation of the encoded second message based on the second code to obtain an estimate of the second message.
[0054]
[0055] According to an example embodiment of the tenth aspect, the methodcomprises: receiving the information indicative of the first Hamming code beingconfigured for encoding the first message and the information indicative of the second code being configured for encoding the second message from the encoder device.
[0056] According to an example embodiment of the tenth aspect, the methodcomprises: determining to configure the first Hamming code for encoding the firstmessage and the second code for encoding the second message; and transmittingthe information indicative of the first Hamming code being configured for encoding the first message and the information indicative of the second code being configured for encoding the second message to the encoder device.
[0057] According to an example embodiment of the tenth aspect, the secondcode comprises a second Hamming code configured to map at least one pair of adjacent messages of the message space to non-adjacent codewords of the codeword space.
[0058] According to an example embodiment of the tenth aspect, the firstmessage and the second message comprise respective integers, and a distance between adjacent integers of the message space is equal to one.
[0059] According to an example embodiment of the tenth aspect, the firstmessage and the second message comprise respective bit sequences, and a Hamming distance between adjacent bit sequences of the message space is equal to one.
[0060] According to an example embodiment of the tenth aspect, the methodcomprises: privatizing the first message based on a differential privacy algorithmbefore the encoding of the first message; or privatizing the second message basedon the differential privacy algorithm before the encoding of the second message.
[0061] According to an example embodiment of the tenth aspect, the codewordspace comprises bit sequences, and a Hamming distance between the adjacent codewords is equal to a minimum distance of the Hamming code.
[0062] According to an example embodiment of the tenth aspect, the firstHamming code is characterized by a parity-check matrix comprising a concatenation of a non-identity matrix and an identity matrix, wherein columns of the non-identity matrix are ordered according to increasing or decreasing weight.
[0063] According to an example embodiment of the tenth aspect, the firstHamming code is characterized by a generator matrix, wherein rows of the generator matrix comprise shifted versions of a binary representation of a generator polynomial of the Hamming code.
[0064] According to an eleventh aspect, an encoder device is disclosed. Theencoder device may comprise: at least one processor; and at least one memorystoring instructions that, when executed by the at least one processor, cause theencoder device at least to: obtain a first message for encoding, the first messagebelonging to a message space; communicate, with a decoder device, information indicative of a first Hamming code being configured for encoding the first message;encode the first message based on the first Hamming code to obtain a first codewordbelonging to a codeword space, wherein the first Hamming code is configured to map adjacent messages of the message space to adjacent codewords of thecodeword space; and transmit a signal comprising the first codeword to the decoderdevice.
[0065] According to an example embodiment of the eleventh aspect, theinstructions are configured to, when executed by the at least one processor, causethe encoder device to: obtain a second message for encoding, the second messagebelonging to the message space; communicate, with the decoder device,information indicative of a second code being configured for encoding the secondmessage; encode the second message based on the second code; and transmit asignal comprising the encoded second message to the decoder device.
[0066] According to an example embodiment of the eleventh aspect, theinstructions are configured to, when executed by the at least one processor, causethe encoder device to: receive the information indicative of the first Hamming codebeing configured for encoding the first message and the information indicative of the second code being configured for encoding the second message from the decoder device.
[0067] According to an example embodiment of the eleventh aspect, theinstructions are configured to, when executed by the at least one processor, causethe encoder device to: determine to configure the first Hamming code for encodingthe first message and the second code for encoding the second message; andtransmit the information indicative of the first Hamming code being configured forencoding the first message and the information indicative of the second code being configured for encoding the second message to the decoder device.
[0068] According to an example embodiment of the eleventh aspect, the secondcode comprises a second Hamming code configured to map at least one pair of adjacent messages of the message space to non-adjacent codewords of the codeword space.
[0069] According to an example embodiment of the eleventh aspect, the firstmessage and the second message comprise respective integers, and a distance between adjacent integers of the message space is equal to one.
[0070] According to an example embodiment of the eleventh aspect, theinstructions are configured to, when executed by the at least one processor, causethe encoder device to: convert the respective integers to bit sequences based on amapping configured to map adjacent integers of the message space to adjacent bit sequences, wherein a Hamming distance between the adjacent bit sequences isequal to one; an encode the bit sequences as the first and second messages.
[0071] According to an example embodiment of the eleventh aspect, the firstmessage and the second message comprise respective bit sequences, and a Hamming distance between adjacent bit sequences of the message space is equal to one.
[0072] According to an example embodiment of the eleventh aspect, theinstructions are configured to, when executed by the at least one processor, causethe encoder device to: obtain the first message and the second message based on atleast one counting query to a set of data.
[0073] According to an example embodiment of the eleventh aspect, theinstructions are configured to, when executed by the at least one processor, causethe encoder device to: privatize the first message based on a differential privacyalgorithm before the encoding of the first message; or privatize the second messagebased on the differential privacy algorithm before the encoding of the second message.
[0074] According to an example embodiment of the eleventh aspect, thecodeword space comprises bit sequences, and a Hamming distance between the adjacent codewords is equal to a minimum distance of the Hamming code.
[0075] According to an example embodiment of the eleventh aspect, theHamming code is characterized by a parity-check matrix comprising a concatenation of a non-identity matrix and an identity matrix, wherein columns of the non-identity matrix are ordered according to increasing or decreasing weight.
[0076] According to an example embodiment of the eleventh aspect, theHamming code is characterized by a generator matrix, wherein rows of the generator matrix comprise shifted versions of a binary representation of a generator polynomial of the Hamming code.
[0077] According to a twelfth aspect, a decoder device is disclosed. The decoderdevice may comprise: at least one processor; and at least one memory storinginstructions that, when executed by the at least one processor, cause the decoderdevice at least to: communicate, with an encoder device, information indicative ofa first Hamming code being configured for encoding a first message by the encoder device, wherein the first message belongs to a message space; receive, from the encoder device, a signal comprising a representation of a first codeword belongingto a codeword space and representing the first message; and decode therepresentation of the first codeword based on the first Hamming code to obtain an estimate of the first message, wherein the first Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space.
[0078] According to an example embodiment of the twelfth aspect, theinstructions are configured to, when executed by the at least one processor, causethe decoder device to: communicate, with the encoder device, informationindicative of a second code being configured for encoding a second message by theencoder device, wherein the second message belongs to the message space; receive,from the encoder device, a signal comprising a representation of the encoded secondmessage representing the second message; and decoding the representation of theencoded second message based on the second code to obtain an estimate of thesecond message.
[0079] According to an example embodiment of the twelfth aspect, theinstructions are configured to, when executed by the at least one processor, causethe decoder device to: receive the information indicative of the first Hamming codebeing configured for encoding the first message and the information indicative of the second code being configured for encoding the second message from the encoder device.
[0080] According to an example embodiment of the twelfth aspect, theinstructions are configured to, when executed by the at least one processor, causethe decoder device to: determine to configure the first Hamming code for encodingthe first message and the second code for encoding the second message; and transmit the information indicative of the first Hamming code being configured for encoding the first message and the information indicative of the second code being configured for encoding the second message to the encoder device.
[0081] According to an example embodiment of the twelfth aspect, the secondcode comprises a second Hamming code configured to map at least one pair of adjacent messages of the message space to non-adjacent codewords of the codeword space.
[0082] According to an example embodiment of the twelfth aspect, the firstmessage and the second message comprise respective integers, and a distance between adjacent integers of the message space is equal to one.
[0083] According to an example embodiment of the twelfth aspect, the firstmessage and the second message comprise respective bit sequences, and a Hamming distance between adjacent bit sequences of the message space is equal to one.
[0084] According to an example embodiment of the twelfth aspect, theinstructions are configured to, when executed by the at least one processor, causethe decoder device to: privatize the first message based on a differential privacyalgorithm before the encoding of the first message; or privatize the second messagebased on the differential privacy algorithm before the encoding of the second message.
[0085] According to an example embodiment of the twelfth aspect, thecodeword space comprises bit sequences, and a Hamming distance between the adjacent codewords is equal to a minimum distance of the Hamming code.
[0086] According to an example embodiment of the twelfth aspect, the firstHamming code is characterized by a parity-check matrix comprising a concatenation of a non-identity matrix and an identity matrix, wherein columns of the non-identity matrix are ordered according to increasing or decreasing weight.
[0087] According to an example embodiment of the twelfth aspect, the firstHamming code is characterized by a generator matrix, wherein rows of the generator matrix comprise shifted versions of a binary representation of a generator polynomial of the Hamming code.
[0088] According to a thirteenth aspect, an apparatus is disclosed. The apparatusmay comprise: means for obtaining, by an encoder device, a first message forencoding, the first message belonging to a message space; means for communicating, with a decoder device, information indicative of a first Hammingcode being configured for encoding the first message; means for encoding the firstmessage based on the first Hamming code to obtain a first codeword belonging to a codeword space, wherein the first Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space; and transmitting a signal comprising the first codeword to the decoder device. The apparatus may comprise means for performing any example embodiment of themethod of the ninth aspect.
[0089] According to a fourteenth aspect, an apparatus is disclosed. Theapparatus may comprise: means for communicating, by a decoder device with anencoder device, information indicative of a first Hamming code being configured for encoding a first message by the encoder device, wherein the first message belongs to a message space; means for receiving, from the encoder device, a signal comprising a representation of a first codeword belonging to a codeword space andrepresenting the first message; and means for decoding the representation of thefirst codeword based on the first Hamming code to obtain an estimate of the first message, wherein the first Hamming code is configured to map adjacent messagesof the message space to adjacent codewords of the codeword space. The apparatusmay comprise means for performing any example embodiment of the method of thetenth aspect.
[0090] According to a fifteenth aspect, a computer program, a computer programproduct, or a (non-transitory) computer-readable medium is disclosed. The computer program, computer program product, or (non-transitory) computer- readable medium may comprise instructions, which when executed by an apparatus, cause the apparatus at least to perform the method according to the first, second, ninth or tenth aspect, or any example embodiment(s) thereof.
[0091] Example embodiments of the present disclosure can thus provideapparatuses, methods, computer programs, computer program products, orcomputer readable media for improving various aspects of wireless tethering. Anyexample embodiment may be combined with one or more other exampleembodiments. These and other aspects of the present disclosure will be apparentfrom the example embodiment(s) described below. According to some aspects,there is provided the subject matter of the independent claims. Some further aspects are defined in the dependent claims. DESCRIPTION OF THE DRAWINGS
[0092] The accompanying drawings, which are included to provide a furtherunderstanding of the example embodiments and constitute a part of this specification, illustrate example embodiments and, together with the description, help to explain the example embodiments. In the drawings:
[0093] FIG. 1 illustrates an example of a communication network;
[0094] FIG. 2 illustrates an example of an apparatus configured to practice oneor more example embodiments;
[0095] FIG. 3 illustrates an example of a transmission model;
[0096] FIG. 4 illustrates an example of a method for determining a re-orderedcode with adjacent codewords having a distance equal to a minimum distance of the code;
[0097] FIG. 5 illustrates an example of a pairwise distance matrix of a Hammingcode;
[0098] FIG. 6 illustrates an example of a pairwise distance matrix of a re-orderedHamming code;
[0099] FIG. 7 illustrates an example of a first algorithm for determining amapping configured to map adjacent messages to adjacent codewords;
[0100] FIG. 8 illustrates an example of a pseudocode for implementing the firstalgorithm;
[0101] FIG. 9 illustrates an example of a mapping between message bits andcodewords for a re-ordered Hamming code (7,4);
[0102] FIG. 10 illustrates an example of a second algorithm for determining amapping configured to map adjacent messages to adjacent codewords;
[0103] FIG. 11 illustrates an example of a pseudocode for implementing thesecond algorithm;
[0104] FIG. 12 illustrates an example of a mapping between integer messagesand codewords for a re-ordered Hamming code (15,11);
[0105] FIG. 13 illustrates an example of generator polynomials for differentHamming codes;
[0106] FIG. 14 illustrates an example of a generator matrix obtained based onshifted versions of a codeword corresponding to a generator polynomial of aHamming code;
[0107] FIG. 15 illustrates an example of a privacy loss for a Hamming code anda re-ordered Hamming code;
[0108] FIG. 16 illustrates an example of signalling and operations forcommunicating information indicative of a code selected for particular message(s);
[0109] FIG. 17 illustrates an example of a method for encoding;
[0110] FIG. 18 illustrates an example of a method for decoding;
[0111] FIG. 19 illustrates an example of another method for encoding; and
[0112] FIG. 20 illustrates an example of another method for decoding.
[0113] Like references are used to designate like parts in the accompanyingdrawings.DETAILED DESCRIPTION
[0114] Reference will now be made in detail to example embodiments, examplesof which are illustrated in the accompanying drawings. The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
[0115] In data communications, the physical medium from the transmitter to thereceiver may be called the communication channel. The communication channelmay corrupt the transmitted signal in a random manner, for example due to additivethermal noise caused by random motion of charged particles in electronic devices and / or other phenomena in the communication channel such as multipath radiopropagation. One way to overcome the effect of noise and other adverse effects isto apply error correcting codes (ECC) at the physical layer. For example, a binaryinformation sequence may be provided to a channel encoder, also referred to as an error correcting encoder or forward error correction (FEC) encoder, which may be configured to add redundant data to the message, for example by appending the message with parity bits to form a codeword. The added redundancy enables the receiver to detect and correct up to a certain number of errors incurred by the communication channel.
[0116] The inherent randomness of data communications caused by the thermalnoise could be utilized for enhancing privacy. On the one hand, the primary goal of a communication system may be considered to be to transmit information reliably by means of proper error control. By contrast, a goal of privacy-preserving schemes may be to distort the original data, which is opposite to the goal of error correction. Therefore, instead of first trying to make the data private by adding noise and then transmitting the data by a reliable error correction scheme, both targets could betargeted in a unified manner. For example, the error correction code structure in acommunications or storage systems could be altered such that errors occurring in the process are not corrected but carefully considered as a way to enhance privacy.Therefore, example embodiments of the present disclosure enable to exploitproperties of Hamming codes to improve privacy of data communicated with errorcorrection coding.
[0117] Differential privacy: When sharing information about a group ofindividuals, differential privacy methods may be used to preserve privacy of individuals by changing the original data such that the resulting data cannot be used to infer information about any individual. Differential privacy may be for example exploited if other anonymization techniques such as k-anonymity and l-divergence do not guarantee sufficient privacy. Differential privacy may be used for example in order to comply with data privacy regulations such as GDPR (General Data Protection Regulation) and CCPA (California Consumer Privacy Act).
[0118] Two data sets ^^ and ^^ may be consider to be neighbours (adjacent) ifthey differ in only one data entry (e.g., the data of an individual). Let ^ ≥ 0. Analgorithm / mechanism ^ , which may be a random mapping in general, may be saidto be ^ -differential private ifPr(^(^^) ∈ ^) ≤ ^^ Pr(^(^^) ∈ ^)for all subsets ^ of image of ^ and all adjacent datasetsand ^^. The smaller the^ , the harder it is to distinguish whetheror ^^ has generated the output of thealgorithm, which in turn, makes the presence of an individual less likely to benoticed, sinceor ^^ differ in only one entry. Therefore, by lowering ^ , thealgorithm becomes more privacy-preserving. As a result, ^ may be called theprivacy loss.
[0119] Assuming a random mapping from ^ ≜ [0: ^ − 1](= {0,1,2, … , ^ − 1})to itself, and letting ^^,^ denote the probability that ^ is mapped to ^ (^, ^ ∈ ^), it ispossible to verify that ^= ln^^,^^,^,^m:|^a^x^|^^ ^^,^,noting that if for any pair (^, ^), ^^,^ = 0, then ^ = ∞.
[0120] Hamming codes: Hamming codes are a particular class of parity checkcodes characterizable by the (n, k) notation, where n refers to the number of bits ina codeword and k refers to the number bits of the message to be encoded. Theencoder may be configured to transform a sequence of k message bits, into a longersequence of n codeword bits. A group of parity bits may be calculated by theencoder according to an encoding rule, which may by expressed by a generatormatrix G of the code. The encoding rule may determine the mathematical structureof the code. In general, a Hamming code may provide a mapping from a messagespace comprising possible messages (e.g., a set of k-bit messages) to a codewordspace comprising possible codewords (e.g., n-bit codewords).
[0121] Hamming codes may be characterized by generator matrix ^ and parity-check matrix ^. An encoder device may be configured to encode a message ^(message vector) to obtain a respective codeword ^ by ^ = ^^. Parity-check matrix^ enables decoding of the codeword to reconstruct the message. For each ^ × ^generator matrix ^, there exists an (^ − ^) × ^ parity-check matrix ^, such that therows of ^ are orthogonal to the rows of ^, that is, ^^^, where (. )^is the matrixtranspose operation. The n bits of codeword ^ may be formed by linearcombinations of the k message bits. An integer message may be transformed to abit sequence for subsequent encoding by the Hamming code. As one example,Hamming code (7,4) may be characterized by the following parity-check matrix and generator matrix:
[0122] Hamming codes may be characterized by block length ^ = 2^ − 1 ,number of message bits ^ = 2^ − ^ − 1, number of parity bits ^ = ^ − ^, where^ ≥ 3. Codewords of a Hamming code have a minimum distance of three in thecodeword space, meaning that the Hamming distance (number of differing bits)between any pair of codewords is higher than or equal to three. Adjacent codewords(i.e., closest neighbouring codewords) of a Hamming code may therefore have a Hamming distance of three. By contrast, the Hamming distance between adjacent binary messages of the message space may be equal to one, which means that adjacent bit sequences differ on one bit position. (e.g., 4-bit sequences ‘0101’ and ‘0001’ may be considered to be adjacent because they differ only by the second bit). Integer messages may be considered to be adjacent if their distance (difference) isequal to one. For example, integer messages ‘5’ and ‘6’ may be considered to beadjacent.
[0123] Binary symmetric channel: A binary symmetric channel with crossoverprobability ^, also referred to as BSC(^), is a binary-input binary-output random mapping, in which a bit is flipped with probability ^. This is one example of a model for a noisy channels and many problems in communication theory can be reduced to a BSC.
[0124] Counting query: Counting query over tabular data is one type of a queryfor data analysis. A counting query may be expressed with the form "how manyrows in a database have the property X?" For example, each row of the databasemight correspond to a survey respondent, and the property X might be indicative ofwhether the respondent answered ‘yes’ to the survey. As another example, each rowmight correspond to an individual patient, and the property X could be indicative ofwhether the patient has been tested positive for a certain disease.
[0125] In the context of counting problems, the output of a query may be aninteger value, and since two neighbouring datasets will have counts that differ by at most one, the adjacency constraint in the definition of differential privacy maps to the adjacency of integer numbers. In other words, it may be desired to make adjacent numbers indistinguishable as required depending on the choice of ^.
[0126] FIG. 1 illustrates an example of a communication network.Communication network 100 may comprise one or more access nodes 120, 122, 124. Access node(s) 120, 122, 124 may be part of a radio access network (RAN) configured to enable a device, represented throughout the description by UE 110, to access communication services provided by core network 140. In connectionwith communication network 100, access node(s) 120, 122, 124 and core network140 may be collectively referred to as ‘network’. UE 110 may be referred to as a user device, a terminal apparatus, a terminal device, a mobile device, or the like. UE 110 may be configured to communicate with access node(s) 120, 122, 124 over a radio interface, which may be also referred to as an air interface. Access nodes 120, 122, 124 may be also referred to as network devices. A terminal device may comprise a device to which a connection from a communication network is terminated.
[0127] The radio interface may be configured for example based on the 5G NR(New Radio) standard defined by the 3rdGeneration Partnership Project (3GPP), or any future standard or technology (e.g., 6G). Access nodes 120, 122, 124 may for example comprise 5thgeneration access nodes (gNB). Transmission by an access node to UE 110 may be called downlink (DL) transmission. Transmission by UE 110 to an access node may be called uplink (UL) transmission. UE 110 may be therefore configured to operate as a transmitter for uplink transmissions and as a receiver for downlink transmissions. Access node(s) 120, 122, 124 may be configured to operate as a receiver for uplink transmissions and as a transmitter for downlink transmissions. A transmitter may comprise an encoder for encoding messages. A receiver may comprise a decoder for decoding messages. An encoder or a transmitter may be also referred to as an encoding device. A decoder or areceiver may be also referred to as a decoder device.
[0128] Communication network 100 may comprise a wireless communicationnetwork or a mobile communication network, such as for example a cellularcommunication network. UE 110 may be configured to communicate with accessnode(s) 120, 122, 124 using one or more logical channels and / or physical channels, for example a control channel such as the physical downlink control channel (PDCCH) or data channels such as the physical downlink shared channel (PDSCH) or the physical uplink shared channel (PUSCH). Shared data channels, e.g., PDSCHand PUSCH, may be shared by multiple UEs. An access node may be also referredto as an access point or a base station.
[0129] Core network 140 may be implemented with various network functions(NF), including, for example, one or more user plane functions (UPF) and one or more access and mobility management functions (AMF). A UPF may be configured to handle user data part of a communication session. A UPF may thus provide an interconnect point between the radio access network and a data network configured to provide application services to UE 110 via core network 140 and the radio access network. For example, a UPF may be configured to handle encapsulation and decapsulation of user plane protocol(s), such as the GPRS (general packet radio service) tunnelling protocol for the user plane (GTP-U). An AMF may be configured to receive connection and session request related data from UE 110 (viaan access node). An AMF may be configured to control connection and mobilitymanagement in communication network 100.
[0130] An access node 120, 122, 124 may be configured to communicate withUEs via one or more cells. For example, access node 120 may be configured toserve one or more UEs at cell 130. Access node 122 may be configured to serveUEs at cell 132. Access node 124 may be configured to serve UEs at cell 134. Acell may be configured to serve UEs at a certain geographical area at a certain radiofrequency, or a range of radio frequencies around a centre frequency of the cell. Thefrequency of the cell may belong to a particular frequency band, such as for exampleFrequency Range 1 (FR1, for example 450 MHz to 6 GHz) or Frequency Range 2 (FR2, for example 24.25 GHz to 52.6 GHz), for example as specified by 3GPP. In general, a frequency band may comprise a set of predefined radio frequencies, for example a continuous set of frequencies between lower and upper limits of the frequency band.
[0131] Communication network 100 may be operated based on a protocol stackcomprising a plurality of protocol layers. The protocol stack may be arranged based on the open systems interconnection (OSI) model or a layer model of a particular standard. In one example, the protocol stack may comprise a service data adaptation protocol (SDAP) layer, which may receive data from an application layer for transmission. The SDAP layer may be configured to exchange data with the packet data convergence (PDCP) layer. The PDCP layer may be responsible of generation of data bursts comprising one or more data packets, for example based on data obtained from the SDAP layer.
[0132] The PDCP layer may provide data to one or more instances of the radiolink control (RLC) layer. For example, PDCP data may be transmitted on one or more RLC transmission legs. Each RLC instance may be associated with corresponding MAC instances of the MAC layer. The MAC layer may provide a mapping between logical channels of upper layer(s) and transport channels of the physical layer, handle multiplexing and demultiplexing of MAC service data units (SDU). Furthermore, the MAC layer may provide error correction functionality based on packet retransmissions, for example according to the hybrid automatic repeat request (HARQ) process. Physically separate transmission legs may beprovided by the physical (PHY) layer, also known as Layer 1 (L1). Correspondingprotocol stacks may be applied both at access nodes 120, 122, 124 and UE 110.
[0133] In a split access node architecture, part of the protocol layers may beimplemented at a central unit (CU) of an access node, e.g., a gNB-CU, which maybe configured to handle upper layers of the protocol stack, for example SDAP and PDCP layers. Furthermore, gNB-CU may be configured to handle radio resourcecontrol (RRC) operations. A central unit of an access node may be associated with,e.g., configured to control, one or more distributed units (DU) of the access node, e.g., gNB-DU, which may be configured to handle lower layers of the protocol stack, for example RLC, MAC, and L1. Radio unit(s) of the gNB-DU(s) may beconfigured to transmit / receive data to / from UE(s) over the radio interface. Errorcorrection encoding and / or decoding may be performed at the physical layer, for example by UE 110 or an access node, e.g., a distributed unit thereof.
[0134] Communication network 100 may comprise other network function(s),network device(s), or protocol(s), in addition, or alternative to, those illustrated in FIG.1. A network device may be configured to implement functionality of one or more network functions. Even though some embodiments have been described in the context of 5G, it is appreciated that embodiments of the present disclosure are not limited to this example network. Example embodiments may be therefore applied in any present or future communication networks. An apparatus, such as for example UE 110 or access node 120, may comprise, or be configured to implement, e.g. by means of software, one or more of the protocol layers described herein.
[0135] It is however noted that example embodiments may be applied in anycontext, where data is encoded or decoded. For example, transmission of acodeword may comprise transmitting (e.g., writing) the codeword to a memorywithin the encoder device or to a memory external to the encoder device. Receiving a representation of a codework may comprise receiving (e.g., reading) the codewordfrom a memory of the decoder device or from a memory external to the decoderdevice.
[0136] FIG. 2 illustrates an example of an apparatus configured to practice oneor more example embodiments. Apparatus 200 may be a device such as UE 110, oran access node 120, 122, 124, an access point, a base station, a radio network node,or a split portion thereof (e.g., a central or distributed unit of an access node), anetwork device, a terminal device, or in general any apparatus configured toimplement functionality described herein. Apparatus 200 may comprise at least oneprocessor 202. The at least one processor 202 may comprise, for example, one ormore of various processing devices, such as for example a co-processor, a microprocessor, a controller, a digital signal processor (DSP), a processing circuitry with or without an accompanying DSP, or various other processing devices including integrated circuits such as, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like.
[0137] Apparatus 200 may further comprise at least one memory 204. Thememory 204 may be configured to store, for example, computer program code 206or the like, for example operating system software and application software.Memory 204 may comprise one or more volatile memory devices, one or more non-volatile memory devices, and / or a combination thereof. For example, the memory may be embodied as magnetic storage devices (such as hard disk drives, magnetic tapes, etc.), optical magnetic storage devices, or semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flashROM, RAM (random access memory), etc.). Memory 204 is provided as anexample of a (non-transitory) computer readable medium. The term “non- transitory,” as used herein, is a limitation of the medium itself (i.e., tangible, not a signal) as opposed to a limitation on data storage persistency (e.g., RAM vs. ROM).
[0138] Apparatus 200 may further comprise a communication interface 208configured to enable apparatus 200 to transmit and / or receive information.Communication interface 208 may comprise an external communication interface,such as for example a radio interface between UE 110 and access node(s) 120, 122,124, or a communication interface between a central unit and distributed unit(s) of an access node (e.g., an F1-U and / or F1-C interface). Communication interface 208 may comprise one or more radio transmitters or receivers, which may be coupled to one or more antennas or apparatus 200, or be configured to be coupled to one ormore antennas external to apparatus 200. Communication interface may,alternatively or additionally, comprise an internal communication interface ofapparatus 200 configured, for example, for accessing the at least one memory 204or an external memory configured to be communicatively or physically coupled toapparatus 200 in order to read or write codewords.
[0139] Apparatus 200 may further comprise other components and / or functionssuch as user interface 210 comprising at least one input device and / or at least oneoutput device. The input device may take various forms such a keyboard, a touch screen, or one or more embedded control buttons. The output device may for example comprise a display, a speaker, or the like.
[0140] When apparatus 200 is configured to implement some functionality,some component and / or components of apparatus 200, such as for example the atleast one processor 202 and / or the at least one memory 204, may be configured toimplement this functionality. Furthermore, when the at least one processor 202 isconfigured to implement some functionality, this functionality may be implementedusing program code 206 comprised, for example, in the at least one memory 204.
[0141] The functionality described herein may be performed, at least in part, byone or more computer program product components such as software components.According to an example embodiment, apparatus 200 comprises a processor orprocessor circuitry, such as for example a microcontroller, configured by the program code 206, when executed, to execute the embodiments of the operationsand functionality described herein. Program code 206 is provided as an example ofinstructions which, when executed by the at least one processor 202, cause performance of apparatus 200.
[0142] Alternatively, or in addition, the functionality described herein can beperformed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include field-programmable gate arrays (FPGAs), application- specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-a-chip systems (SOCs), complex programmable logic devices (CPLDs), graphics processing units (GPUs), or the like.
[0143] Apparatus 200 may be configured to perform, or cause performance of,method(s) described herein or comprise means for performing method(s) described herein. In one example, the means comprises the at least one processor 202, the atleast one memory 204 including instructions (e.g., program code 206) configuredto, when executed by the at least one processor 202, cause apparatus 200 to perform the method(s). In general, computer program instructions may be executed on means providing generic processing functions. Such means may be embedded for example in a personal computer, a smart phone, a network device, or the like. The method(s) may be thus computer-implemented, for example based algorithm(s) executable by the generic processing functions, an example of which is the at least one processor 202. The means may comprise transmission or reception means, for example one or more radio transmitters or receivers, which may be coupled or beconfigured to be coupled to one or more antennas. Apparatus 200 may comprise,for example, a network device, for example, an access node, an access point, a basestation, or a central / distributed unit thereof. Although apparatus 200 is illustrated asa single device, it is appreciated that, wherever applicable, functions of apparatus200 may be distributed to a plurality of devices.
[0144] FIG. 3 illustrates an example of a transmission model. Encoder device 310may receive a message ^ and generate, for example based on generator matrix ^, acodeword ^. Codeword ^ may be communicated over a channel 330, e.g., a radiochannel or a computer-readable storage medium, to decoder device 320, which mayreceive a distorted representation ^ of transmitted codeword ^. Note that dependingon the application, encoder device 310 and decoder device 320 might be located ata single apparatus or be a single apparatus. The distortions of channel 330 andadditive noise may be modelled by a binary error pattern vector ^. The distortedrepresentation of the transmitted codeword may be therefore expressed by ^ = ^ +^.
[0145] The task of decoder device 320 is to determine an estimate ^ of thetransmitted message such that the probability of erroneous decoding is minimized.Decoder device 320 may be for example configured to calculate a syndrome ^ =^^^ and find the index of the column in ^ that matches ^. Finally, decoder device320 may flip the bit corresponding to this index in the received vector ^ anddetermine the resulting vector as the estimate of the transmitted codeword. If ^ isthe all-zero, vector ^ itself may be regarded as the transmitted codeword.
[0146] FIG. 4 illustrates an example of a method for determining a re-orderedHamming code with adjacent codewords having a distance equal to a minimumdistance (three) of the code. Example embodiments of the present disclosure enableto improve privacy of Hamming codes. When applying the disclosed embodimentsto a Hamming code, the resulting re-ordered Hamming code may be also called a Hamming code with privacy (HAPY). The example embodiments enable for example to provide the maximum possible privacy for a given data utility on Hamming codes designed for a BSC. The structure of the code is modified to provide privacy directly by using environmental randomness, for example instead of using a pseudo random generator and separate privacy enhancing mechanismssuch as differential privacy. The example embodiments enable to improve privacywith a minor change in encoding and no change in decoding, thus resulting in very low complexity (almost none when compared to, for example, Gray mapping), while performing better than any reference scheme in terms of both coding and privacy. Furthermore, the example embodiments enable to avoid issues arising fromsampling from a continuous Gaussian distribution and enable to enhance privacywithout affecting the communication rate or the probability of error. Privacy may be therefore enhanced without reduction in utility, e.g., key performance indicators(KPI) of communication network 100. Both theoretical and simulation results areprovided for verifying the privacy enhancement.
[0147] Let us consider an example where outputs of a counting query,comprising integer values, are to be sent over a binary symmetric channel with aHamming code used as the channel encoder. According to one approach, themessages might be first mapped to their equivalent binary bit strings and thenmultiplied by generator matrix ^ to produce the corresponding codewords, withoutconsidering how exactly the generator matrix maps the messages to codewords. Incase of a Hamming code (^, ^) the maximum distance of any pair of codewords, is^, which is the code block length. Sending the outputs of the counting query via such Hamming code would come at a great privacy loss that scales with ^. It maybe therefore desired to search for solutions that enhance the privacy of thistransmission with, ideally, little or even no loss in utility.
[0148] In Hamming codes the minimum distance between any two codewords isthree, i.e., any two codewords differ in at least three bit positions. In the context ofdifferential privacy, it may be desired to make adjacent datasets lessdistinguishable. Therefore, mapping adjacent messages to adjacent codewords,thereby making neighbouring codewords to be as close as possible, would improveprivacy of the code. Example embodiments of the present disclosure enable togenerate Hamming codes where codewords are arranged such that any successivecodewords have the minimum distance of the code, which is equal to three forHamming codes. Methods for obtaining such an arrangement are disclosed with aproof optimality in the sense that a minimum possible privacy loss is provided andthe privacy loss does not scale with the block length of the code.
[0149] A method for generating such a code is illustrated in FIG. 4. The methodmay be performed by encoder device 320, or by another device. The resulting codemay be then preconfigured (e.g., hard-coded) at encoder device 310 and decoderdevice 320, or delivered to encoder device 310 and decoder device 320 afterdeployment.
[0150] At operation 401, the method may comprise converting an integermessage ^ to its binary equivalent ^^ with length ^ , for example by ^^ =dec2bin(^), ∀^ ∈ [0: 2^ − 1]. Message ^^ may belong to a message space [0: 2^−1], which may comprise a range of successive integer values. A distance betweenadjacent messages may be therefore equal to one. Converting integer message ^ may be based on a mapping configured to map adjacent messages to adjacent bit sequences. Such mapping may be called the Gray mapping. Adjacent bit sequences may differ from each other at exactly one bit position. A Hamming distance between adjacent bit sequences may be therefore equal to one.
[0151] At operation 402, the method may comprise constructing the Hamming(^, ^) codewords, for example by ^ ^^ = ^^^ , ∀^ ∈ [0: 2 − 1]. Codewords ^^ maybelong to a codeword space comprising the possible codewords for the messages in the message space. A distance between codewords in the codeword space may vary(e.g., from three to seven). A pair of codewords whose mutual Hamming distanceis equal to the minimum distance of the code, e.g., three in the case of Hammingcodes, may be considered to be adjacent codewords. Alternatively, message ^ maycomprise a bit sequence directly. In this case the message space may comprises a range of binary values and the Hamming distance between adjacent messages of the message space may be equal to one, as noted above.
[0152] At operation 403, the method may comprise forming the pairwiseHamming distance matrix of codewords, for example by ^[^, ^] = ^^(^^ , ^^) , ∀^ ∈[0: 2^ − 1]. An example of the pairwise distance matrix ^ of Hamming code (7,4)is illustrated in FIG. 5. The first row and column denote the 2^ = 16 integermessages from message space 0 to 15. It is observed that the distance betweenadjacent codewords, corresponding to the circled immediate off-diagonal elements,ranges from three to seven.
[0153] At operation 404, the method may comprise re-ordering rows andcolumns of the pairwise distance matrix ^ such that immediate off-diagonal entriesof ^ are equal to three. This is equivalent to making neighbouring codewords havethe distance of three. An example of the pairwise distance matrix ^ of the re-ordered Hamming code (7,4) is illustrated in FIG. 6. By re-ordering the rows andcolumns of ^ the arrangement such that all successive codewords are as close aspossible. As a result, the pairwise distance matrix ^ in the new arrangement has theproperty that the immediate off-diagonal values are equal to three, which is theminimum distance of Hamming codes.
[0154] At operation 405, the method may comprise reassigning the messages ofthe message space to codewords of the codeword space according to the newordering. The resulting re-ordered Hamming code is therefore configured to mapadjacent messages of the message space to adjacent codewords of the codeword space. This provides the benefit of improving privacy of the code, as describedabove. The mapping may be characterized by a rearranged generator matrix ^ or acorresponding parity-check matrix ^ . Examples of generator and parity-checkmatrices configured to map adjacent messages to adjacent codewords are providedbelow. The generator matrix and / or the parity-check matrix may be stored as a datastructure on a computer-readable medium, for example the at least one memory 204 or a portable storage medium.
[0155] Referring back to FIG. 3, encoder device 310 may obtain a message forencoding, for example based on a counting query to set of data, encode the messagebased on a re-ordered Hamming code (e.g., the generator matrix) obtained with theany of the methods described herein. The code may be therefore a Hamming codethat is configured to map adjacent messages of the message space (e.g., any pair ofadjacent messages of the message space) to adjacent codewords of the codeword space. Encoder device 310 may further transmit the codeword, for example within a radio signal over channel 310 to decoder device 320 or by writing the codeword on a computer-readable storage medium. Decoder device 320 may receive a(possibly distorted) representation of the codeword and decode it based on the code(e.g., the respective parity-check matrix) to obtain an estimate of the original message. Privacy of communicating error correction encoded data is thereby improved.
[0156] FIG. 7 illustrates an example of a first algorithm (Algorithm 1) fordetermining a mapping configured to map adjacent messages to adjacentcodewords. Consider parity-check matrix ^ = [^|^^^^] ( ^^^^ referring to anidentity matrix of size ^ − ^) having all the binary columns of length ^ − ^ exceptthe all-zero vector. Therefore, ^ has all the binary columns of length ^ − ^ thathave at least two ones, and the total number of these columns is ^ = ^) . More specifically, there are (^ − ^) columns that have two ones, (^ − ^) columnsthat have three ones and so on.
[0157] At operation 701, columns of matrix ^, also referred to as a non-identitymatrix, may be arranged according to an increasing order of their weights. A non-identity matrix may be a matrix, which is not an identity matrix. Weight of a columnor row may refer to the number of ones in the row or column. Hence, the first group of columns, referred to as Group 1, may comprise columns having two ones, andsimilarly, Group ^, where ^ ∈ [3: ^ − 1] may comprise columns having ^ + 1 ones.With this arrangement of the columns of ^, the corresponding generator matrix maybe obtained by ^ = [^ ^^|^ ]. The first (^ − ^2) rows of ^ (cf., Group 1) have twoones in their last ^ − ^ bits, the next (^ − ^) rows (cf. Group 2), have three onesin their last −^ bits, and so on.
[0158] The code may be therefore characterized by parity-check matrix, whichis a concatenation of the non-identity matrix (^) and the identity matrix ( ^^^^),where columns of the non-identity matrix are ordered according to increasing order of weight, starting from the first column of the non-identity matrix. As noted above, some columns may have the same weight and therefore the ordering may be such that groups of columns having identical weights are ordered in increasing order of weight. This provides the benefit of causing the Hamming code to map adjacentmessages to adjacent codewords, which improves privacy.
[0159] At operation 702, the ^ bits of the message may be partitioned into ^ −^ − 1 successive groups, where Group ^ corresponds to (^ − ^^ + 1) bits.
[0160] At operation 703, message vector ^ of ^ bits may be set to zero (^ = ^).
[0161] At operation 704, a mapping may be determined between messages andcodewords. The encoding may be initiated by Gray coding of Group ^ − ^ − 1based on the following: i) for any fixed bits corresponding to Group ^, perform a full loop of Gray coding until all combinations are written, and ii) for any bit flip ingroup ^, select and flip a particular bit in group ^ − 1.
[0162] It may be desired to arrange the message bits ( ^ ) such that theircorresponding codewords (^^) are arranged with neighboring distance of three, orin general the minimum distance of the code in question. If the code is systematic,the first ^ bits of the codewords match their corresponding message bits. As aresult, it is observed that if the first (^ − ^) bits of the message are incrementedaccording to Gray codes, that is adjacent binary vectors differing by one bit, andthe remaining ^ − (^ − ^) its are kept fixed, their corresponding codewords ^^have the neighboring distance of exactly three. The reason is that since two successive ^’s differ in only one bit position, which is one of the first (^ − ^) 2positions, the first ^ bits of their corresponding codewords (^^’s), being the sameas the message bits, differ only in that position. Furthermore, since the differing bitcorresponds to one of first (^ − ^2) rows of ^, which has only two ones in its last^ − ^ bits, the last ^ − ^ bits of these successive codewords differ only in twopositions. As a result, having one different bit in the first ^ positions, and twodifferent bits in the last ^ − ^ positions, these two adjacent codewords have theHamming distance of three.
[0163] It may not be however possible to write all the message bits according toGray codes and obtain adjacent codewords with distance three, since any singlechange in a message bit corresponding to Group ^ of rows may result in a changein ^ + 2 positions of the corresponding codeword; one change in the first ^ bits and^ + 1 changes in the last ^ − ^ bits of the corresponding codeword, since rows inGroup ^ have ^ + 1 ones in their last ^ − ^ bits. This would violate theneighbouring distance of three if ^ ≥ 2. This issue may be however solved asfollows.
[0164] The message bits may be initiated with the all-zero vector (cf. operation703). Keeping the last ^ − (^ −bits fixed, e.g., zero, the firstbits, 2 corresponding to Group 1, may be incremented according to Gray encoding. Onceall the combinations are exhausted, one bit in Group 2 may be flipped, e.g., one ofthe bits corresponding to the (^ − ^) rows of Group 2. With this bit flip, theresulting codeword has the Hamming distance of four with its predecessor, whichis not desirable. This may be remedied by simultaneously flipping a bitcorresponding to a row in Group 1 that has a Hamming distance of two from therow in Group 2 whose corresponding bit was flipped. With this modification, the new message bits is no longer according to Gray coding, since it is a result of two bit flips in its previous message bits. However, the corresponding codewords differin two positions in the first ^ bits, and only one position in the remaining ^ − ^bits, which still results in the overall distance of three.
[0165] The last ^ − (^ − ^ ) bits of the message may be then fixed and the Grayencoding may be repeated for the first (^ − ^) bits until all combinations inGroup 1 are covered. Again, a bit in Group 2 and a corresponding bit in Group 1may be flipped. This procedure may be repeated until all the combinations in Group2 are exhausted. At this point, a bit in Group 3 and a corresponding bit in Group 2may be flipped. The whole scenario may be then repeated again. This proceduremay be continued until all the 2^ message bits have been written.
[0166] In general, whenever all the combinations in Group ^ have been written,a bit in group ^ + 1 and a corresponding bit in Group ^ may be flipped. Theprocedure may then continue by exhausting again the combinations in Group ^.Finally, since at each creation of a codeword, the neighbouring distance is three andall the message bits have been considered, the desired mapping between messagesand codewords has been obtained.
[0167] Hence, Algorithm 1 may be characterized as follows:- for any fixed bits corresponding to group ^,a full loop of Gray encoding may beperformed for the bits in group ^ − 1 until all combinations have been written (^ ∈[2: ^ − ^ − 1]), and- for any bit flip in Group ^, a particular bit in group ^ − 1 is flipped (^ ∈ [2: ^ −^ − 1]).The procedure may be run in a backward manner, i.e., initiating with Gray codingof Group ^ − ^ − 1, which comprises the last message bit corresponding to the all-one column of the parity-check matrix.
[0168] FIG. 8 illustrates an example of a pseudocode for implementing the firstalgorithm (Algorithm 1). Notation ^^^ denotes the message bits corresponding toGroup ^. The function Grayupdate(·) on lines 14 and 21 takes a binary vector as itsinput and outputs the successive binary vector according to Gray encoding, whichis in Hamming distance one from its input. In step 15, ^∗ is a vector which has aone in the position of the bit to be flipped in group ^ − 1 in response to a bit flip inGroup ^, and zeros in other positions.
[0169] FIG. 9 illustrates an example of a mapping between message bits andcodewords. Table 1 of FIG. 9 illustrates an example of a mapping between messagebits and codewords for the re-ordered Hamming code (7,4) resulting fromAlgorithm 1. In this example, the parity-check and generator matricescharacterizing the re-ordered Hamming code (7,4) comprise:.In this example, the first three (== ^^^^) columns of ^, which have two ones, form Group 1, and the fourth column forms Group 2. Similarly, Group 1 of rows in^ are the first three rows, and Group 2 is the last row.
[0170] Algorithm 1 may be initiated with all-zero message bits, first consideringthe bits corresponding to the last group, here, the last bit of the message. Currently it is zero, and fixing it, we write a full loop of Gray coding in Group 1 to exhaust all the possible combinations in the first three bits. This results in eight messagesas shown in Table 1. Now is the time to flip the last bit. It is observed that theHamming distance of the last row of ^ with any row in Group 1 is equal to two.Therefore, any of these rows in Group 1 can be selected, and in this example the third row has been selected. Hence, the corresponding bit, i.e., the third bit is flipped at the same time of flipping the last bit. This is shown in Table 1 by underlining.Again, for the new value of the last bit, the procedure is proceeded to exhaust allthe possible combinations of the first three bits according to Gray encoding. As expected, on the right column in Table 1, all the codewords are arranged such thatany two neighbours, also referred to as successive or adjacent codewords, have theHamming distance of three.
[0171] FIG. 10 illustrates an example of a second algorithm (Algorithm 2) fordetermining a mapping configured to map adjacent messages to adjacent codewords. Algorithm 2 is based on the following lemma.
[0172] Lemma 1. In Hamming code (^, ^), there exists a set of ^ codewords withweight three that form a basis for the null space of the parity check matrix ^. In other words, any codeword can be written as a linear combination of these ^ codewords.
[0173] It is therefore possible to construct a generator matrix ^, whose rows arethese ^ linearly independent codewords with the message bits being Gray encoded.Since the adjacent message bits differ in exactly one position, their correspondingcodewords differ in addition / subtraction of one row of ^, which has the weight ofthree. As a result, the adjacent codewords have the minimum distance of three.Algorithm 2 may be used to find ^ linearly independent codewords of weight three.
[0174] At operation 1001, columns of ^ in ^ = [^|^] may be arrangedaccording to decreasing order of their weights, for example starting with the all-onevector. As an example, for (^, ^ = (15, 11), we get
[0175] The code may be therefore characterized by parity-check matrix, whichis a concatenation of the non-identity matrix (^) and the identity matrix (^), wherecolumns of the non-identity matrix are ordered according to decreasing order of weight, starting from the first column of the non-identity matrix. As noted above, some columns may have the same weight and therefore the ordering may be such that groups of columns having identical weights are ordered in decreasing order of weight. This provides the benefit of causing the Hamming code to map adjacent messages to adjacent codewords.
[0176] At operation 1002, for each column of ^ of ^ , the ^(^) denoting thedecimal value of column ^ and ^̂ (‘ ^ hat’) denoting the position of the mostsignificant bit (MSB) of column ^ may be determined.
[0177] At operation 1003, generator matrix ^ may be determined based onassigning, for each row ^ ones in three positions and zeros in other position. Toobtain ^ linearly independent codewords of weight three, firstly, a one may beassigned in position ^ of codeword ^, ^ ∈ [1: ^] and assign zeros in positions [1: ^ −1] for ^ ∈ [2: ^]. This zero indentation provides the benefit of linear independence,since no codeword can be a summation of a subset the remaining ^ − 1codewords.Let ^: [1: ^] → [1: ^] be a one-to-one mapping from the column index of ^ to itsdecimal value. For the example at hand, the first column is [1 1 1 1]^ , andhence ^(1) = 15. The second column is [0 1 1 1]^ , and its decimalequivalent is 7, hence, ^(2) = 7, and so on.
[0178] For ^ ∈ [1: ^], let ^̂ (‘^ hat’) denote the position of the most significant bitof column ^. More rigorously,^
[0179] For codeword ^ ( ^ ∈ [1: ^] , assign ones in positions ^ − ^̂ + 1 and^^^and assign zeros in other positions. In this example, we have^([1: 15]) = [15 7 11 13 14 3 5 6 9 10 12 8 4 2 1], and[1:^ 11] = [4 3 4 4 2 3 3 4 4 4],resulting from application of the ‘hat’ operator configured to output the MSB position.
[0180] Hence, the generator matrix formed by these ^(= 11) linearlyindependent codewords of weight three is1 1 0 0 0 0 0 0 0 0 0 1 0 0 0é0ù ê1 0 0 0 1 0 0 0 0 0 0 1 0 00 0 1 0 0 1ú ê0 0 0 0 0 1 0 0 00 0 0 1 0 0 1 0 0 0 0ú ê1 0 0 00 0 0 0 1ú ê0 0 1 0 0 0 1 0 0 0^ = 0 0 0 0 0 1 0 0ú ê0 0 0 0 0 1 1ú . ê0 0 0 0 0 0 1 0 0 0 0 0 1 0 1ú ê0 0 0 0 0 0 0 1 0 0 0 0 1 1 0ú ê0 0 0 0 0 0 0 0 1 0 0 1 0 0 1ú ê0 0 0 0 0 0 0 0 0 1 0 1 0 1 0ú ë0 0 0 0 0 0 0 0 0 0 1 1 1 0 0û
[0181] At operation 1004, codewords for encoded Gray messages may bedetermined by multiplying the binary message vector by the generator matrix (^^).
[0182] A pseudocode for implementing Algorithm 2 is illustrated in FIG. 11 andthe resulting mapping between some messages and respective codewords has been illustrated in FIG. 12. It is again observed that the Hamming distance between adjacent codewords is three, that is, the minimum distance of Hamming codes.
[0183] FIG. 13 illustrates an example of generator polynomials for differentHamming codes. A third algorithm (Algorithm 3) may be used for determining thegenerator matrix for Hamming codes with privacy.
[0184] For a Hamming code of a particular size (^, ^), the generator polynomialmay be as provided in FIG. 13. For example, for Hamming code (15, 11), thegenerator polynomial may be ^^ + ^ + 1, corresponding to a binary representationof [1 0 0 1 1]. In the binary representation, each bit position may indicate weightof a respective term of the generator polynomial, starting from the highest orderterm. In general, an ^-th element of the binary representation of an M-th ordergenerator polynomial (^ ∈ [0: ^]) may represent presence (value “1”) or absence(value “0”) of the (^ − ^)-th order term in the generator polynomial.
[0185] Algorithm 3 is based on using the generator polynomial of the Hammingcode and shifting it incrementally to the right. In this case, rows of the generatormatrix ^ comprise shifted versions of a binary representation of the respectivegenerator polynomial of the Hamming code. For example, the first row of thegenerator matrix ^ may comprise the binary representation of the generatorpolynomial, starting from the first element of the first row. The second row of thegenerator matrix ^ may comprise the binary representation of the generatorpolynomial, starting from the second element of the second row, and so on. In general, an i-th row of the generator matrix may comprise the binary representation of the generator polynomial starting from the i-th element of the i-th row. Otherelements of the generator matrix may comprise zeros. Algorithm 3 exploits thegenerator polynomial of the code to determine the mapping between messages and codewords such that adjacent messages are mapped to adjacent codewords. Anexample of a re-ordered generator matrix for Hamming code (7, 4), obtained basedon shifted versions of a binary representation of the respective generatorpolynomial, is illustrated in FIG. 14. It is observed that shifted versions of bitsequence [1 0 0 1 1] appear at each row of the generator matrix, as illustrated bythe dotted rectangles.
[0186] FIG. 15 illustrates an example of a privacy loss of a Hamming code anda re-ordered Hamming code. The privacy loss, i.e., ^, in the transmission of themessages over a BSC(^) via normal Hamming codes (^, ^) can be as large aswhere the subscript “ ^ ” stands for the worst case scenario, in which, twoneighbouring codewords have the Hamming distance of ^, i.e., they differ in everybit position.
[0187] The re-ordered Hamming code results in a privacy loss given aswhich is much lower than ^^, especially when ^ is large. FIG. 15 illustrates theprivacy loss for Hamming code (black circles) and a re-ordered Hamming code(white circles) for different code block lengths n. It is observed that re-ordering theHamming code, as provided by the example embodiments of the present disclosure reduces the privacy loss, especially with high code block lengths.
[0188] With normal Hamming codes the privacy loss scales with the code blocklength, while re-ordering the code causes the privacy loss to saturate at 3 ln^^^ ^ ,which is the first term on the right-hand side of the definition of ^∗. Since the natureof the re-ordered Hamming code a careful rearrangement of the codewords, no lossin probability of error or communication occurs. Therefore, there is no reduction in utility.
[0189] As an example with Hamming code (7,4) over BSC(0.1), a normalHamming code, re-ordered Hamming code, and the combination of privatizationand Hamming coding have the following error probabilities and privacy losses:Code rate Error Privacy probability loss Normal 4 Hamming0.1497 11.87 Re-ordered 4 Hamming0.1497 6.057 Privatizing 4 & Normal0.1534 6.05Hamming 7
[0190] Therefore, the re-ordering the Hamming code enables to reduce theprivacy loss from 11.8 to 6.05 without altering the code rate or the probability of error. Privatizing the data first and then sending the data over the BSC(0.1) by normal Hamming coding results in the same privacy at the cost of increased error probability. In this example, a differential parity mechanism is used for mappingintegers [0:15] to itself such that ^ = 6.05 is met. Among alternative ways ofachieving this, a method resulting in the minimum probability of error was selected.Even though the same privacy loss is achieved, this comes with the additionaldrawback of increased implementation cost and complexity due to the privatizationmechanism added prior to channel coding.
[0191] It is however possible to combine separate privatization step with the re-ordered Hamming code. In this case, the re-ordered Hamming code may be used asan add-on to the approach of separately privatizing and channel coding the data. Forexample, encoder device 310 may be configured to privatize the message based on a differential privacy algorithm before the encoding of the message. This enables to further decrease the probability of error, which is an improvement in the utility. Therefore, the re-ordered code, either on its own or in conjunction with other mechanisms may be used to improve data privacy.
[0192] FIG. 16 illustrates an example of signalling and operations forcommunicating information indicative of a code selected for particular message(s).The procedure of FIG. 16 may be used for synchronizing encoding and decodingbetween devices such that same code is used both for encoding and decoding at agiven time. This enables to turn off and on the privacy protective nature of the re-ordered Hamming code.
[0193] At operation 1601, decoder device 320, which may be the receiver forthe data to be encoded (e.g., a server), may transmit a request for data of a counting query to encoder device 310. Encoder device 310 may be a transmitter for the data to be encoded (e.g., a data holder device). Encoder device 310 and decoder device 320 may be initially (e.g., by a default configuration) configured to encode anddecode data with another error correction code, for example any other linear blockcode or a convolutional code. In this example, a normal Hamming code is used asan example of such other code, also referred to as a second code. It is howeverunderstood that the second code may be any suitable error correction code. NormalHamming code may refer to a Hamming code that is not re-ordered according tothe embodiments described above, for example a Hamming code which is configured to map at least one pair of adjacent messages of the message space to non-adjacent codewords of the codeword space.
[0194] At operation 1602, encoder device 310 may determine to configure there-ordered Hamming code, also referred to as the first Hamming code, for encodingmessage(s). Encoder device 310 may determine to configure the re-orderedHamming code to be used, response to determining that privacy protection isneeded, for example when the set of data associated with the counting query isdetermined to comprise privacy protected data. Encoder device 310 may furthertransmit information indicative of the re-ordered Hamming code being configuredfor encoding the message(s).
[0195] At operation 1603, decoder device 320 may transmit anacknowledgement of the use of the re-ordered Hamming code to encoder device 310. The acknowledgement enables encoder device to be informed about the decoder device 320 being ready for decoding messages with the re-ordered Hamming code.
[0196] At operation 1604, encoder device 310 may initiate encoding ofmessage(s) with the re-ordered Hamming code, for example in response to receiving the acknowledgement of operation 1603. Encoder device 310 may obtainthe message(s) based on the counting query to the set of data. It is however possiblethat decoder device 320 transmits multiple requests for the data and encoder device 310 obtains the messages based on these requests.
[0197] At operation 1605, encoder device 310 may transmit signal(s) comprisingmessage(s) encoded with the Hamming re-ordered code to decoder device 320. The encoded message(s) may comprise the codeword(s) to which respective message(s)are mapped by the re-ordered Hamming code. The codeword(s) therefore representthe message(s). The message(s) encoded and transmitted at operations 1604 and1605 and the corresponding codeword(s) may be referred to as first message(s) and first codeword(s), respectively. Decoder device 1606 may receive (possibly corrupted) representation(s) of the codeword(s).
[0198] At operation 1606, decoder device 320 may decode the receivedrepresentation(s) of the codeword(s) based on the re-ordered Hamming code, e.g., the parity-check matrix associated therewith.
[0199] At operation 1607, encoder device 310 may determine to configure thenormal Hamming code, or a second code in general, for encoding message(s).Encoder device 310 may determine to (re)configure the normal Hamming code, inresponse to determining that privacy protection is not needed, for example whenanother counting query is requested for another set of data determined not to comprise privacy protected data. Encoder device 310 may transmit informationindicative of the normal Hamming code being configured for encoding themessage(s). This indication may be provided for example as an indication ofterminating use of the re-ordered Hamming code, as illustrated in FIG. 16.
[0200] At operation 1608, decoder device 320 may transmit anacknowledgement of the use of the normal Hamming code to encoder device 310. The acknowledgement enables encoder device 310 to be informed about thedecoder device 320 being ready for decoding messages with the normal Hammingcode.
[0201] At operation 1609, encoder device 310 may initiate encoding ofmessage(s) with the normal Hamming code, for example in response to receiving the acknowledgement of operation 160. Encoder device 310 may obtain the message(s) based on the counting query to the set of data. It is however possible that decoder device 320 transmits multiple requests for the data and encoder device310 obtains the messages based on these requests. In general, encoder device 310may alternatively obtain data for encoding from any suitable data source, with orwithout a counting query.
[0202] At operation 1610, encoder device 310 may transmit signal(s) comprisingmessage(s) encoded with the normal Hamming code to decoder device 320. Theencoded message(s) may comprise the codeword(s) to which respective message(s)are mapped by the normal Hamming code. The codeword(s) therefore represent themessage(s). The message(s) encoded and transmitted at operations 1609 and 1610and the corresponding codeword(s) may be referred to as second message(s) andsecond codeword(s), respectively. Decoder device 1606 may receive (possiblycorrupted) representation(s) of these codeword(s).
[0203] At operation 1606, decoder device 320 may decode the representation(s)of the codeword(s) received at operation 1610 based on the normal Hamming code, e.g., the parity-check matrix associated therewith.
[0204] Even though a particular sequence of operations is illustrated in FIG. 16it is possible to perform the operations in different order or partially reverse the roles of encoder device 310 and decoder device 320. For example, decoder device320 might be responsible of configuration of the appropriate code. In this case,decoder device 320 might be configured to transmit the indication of operation 1602to encoder device 310. And, encoder device 310 might be configured toacknowledge the use of the re-ordered Hamming code, or the second code ingeneral, at operation 1603 to decoder device 320. Similarly, decoder device 320might be configured to transmit the indication of operation 1607 to encoder device310. Encoder device 310 might be configured to acknowledge the use of the normalHamming code, or the second code in general, at operation 1603 to decoder device320.
[0205] Mathematical proof of optimality may be provided based on Lemmas 2and 3. Let ^^(. , . ) denote the Hamming distance between two binary codewords,i.e., the number of positions at which they differ.
[0206] Lemma 2: In the transmission of Hamming (n, k) codewords over aBSC(p), the probability of decoding representation ^^ when codeword ^ istransmitted may be described bywhere ^ ≜ ^^(^, ^^) and ^ denotes the set of all ^^ codewords (codeword space).
[0207] Proof. Codeword ^^ decoded at the decoder device if and only if thereceived vector ^ satisfies ^^(^, ^^) ≤ 1. Sinc ^ and ^^ differ in ^ positions, wehave ^^(^, ^^) = 0, if and only if all these ^ differing bits are flipped, and theremaining ^ − ^ similar bits remain unchanged during the transmission of ^, whichoccurs with the probability of ^^(1 − ^)^^^. For the case ^^(^, ^^) = 1, there aretwo possibilities: i) one of these ^ differing bits and the ^ − ^ similar bits remainunchanged and ^ − 1 differing bits are flipped during the transmission of ^, whichoccurs with probabilityor ii) all the ^ differing bits and oneof the (^ − ^) similar bits are flipped and the remaining (^ − ^ − 1) similar bitsremain unchanged, which has the probability of (^ − ^)^^^^(1
[0208] Hence, the probability of the event ^^(^, ^^) ≤ 1is
[0209] For fixed ^, ^, let ^(^) denote the transition probability Pr{^^|^} as afunction of ^.
[0210] Lemma 3: Function ^(^) is strictly decreasing in ^ and for a givepositive integer ^,is strictly decreasing in ^.
[0211] Proof: The first part is proved by showing ^(^ + 1) < ^(^) , oralternatively< 1. For simplicity of notation, letand ^ ≜ 1 +we can write=1,^ where the third row follows from the fact that ^^^^, being decreasing in ^ , ismaximum at ^ = 0, and the fourth row follows from having ^ > 1 (more precisely,we have ^ ≥ 3). Hence, ^(^) is strictly decreasing in ^.
[0212] The second part can be proved by showing^> 0. We have>0.
[0213] Let ^ ^ ^^,^ ≜ Pr{^ |^} , ∀^, ^ ∈ ℳ , where ℳ ≜ [0: 2 − 1] denotes themessage set (message space). It can be readily verified that the privacy loss ^ in thetransmission of the messages over a BSC(p) via Hamming codes iswhich can be as large aswhere ^ denotes the code block length and the subscript w stands for the worst casescenario, in which, two neighbouring codewords have the Hamming distance of ^, i.e., they differ in every bit position. In the context of differential privacy, the goal of a privacy-preserving mapping may be to make the adjacent datasets as indistinguishable as possible. Therefore, for transmission of the outputs of a counting query via Hamming codes, a heuristic approach to enhance the privacy,i.e., reducing the privacy loss, would be to make the adjacent codewords as closeas possible in terms of Hamming distance. Codewords may be therefore arranged such that any two neighbouring codewords have the distance of three. And, since this may be implemented by a permutation of the input messages, it does not affect the probability of error. Theorem 1: The minimum privacy loss in transmission of the outputs of a counting query over a BSC(p) via Hamming code (n, k) isand it may be achieved if and only if the codewords are arranged such that^^(^^, ^^^^) = 3, ∀^ ∈ [0: 2^ − 2]. Based on Lemmas 2 and 3 it is possible to proofTheorem 1 by showing that:1) For any arrangement in which any two adjacent codewords have the Hammingdistance of three, the privacy loss is as defined for ^∗above.2) For any arrangement in which there exist two neighbouring codewords thathave a Hamming distance greater than three, the privacy loss is strictly greater than ^∗.3) It is possible to construct an arrangement of codewords with minimumneighbouring distance of three.
[0214] FIG. 17 illustrates an example of a method for encoding. The methodmay be performed by an encoder, e.g., encoder device 310, UE 110, access node120, or by a control apparatus configured to control the functioning thereof, when installed therein.
[0215] At operation 1701, the method may comprise obtaining a message forencoding, the message belonging to a message space.
[0216] At operation 1702, the method may comprise encoding the messagebased on a Hamming code to obtain a codeword belonging to a codeword space, wherein the Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space.
[0217] At operation 1703, the method may comprise transmitting a signalcomprising the codeword.
[0218] FIG. 18 illustrates an example of a method for decoding. The methodmay be performed by a decoder, e.g., decoder device 320, UE 110, access node 120, or by a control apparatus configured to control the functioning thereof, when installed therein.
[0219] At operation 1801, the method may comprise receiving a signalcomprising a representation of a codeword belonging to a codeword space.
[0220] At operation 1802, the method may comprise decoding the representationof the codeword based on a Hamming code to obtain an estimate of a message belonging to a message space, wherein the Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space.
[0221] FIG. 19 illustrates an example of another method for encoding. Themethod may be performed by an encoder, e.g., encoder device 310, UE 110, access node 120, or by a control apparatus configured to control the functioning thereof, when installed therein.
[0222] At operation 1901, the method may comprise obtaining, by an encoderdevice, a first message for encoding, the first message belonging to a message space.
[0223] At operation 1902, the method may comprise communicating, with adecoder device, information indicative of a first Hamming code being configuredfor encoding the first message.
[0224] At operation 1903, the method may comprise encoding the first messagebased on the first Hamming code to obtain a first codeword belonging to a codeword space, wherein the first Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space.
[0225] At operation 1904, the method may comprise transmitting a signalcomprising the first codeword to the decoder device.
[0226] FIG. 20 illustrates an example of another method for decoding. Themethod may be performed by a decoder, e.g., decoder device 320, UE 110, access node 120, or by a control apparatus configured to control the functioning thereof, when installed therein.
[0227] At operation 2001, the method may comprise communicating, by adecoder device with an encoder device, information indicative of a first Hamming code being configured for encoding a first message by the encoder device, wherein the first message belongs to a message space.
[0228] At operation 2002, the method may comprise receiving, from the encoderdevice, a signal comprising a representation of a first codeword belonging to a codeword space and representing the first message.
[0229] At operation 2003, the method may comprise decoding the representationof the first codeword based on the first Hamming code to obtain an estimate of the first message, wherein the first Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space.
[0230] Further features of the methods directly result for example fromfunctionality of encoder 310, decoder 320, UE 110, access node(s) 120, 122, 124,as described throughout the description, claims, and drawings, and are therefore notrepeated here. An apparatus, for example a device such as encoder 310, decoder320, UE 110, or access node(s) 120, 122, 124, may be configured to perform orcause performance of any aspect of the method(s) described herein. Further, acomputer program or a computer program product may comprise instructions forcausing, when executed by an apparatus, the apparatus to perform any aspect of themethod(s) described herein. Further, an apparatus may comprise means forperforming any aspect of the method(s) described herein. According to an example embodiment, the means comprises at least one processor; and at least one memorystoring instructions that, when executed by the at least one processor, cause theapparatus at least to perform any aspect of the method(s).
[0231] Any range or device value given herein may be extended or alteredwithout losing the effect sought. Also, any embodiment may be combined withanother embodiment unless explicitly disallowed.
[0232] Although the subject matter has been described in language specific tostructural features and / or acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as examples of implementing the claims and other equivalent features and acts are intended to be within the scope of the claims.
[0233] It will be understood that the benefits and advantages described abovemay relate to one embodiment or may relate to several embodiments. Theembodiments are not limited to those that solve any or all of the stated problems orthose that have any or all of the stated benefits and advantages. It will further beunderstood that reference to 'an' item may refer to one or more of those items.
[0234] The steps or operations of the methods described herein may be carriedout in any suitable order, or simultaneously where appropriate.
[0235] Additionally, individual blocks may be deleted from any of the methodswithout departing from the scope of the subject matter described herein. Aspects ofany of the example embodiments described above may be combined with aspectsof any of the other example embodiments described to form further exampleembodiments without losing the effect sought.
[0236] The term 'comprising' is used herein to mean including the method,blocks, or elements identified, but that such blocks or elements do not comprise anexclusive list and a method or apparatus may contain additional blocks or elements.
[0237] As used herein, “at least one of the following: <a list of two or moreelements>” and “at least one of ” and similar wording, where the list of two or more elements are joined by “and” or “or”, mean at least any one of the elements, or at least any two or more of the elements, or atleast all the elements. Expression “or” may be understood as a non-exclusive “or”and therefore a list or two or more elements indicated to be mutually optional bythe expression ”or” means at least any one of the elements, or at least any two or more of the elements, or at least all the elements.
[0238] Although subjects may be referred to as ‘first’ or ‘second’ subjects, thisdoes not necessarily indicate any order or importance of the subjects. Instead, suchattributes may be used solely for the purpose of making a difference between subjects.
[0239] As used in this application, the term ‘circuitry’ may refer to one or moreor all of the following: (a) hardware-only circuit implementations (such as implementations in only analog and / or digital circuitry) and (b) combinations of hardware circuits and software, such as (as applicable):(i) a combination of analog and / or digital hardware circuit(s) with software / firmware and (ii) any portions of hardware processor(s) with software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions) and (c) hardware circuit(s) and or processor(s), such as a microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation. This definition of circuitry applies to all uses of this term in this application, including in any claims.
[0240] As a further example, as used in this application, the term circuitry alsocovers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and / or firmware. The term circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in server, a cellular network device, or other computing or network device.
[0241] It will be understood that the above description is given by way ofexample only and that various modifications may be made by those skilled in theart. The above specification, examples and data provide a complete description ofthe structure and use of exemplary embodiments. Although various embodimentshave been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could makenumerous alterations to the disclosed embodiments without departing from scope of this specification.
Claims
CLAIMS 1. A method, comprising:obtaining a message for encoding, the message belonging to a message space; encoding the message based on a Hamming code to obtain a codeword belonging to a codeword space, wherein the Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space; and transmitting a signal comprising the codeword.
2. The method according to claim 1, wherein the message comprises aninteger, and wherein a distance between adjacent integers of the message space is equal to one.
3. The method according to claim 2, further comprising:converting the integer to a bit sequence based on a mapping configured to map adjacent integers of the message space to adjacent bit sequences, wherein a Hamming distance between adjacent bit sequences is equal to one; and encoding the bit sequence as the message.
4. The method according to claim 1, wherein the message comprises a bitsequence, and wherein a Hamming distance between adjacent bit sequences of the message space is equal to one.
5. The method according to any of claims 1 to 4, wherein the codewordspace comprises bit sequences, and wherein a Hamming distance between the adjacent codewords is equal to a minimum distance of the Hamming code.
6. The method according to any of claims 1 to 5, wherein the Hammingcode is characterized by a parity-check matrix comprising a concatenation of a non-identity matrix and an identity matrix, and wherein columns of the non-identity matrix are ordered according to increasing or decreasing weight.
7. The method according to any of claims 1 to 5, wherein the Hammingcode is characterized by a generator matrix, wherein rows of the generator matrix comprise shifted versions of a binary representation of a generator polynomial of the Hamming code.
8. The method according to any of claims 1 to 7, further comprising:obtaining the message based on a counting query to a set of data.
9. The method according to any of claims 1 to 8, further comprising:privatizing the message based on a differential privacy algorithm before the encoding of the message.
10. A method, comprising:receiving a signal comprising a representation of a codeword belonging to a codeword space; and decoding the representation of the codeword based on a Hamming code to obtain an estimate of a message belonging to a message space, wherein the Hamming code is configured to map adjacent messages of the message space to adjacent codewords of the codeword space.
11. The method according to claim 10, wherein the message comprises aninteger, and wherein a distance between adjacent integers of the message space is equal to one.
12. The method according to claim 10, wherein the message comprises abit sequence, and wherein a Hamming distance between adjacent bit sequences of the message space is equal to one.
13. The method according to any of claims 10 to 12, wherein the codewordspace comprises bit sequences, and wherein a Hamming distance between the adjacent codewords is equal to a minimum distance of the Hamming code.
14. The method according to any of claims 10 to 13, wherein the Hammingcode is characterized by a parity-check matrix comprising a concatenation of a non- identity matrix and an identity matrix, and wherein columns of the non-identity matrix are ordered according to increasing or decreasing weight.
15. The method according to any of claims 10 to 13, wherein the Hammingcode is characterized by a generator matrix, wherein rows of the generator matrix comprise shifted versions of a binary representation of a generator polynomial of the Hamming code.
16. An apparatus comprising means for performing the method accordingto any of claims 1 to 15.
17. A computer program comprising instructions, which, when executed byan apparatus, cause the apparatus at least to performing the method according to any of claims 1 to 15.
18. A data structure embodied on computer-readable medium, the datastructure comprising: agenerator matrix of a Hamming code configured to map adjacent messagesof a message space to adjacent codewords of a codeword space.
19. A data structure embodied on computer-readable medium, the datastructure comprising: a parity-check matrix configured for decoding a Hamming code, wherein the Hamming code is configured to map adjacent messages of a message space to adjacent codewords of a codeword space.
Citation Information
Patent Citations
Device and method for detecting and correcting errors in a data stream
US7493550B1