Method, apparatus and computer program
By combining a noisy codeword with a proxy codeword and recovering the original message after decoding, the mechanism addresses security concerns in communication systems with untrusted decoders, ensuring message confidentiality.
Patent Information
- Application Number
- JP2025009696
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-25
- Filing Date
- 2025-01-23
- Publication Date
- 2025-08-06
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Communication systems face challenges in ensuring message security when using untrusted decoders, particularly due to the complexity of decoding processes and potential vulnerabilities from third-party hardware.
A mechanism is introduced to combine a noisy codeword with a proxy codeword to form a modified codeword, which is then decoded by an unreliable decoder, and the original message is recovered by removing the proxy message from the decoded output.
This approach enhances message confidentiality by ensuring that untrusted decoders cannot determine the original message, maintaining security even when using unreliable decoding processes.
Smart Images

Figure 2025115390000001_ABST
Abstract
Description
[Technical Field]
[0001] This application relates to an apparatus for providing a modified codeword to a decoder for decoding. [Background technology]
[0002] A communication system can be viewed as a facility that enables communication sessions between two or more entities, such as user terminals, base stations, and / or other nodes, by providing carriers between the various entities involved in the communication sessions. A communication system may be provided, for example, by a communication network and one or more compatible communication devices. A communication session may include, for example, communication of data to carry communications such as voice, video, electronic mail (email), text messages, multimedia and / or content data. Non-limiting examples of services provided include two-way or multi-way calls, data communication or multimedia services, and access to a data network system such as the Internet.
[0003] Communication systems and associated devices typically operate according to a given standard or specification that defines what various entities associated with the system are permitted to do and how that should be accomplished. The communication protocols and / or parameters used for connectivity are also typically defined. One example of a communication system is UTRAN (Universal Mobile Telecommunications System Terrestrial Radio Access Network (e.g., 3G Radio)). Other examples of communication systems are the Long Term Evolution (LTE) of the Universal Mobile Telecommunications System (UMTS) radio access technology and the so-called 5G or New Radio (NR) networks. NR is standardized by the 3rd Generation Partnership Project (3GPP). Summary of the Invention
[0004] According to a first aspect, there is provided a first apparatus including means for causing a modified codeword to be formed by combining a noisy codeword and a proxy codeword received over a channel, and providing the modified codeword to a decoder for decoding.
[0005] According to a second aspect, there is provided a first apparatus comprising at least one processor and at least one memory containing code that, when executed by the at least one processor, causes the first apparatus to form a modified codeword by combining a noisy codeword and a proxy codeword received over a channel, and to provide the modified codeword to a decoder for decoding.
[0006] According to a third aspect, there is provided a method for a first apparatus, comprising: forming a modified codeword by combining a noisy codeword and a proxy codeword received over a channel; and providing the modified codeword to a decoder for decoding.
[0007] According to a fourth aspect, there is provided a first apparatus including circuitry for forming a modified codeword by combining a noisy codeword and a proxy codeword received over a channel, and circuitry for providing the modified codeword to a decoder for decoding.
[0008] The following may be performed by any (for example, all) of the first to fourth aspects.
[0009] The first device may be caused to generate the proxy codeword by randomly selecting the proxy codeword based on a valid set of codewords.
[0010] Generating the proxy codeword may include selecting a code and generating a codeword based on the code.
[0011] The proxy codeword may correspond to a proxy message, and a device may be caused to provide the proxy message and / or the proxy codeword to another device.
[0012] The first device may have a determination made by the device that the decoder is unreliable, and providing the modified codeword to the decoder may include providing the modified codeword to the decoder based on a determination made by the device that the decoder is unreliable.
[0013] The first device may perform the steps of receiving a decoded message from the decoder, the decoded message including the original message and the proxy message, removing the proxy message from the decoded message to restore the original message, and providing the original message to the second device for processing.
[0014] According to a fifth aspect, there is provided a second apparatus including means for performing the steps of receiving, from a decoder, a decoded message including an original message and a proxy message, removing the proxy message from the decoded message to recover the original message, and processing the original message.
[0015] According to a sixth aspect, there is provided a second apparatus comprising at least one processor and at least one memory including code that, when executed by the at least one processor, causes the second apparatus to perform the steps of receiving a decoded message from a decoder, the decoded message including an original message and a proxy message; removing the proxy message from the decoded message to recover the original message; and processing the original message.
[0016] According to a seventh aspect, there is provided a method for a second device, comprising: receiving a decoded message from a decoder, the decoded message including an original message and a proxy message; removing the proxy message from the decoded message to restore the original message; and processing the original message.
[0017] According to an eighth aspect, there is provided a second apparatus including: a receiving circuit for receiving a decoded message from a decoder, the decoded message including an original message and a proxy message; a removal circuit for removing the proxy message from the decoded message to restore the original message; and a processing circuit for processing the original message.
[0018] The following may be performed by any (for example, all) of the fifth to eighth aspects.
[0019] The second device may perform the step of receiving a proxy message from the first device.
[0020] The second device may perform the step of receiving a proxy message from the first device having a corresponding proxy codeword.
[0021] The second device may be caused to generate a proxy codeword corresponding to the proxy message by randomly selecting the proxy codeword from a valid set of codewords.
[0022] Generating the proxy codeword may include selecting a code and generating the proxy codeword based on the code.
[0023] According to a ninth aspect, there is provided a decoder device including means for performing the steps of receiving, from another device, a modified codeword comprising a noisy codeword and a proxy codeword, determining a decoded message comprising an original message and a proxy message based on the modified codeword, and providing the decoded message to another entity.
[0024] According to a tenth aspect, there is provided a decoder device comprising at least one processor and at least one memory containing code that, when executed by the at least one processor, causes the decoder device to perform the steps of receiving, from another device, a modified codeword comprising a noisy codeword and a proxy codeword; determining a decoded message comprising an original message and a proxy message based on the modified codeword; and providing the decoded message to another entity.
[0025] According to an eleventh aspect, there is provided a method for a decoder device, comprising: receiving, from another device, a modified codeword comprising a noisy codeword and a proxy codeword; determining a decoded message comprising an original message and a proxy message based on the modified codeword; and providing the decoded message to another entity.
[0026] According to a twelfth aspect, there is provided a decoder apparatus including a receiving circuit for receiving modified codewords, including a noisy codeword and a proxy codeword, from another apparatus; a determining circuit for determining a decoded message, including an original message and a proxy message, based on the modified codewords; and a providing circuit for providing the decoded message to another entity.
[0027] In any (eg, all) of the ninth to twelfth aspects, the other entity may include another device.
[0028] According to a thirteenth aspect, there is provided a third apparatus comprising means for performing the steps of randomly selecting at least one of a proxy message or a proxy codeword, determining a proxy message-proxy codeword pair using the selected at least one of the proxy message or proxy codeword, and providing at least one of the paired proxy message or proxy codeword to another device.
[0029] According to a fourteenth aspect, there is provided a third apparatus comprising at least one processor and at least one memory containing code that, when executed by the at least one processor, causes the third apparatus to perform the steps of randomly selecting at least one of a proxy message or a proxy codeword, determining a proxy message-proxy codeword pair using the at least one selected proxy message or proxy codeword, and providing at least one of the paired proxy message or proxy codeword to another device.
[0030] According to a fifteenth aspect, there is provided a method for a third device, comprising the steps of randomly selecting at least one of a proxy message or a proxy codeword, determining a proxy message-proxy codeword pair using the at least one of the selected proxy message or proxy codeword, and providing at least one of the paired proxy message or proxy codeword to another device.
[0031] According to a sixteenth aspect, there is provided a third apparatus including: a selection circuit that randomly selects at least one of a proxy message or a proxy codeword; a determination circuit that determines a proxy message-proxy codeword pair using the at least one of the selected proxy message or proxy codeword; and a providing circuit that provides at least one of the paired proxy message or proxy codeword to another device.
[0032] The following may be performed by any (for example, all) of the thirteenth to sixteenth aspects.
[0033] The randomly selecting step may include randomly generating a number and performing the selecting step using the randomly generated number.
[0034] Determining the proxy message-proxy codeword pair may include performing at least one of the following steps: using a randomly selected proxy message and a lookup table to obtain a proxy codeword of the proxy message-proxy codeword pair; encoding the randomly selected proxy message to obtain a proxy codeword of the proxy message-proxy codeword pair; using a randomly selected proxy codeword and a lookup table to obtain a proxy message of the proxy message-proxy codeword pair; or encoding the randomly selected proxy codeword to obtain a proxy message of the proxy message-proxy codeword pair.
[0035] According to an aspect, there is provided a non-transitory computer-readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform at least a method according to any of the aforementioned aspects.
[0036] A number of different embodiments have been described above, and it should be understood that further embodiments may be provided by combining any two or more of the above-described embodiments. [Brief explanation of the drawings]
[0037] Embodiments will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0038] [Figure 1] 1 illustrates a diagram of a network system in accordance with some example embodiments. [Figure 2] 1 illustrates a diagram of a control device in accordance with some illustrative embodiments. [Figure 3] 1 illustrates a diagram of an apparatus according to some illustrative embodiments. [Figure 4] FIG. 1 illustrates an exemplary configuration. [Figure 5] FIG. 1 illustrates exemplary signaling. [Figure 6] FIG. 1 illustrates an exemplary configuration. [Figure 7] 10A-10C illustrate example operations that may be performed by devices described herein. [Figure 8] 10A-10C illustrate example operations that may be performed by devices described herein. [Figure 9] 10A-10C illustrate example operations that may be performed by devices described herein. [Figure 10] 10A-10C illustrate example operations that may be performed by devices described herein. DETAILED DESCRIPTION OF THE INVENTION
[0039] The following describes operations that may be performed in connection with providing mechanisms and apparatus for providing a more secure environment for decrypting received messages.
[0040] More specifically, the following discloses a mechanism for modifying a received noisy codeword with a proxy codeword to generate a modified codeword that is provided to a decoder. It should be understood that hereinafter, the term "proxy codeword" may alternatively be labeled as either a "substitutable codeword," a "nonce codeword," a "simulated codeword," a "dummy codeword," or a "generated codeword." The use of a modified codeword means that the decoder cannot recover the original message at the end of its decoding process. Instead, the decoder decodes the modified codeword to obtain a decoded message that includes both the original message and the proxy message. It should be understood that hereinafter, the term "proxy message" may alternatively be labeled as either a "substitutable message," a "nonce message," a "simulated message," a "dummy message," or a "generated message."
[0041] The system including the decoder is configured such that the decoder does not have knowledge of the proxy message and therefore cannot determine the original message from the determined decoded message. The system is further configured such that at least one other entity included in the system has knowledge of the proxy message, such that the at least one other entity can use its knowledge of the proxy message to recover the original message from the decoded message.
[0042] This process may be implemented in any of several different ways, some of which are described below.
[0043] For example, a receiver may receive a noisy codeword over a channel, modify the noisy codeword by combining it with a proxy codeword to generate a modified codeword, and provide the modified codeword to a decoder for decoding. The proxy codeword is paired with a proxy message. The combination may be linear (although it is understood that the combination may be nonlinear), and the noisy codeword may be encoded using a linear code. The output of the decoder includes a modified codeword that includes the proxy message and the original message (e.g., the desired message for processing). The decoder may return the modified message to the receiver or another device for processing. The modified message may be manipulated by the receiver or another device to remove the proxy message, thus returning the desired message. As part of this process, an entity is provided that randomly generates proxy message-proxy codeword pairs for use in this process and provides at least one of the paired proxy message or proxy codeword to the receiver or another device.
[0044] While these described mechanisms can be applied with respect to any decoder, they are particularly useful in untrusted decoders, since the addition of proxy codewords helps ensure the confidentiality of the original message. For example, the decoder may be provided by a chip produced by an untrusted manufacturer and / or by an untrusted remote entity, such as a device receiving the message.
[0045] While more detailed information regarding how received messages may be modified to form a modified system is provided below, the following provides a brief overview of some of the components of a potential communication environment with reference to a 3GPP communication system, although it should be understood that this is provided only to illustrate an exemplary communication environment and that the principles described herein may be deployed in other communication environments (e.g., in a Bluetooth environment, IEEE 802.11, etc.).
[0046] FIG. 1 illustrates an exemplary communication environment in which exemplary embodiments of the present disclosure may be implemented.
[0047] FIG. 1 illustrates an exemplary communication environment 100 in which exemplary embodiments of the present disclosure may be implemented.
[0048] In communication environment 100, multiple communication devices, including user devices 110 and 115 (also referred to herein as "terminals" or "terminal devices") and network device 120 (also referred to herein as a "network access node"), can communicate with each other. Network device 120 can serve a coverage area called a cell 125. User device 110 can access a communication network through cell 125. In some demonstrative embodiments, both user device 110 and network device 120 can be configured to implement beamforming techniques and communicate with each other via multiple beams.
[0049] The term "terminal device" refers to any end device that may be capable of wireless communication. By way of example and not limitation, a terminal device may also be referred to as a communication device, user equipment (UE), subscriber station (SS), portable subscriber station, mobile device, mobile station (MS), or access terminal (AT). Terminal devices may include, but are not limited to, mobile phones, cellular phones, smartphones, voice-over-IP (VoIP) phones, wireless local loop phones, tablets, wearable terminal devices, personal digital assistants (PDAs), portable computers, desktop computers, image capture terminal devices such as digital cameras, gaming terminal devices, music storage and playback equipment, vehicle-mounted wireless terminal devices, wireless endpoints, mobile stations, laptop embedded equipment (LEEs), laptop mounted equipment (LMEs), USB dongles, smart devices, wireless customer premises equipment (CPEs), machine-type communication (MTC) devices, Internet of Things (IoT) devices, watches or other wearables, head-mounted displays (HMDs), vehicles, drones, medical devices and applications (e.g., remote surgery), industrial devices and applications (e.g., robots and / or other wireless devices operating in industrial and / or automated processing chain contexts), consumer electronics devices, devices operating on commercial and / or industrial wireless networks, etc. Terminal devices may also correspond to the mobile termination (MT) portion of an IAB node (e.g., a relay node). In the following description, the terms "terminal device", "communication device", "terminal", "user device", "user equipment", and "UE" may be used interchangeably.
[0050] As used herein, the term "network device" is used interchangeably with "network access node" and refers to a node in a communication network through which a terminal device accesses the network and receives services therefrom. A network device may refer to a base station (BS) or access point (AP), e.g., a Node B (NodeB or NB), evolved Node B (eNodeB or eNB), NR NB (also referred to as gNB), remote radio unit (RRU), radio header (RH), remote radio head (RRH), relay, integrated access and backhaul (IAB) node, low power node such as femto, pico, non-terrestrial network (NTN) or non-terrestrial network device such as satellite network device, low Earth orbit (LEO) satellite and geosynchronous Earth orbit (GEO) satellite, airborne network device, etc., depending on the terminology and technology applied. In some exemplary embodiments, a Radio Access Network (RAN) split architecture comprises a centralized unit (CU) and a distributed unit (DU) at an IAB donor node. An IAB node comprises a mobile terminal (IAB-MT) portion that behaves like a UE towards a parent node, and a DU portion of the IAB node that behaves like a base station towards a next-hop IAB node.
[0051] In some demonstrative embodiments, a link from a network device 120 to a user device 110 or 115 is referred to as a DL, while a link from a user device 110 or 115 to a network device 120 is referred to as a UL. A link is also referred to herein as a "channel." In the DL, the network device 120 is a Tx device (or transmitter) and the user device 110 or 115 is an Rx device (or receiver). In the UL, the user device 110 or 115 is a Tx device (or transmitter) and the network device 120 is an Rx device (or receiver). A link between the user device 110 and another user device (not shown) is referred to as a sidelink (SL). In the SL, one of the user devices is a Tx device (or transmitter) and the other of the user devices is an Rx device (or receiver).
[0052] Communications in communication environment 100 may be implemented according to any suitable communications protocol, including, but not limited to, cellular communications protocols such as first generation (1G), second generation (2G), third generation (3G), fourth generation (4G), fifth generation (5G), sixth generation (6G), wireless local network communications protocols such as IEEE (Institute for Electrical and Electronics Engineers) 802.11, and / or any other protocols now known or developed in the future. Furthermore, communications may utilize any suitable wireless communications technology, such as, but not limited to, code division multiple access (CDMA), frequency division multiple access (FDMA), time division multiple access (TDMA), frequency division duplex (FDD), time division duplex (TDD), multiple input multiple output (MIMO), orthogonal frequency division multiple access (OFDM) discrete Fourier transform spread OFDM (DFT-s-OFDM), and / or any other technology now known or developed in the future.
[0053] FIG. 2 illustrates an example of a controller 200 for causing a network device 120 (such as the network device described in FIG. 1) to perform its operations. The controller may include at least one random access memory (RAM) 211a, at least one read-only memory (ROM) 211b, at least one processor 212, 213, and an input / output interface 214. The at least one processor 212, 213 may be coupled to the RAM 211a and the ROM 211b. The at least one processor 212, 213 may be configured to execute appropriate software code 215. The software code 215 may, for example, enable execution of one or more steps for carrying out one or more of the present aspects. The software code 215 may be stored in the ROM 211b. The controller 200 may be interconnected with other controllers 200 that control other functions of the network device. In some embodiments, each function of the network device comprises a controller 200. In some demonstrative embodiments, apparatus 200 may be implemented in or may be network device 120 .
[0054] 3 illustrates an example of a terminal 300, such as the user devices 110, 115 shown in FIG. 1. The terminal 300 may be provided by any device capable of transmitting and receiving wireless signals, such as the user devices described herein. The terminal 300 may provide, for example, communication of data for communication. The communication may be one or more of voice, electronic mail (email), text message, multimedia, data, machine data, etc.
[0055] The terminal 300 may receive signals via the air or wireless interface 307 via suitable equipment for receiving and may transmit signals via suitable equipment for transmitting wireless signals. In Figure 3, a transceiver unit is indicated schematically by block 306. The transceiver unit 306 may be provided, for example, by a radio unit and associated antenna equipment. The antenna equipment may be located inside or outside the mobile device.
[0056] The terminal 300 may comprise at least one processor 301, at least one memory ROM 302a, at least one RAM 302b, and other possible components 303 for use in software and hardware-assisted execution of tasks it is designed to perform, including controlling access to and communicating with an access system (such as the network access system provided by the network device described above in connection with FIGS. 1 and 2) and other communication devices. The at least one processor 301 is connected to the RAM 302b and the ROM 302a. The at least one processor 301 may be configured to execute appropriate software code 308. The software code 308 may, for example, enable one or more of the present aspects to be performed. The software code 308 may be stored in the ROM 302a.
[0057] The processor, memory and other associated controls may be provided on a suitable circuit board and / or within a chipset. This feature is indicated by reference 304. The device may optionally have a user interface such as a keypad 305, a touch-sensitive screen or pad, or a combination thereof. Optionally, one or more of a display, a speaker, and a microphone may be provided depending on the type of device.
[0058] In some demonstrative embodiments, the terminal 300 may be a device that includes at least one processor and at least one memory that stores instructions that, when executed by the at least one processor, cause the user device 110, 115 to perform examples or embodiments described herein.
[0059] One of the steps involved in communicating data between a transmitter and a receiver includes encoding the data for transmission over a medium in a channel encoder at the transmitter and decoding the received data in a channel decoder at the receiver. Encoding a signal can be useful for various purposes, including improving the security of the transmitted signal (e.g., from third-party interceptors) and improving the integrity of the transmitted signal (e.g., making it more likely that the signal will be correctly decoded at the receiver).
[0060] More specifically, when information (e.g., data traffic and / or control signals) is transmitted from a transmitter to a receiver, the information (e.g., data traffic and / or control signals) is often transmitted in coded form to make the transmission more secure.
[0061] Encoding is the process of converting information into a form that can be transmitted to another device. The encoded form of information is often called a "codeword." In other words, a transmitter forms a codeword by modifying an original message using an encoding mechanism and transmits the codeword over a channel to the transmitter. Often, modifying the original message (e.g., encoding the original message) involves inserting additional bits (such as parity bits, described further below) into the original message. Thus, the transmitted codeword is larger than the original message.
[0062] The codeword received at the receiver may differ from the codeword transmitted by the transmitter because the channel may have corrupted the transmitted codeword during transmission (e.g., by inserting additional bits, flipping binary bits, etc.). The codeword received at the transmitter is therefore called a "noisy codeword" because it corresponds to a combination of the transmitted codeword and channel noise.
[0063] For example, given the uncertainty of a noisy channel, a message W is transmitted through the noisy channel by using an encoding and decoding function. The encoder maps W to a predefined sequence of channel symbols of length n (e.g., the encoder maps W to a codeword to be transmitted). In its most basic model, the channel distorts each of these symbols independently from the others. The output of the channel (e.g., the noisy codeword) is fed to a decoder, which maps the sequence to an estimate of the original message.
[0064] In particular, when a receiver wishes to recover the original message, it uses a decoder to remove the additional bits from the received noisy codeword to recover the transmitted codeword, which is then transformed into the original message by removing the additional bits.
[0065] Encoding can be performed in several different ways, some of which are described below: Generally, the code used to encode data for transmission is selected based on the communications protocol being used (e.g., different communications protocol standards may specify which codes are available for use within that communications protocol), the capabilities of the transmitter and / or receiver, and the conditions of the communications medium over which the signal is transmitted.
[0066] The following are examples of codes that have been used to encode signals for transmission: repetition codes, parity codes, cyclic codes, Hamming codes, Reed-Muller codes, low-density parity-check (LDPC) codes, multi-dimensional parity-check codes, turbo codes, etc. It is understood that this list is not exhaustive. A brief description of these codes is provided below. A repetition code is a linear error-correcting code that transmits a signal multiple times. Repetition codes can be useful to assist a receiver in determining that a signal is being transmitted over a noisy channel, because the noisy channel can corrupt at least one of the redundant (e.g., repeated) signals. A parity code is an error-detection code that involves adding parity bits (also known as "check bits") to a transmitted signal to ensure that the number of bits is either even or odd (depending on the transmitter configuration). Because a noisy channel can corrupt the parity of a transmitted signal (e.g., instead of all having all even or all odd parity, the signal may have a mix of even and odd parity), parity codes can be useful in assisting a receiver in determining that a signal is being transmitted over a noisy channel. A cyclic code is a linear error-correcting code in which a cyclic shift of each codeword results in a different codeword, giving a different word belonging to that codeword. An exemplary cyclic shift might include, for example, making the least significant bit the most significant bit and shifting the remaining bits by one bit per iteration. The receiver can use knowledge of how the code shifts to correct bits that were received in error. A Hamming code is a linear error-correcting code that involves arranging error-correcting bits in a signal so that different erroneous bits produce different error results (which can therefore be used to identify the location of the error). The main idea is to select the error-correcting bits so that their index-XOR (e.g., the XOR of all bit positions containing a 1) is 0. A receiver may use a Hamming code to detect 1-bit and 2-bit errors, or to correct 1-bit errors without detecting the error. A Reed-Muller code is a linear error-correcting code that involves mapping a message to a set of codewords using a linear encoding function. A receiver can use this code to detect (and correct) errors by comparing the parity sums of multiple estimates for each of a set of estimates to determine whether the parity of the estimates matches. LDPC codes are linear error-correcting codes used to protect messages over noisy transmission channels. They are constructed using sparse Tanner graphs. A Tanner graph is a bipartite graph used to describe the constraints or equations that specify an error-correcting code (i.e., a graph whose vertices can be partitioned into two disjoint sets known as check nodes and variable nodes). A channel code can be completely described by an (M × N) parity-check matrix H (called the H matrix), where N represents the number of variable nodes (VN) (e.g., the length of the code block) and M represents the number of check nodes (CN). Check nodes can populate the rows of the H matrix, and variable nodes can populate the columns of the H matrix. A multidimensional parity check code is a linear error-correcting code that involves placing the message in a multidimensional grid and calculating the parity digit for each row and column by summing each column and column separately. A receiver can use this code to identify and correct bits under the assumption that only a single error occurred. Turbo codes are linear forward error-correcting codes that involve transmitting two redundant but distinct sub-blocks of parity bits with the payload. The decoder can use the outputs of multiple decoders (including weighted confidence values for the outputs) to reconcile the differences in the outputs.
[0067] Among these linear codes, LDPC codes and turbo codes have been very widely adopted in communication protocol standards and practices.
[0068] Note that many of these codes can be considered linear codes.
[0069] A linear code, by definition, has the following properties:
number
number
number
number
[0070] Therefore, a linear code is a linear transformation
number
number
[0071] Based on this,
number
number
[0072] for example,
number
number
[0073] Although there are a wide variety of linear codes available, the decoding block is consistently one of the most computationally complex functions in a wireless receiver. This is because the noise introduced by the channel when converting a transmitted codeword into a noisy codeword is difficult to predict accurately, and therefore determining which bits in a noisy codeword are due to the introduced noise is computationally intensive.
[0074] One (non-exhaustive) example of a mechanism used for channel decoding is Belief Propagation (BP) decoding. For practical hardware implementation, Belief Propagation decoding of polar codes has been widely studied due to its high throughput.
[0075] The belief propagation decoding mechanism treats each parity check that makes up a linear code (e.g., making up an LDPC) as an independent single parity check (SPC) code. Each SPC code is decoded separately using soft-in, soft-out (SISO) techniques and other derivatives. The soft decision information from each SISO decoding is cross-checked with other redundant SPC decodings of the same information bits and updated. Each SPC code is decoded again using the updated soft decision information. This process is repeated until a valid codeword is achieved or decoding is exhausted. This type of decoding is often called sum-product decoding. Decoding SPC codes is often called "check node" processing, and cross-checking variables is often called "variable node" processing.
[0076] In addition to the complexity of decryption, hardware supply chain security anticipates that hardware provided by third-party, untrusted entities may be used to decrypt received code words in future communication systems, especially with more advanced chips that accelerate decoding.
[0077] This is illustrated in the following three use cases considered below, although it should be understood that the mechanisms described here are not limited to these use cases: (1) In the first use case, consider an open radio access network (RAN) configuration where the radio frequency (RF) and part of the distributed unit (DU) baseband signal processing are provided by one vendor (trusted), while the decoding chip is provided by another vendor (very cheap, but untrusted hardware, e.g., malware, Trojans, etc.). In this scenario, the RF and baseband signal processing portions can use the techniques described herein to recover the original message from a received noisy codeword. A mechanism for addressing this use case is shown in Figures 4 and 5. (2) In the second use case, an Internet of Things (IoT) device (or any other low-cost device) may not be able to implement complex channel decoding and therefore decides to outsource this to an external decoder (e.g., located in a server, laptop, user equipment, etc.) A mechanism to address this use case is shown in Figures 5 and 6. (3) In the third use case, the home / private sub-network (e.g., user equipment such as watches, phones, laptops, etc.) may not be able to implement complex channel decoding and therefore decides to outsource this to an external decoder (e.g., located in the server, laptop, user equipment, etc.). Mechanisms to address this use case are shown in Figures 5 and 6.
[0078] In light of the anticipated outsourcing of decryption operations, the following considers mechanisms for improving the security of the decryption process, particularly when the decryption is performed by an untrusted decoder.
[0079] In particular, we propose below to exploit the linearity property mentioned above by generating proxy codewords based on the corresponding proxy messages.
[0080] The proxy codeword is combined with the received noisy codeword to form a modified codeword (e.g., by applying a one-time padding technique). In other words, the received noisy codeword is encoded (e.g., linearly encoded, such as linearly combined) with the proxy codeword to form the modified codeword. For this purpose, the proxy codeword may be considered (or otherwise rephrased) as a permutable mask. The proxy codeword (e.g., a permutable mask) may be randomly generated.
[0081] The modified codeword is then provided to a decoder, which performs a decoding process on the modified codeword to form a decoded message. The decoder is unaware that the decoded message consists of a combination of the original message and the proxy message. The decoder passes the decoded message to a trusted device by the receiver of the noisy codeword, which removes the proxy message from the decoded message to obtain the original message. The original message can then be processed (e.g., passed to at least one of a medium access control protocol level processing entity, a network protocol level processing entity, a transport protocol level processing entity, or a session protocol layer processing entity).
[0082] The proxy codewords are sometimes called "padding codewords." The proxy messages are sometimes called "padding messages."
[0083] While the above process may be useful for unreliable decoders, it should be understood that the techniques described herein may also be performed with respect to reliable decoders. Furthermore, the techniques described herein may be performed with respect to any type of decoder (e.g., belief propagation, successive cancellation decoding, maximum likelihood, etc.). The apparatus may use any mechanism and / or criteria for selecting a decoder to send the modified codeword to. For example, the apparatus may obtain information about the current state (e.g., available processing resources) of available decoders and use that information to select a decoder for decoding the modified codeword.
[0084] The following illustrates how the techniques described herein can be applied in a variety of different use cases.
[0085] The first use case relates to a radio access network node (e.g., a distributed unit) configured to have channel decoding performed using an untrusted decoder. This is illustrated with respect to FIG. 4.
[0086] FIG. 4 shows a terminal 401 configured to transmit an original codeword (corresponding to an original message) over a channel to a receiver 402 of a distributed unit.
[0087] The baseband unit 403 of the distributed unit is configured to perform baseband processing of a received version of the original codeword to determine a noisy codeword. The noisy codeword is then passed to the unreliable decoder 404 via a signal modifier 405. The signal modifier 405 is configured to add a proxy codeword to the noisy codeword to form a modified codeword, which is passed to the unreliable decoder 404. The proxy codeword corresponds to a proxy message. For example, the proxy codeword is formed using one-time padding of the proxy message.
[0088] The untrusted decoder 404 is configured to decode the modified codeword and output a decoded message. The decoded message is manipulated by an entity that recognizes the proxy message (e.g., a signal modifier or a device trusted by the signal modifier) to remove the proxy message to form the original message. The decoded codeword is then provided to another entity 406 for further processing (as described above). The other entity may comprise, for example, another trusted part of a distributed unit and / or a trusted centralized unit.
[0089] These operations can also be expressed as follows:
[0090] During the first step, a signal modifier 405 (eg, a one-time pad unit) is triggered by the radio unit to generate a random number.
[0091] During the second step, the codeword mask c m is then randomly selected by the signal modifier using a random number. The codeword mask is used to generate the proxy codewords.
number
[0092] For example, the second step is to send a proxy message (x m ) is randomly selected and the proxy message is encoded using the encoding scheme to obtain a proxy codeword (c m ) as a proxy message. m ) is randomly selected and the proxy codeword (c m ) It should be understood that these operations may be performed with an exchange of proxy messages and proxy codewords.
[0093] It should be understood that other mechanisms may be used to select at least one of the proxy codewords or proxy messages and use the selected information to obtain its corresponding pair (e.g., using a randomly selected proxy codeword to identify its corresponding proxy message, or using a randomly selected proxy message to identify its corresponding proxy codeword).
[0094] During the third step, the codeword c m is the noisy codeword c output by the baseband unit 403 r will be added.
[0095] During the fourth step, the received noisy c r and codeword c m The combination of is sent to a decoder 404. The decoder may comprise any type of decoder including, for example, a universal decoder.
[0096] During the fifth step, the decoder calculates the sum x of the original information to be recovered and the generated message. r +x m The decoded signal corresponding to the
[0097] During the sixth step, the decoded signal output x r +x m and known x m is x r is used to determine the original message encoded by the transmitter of
[0098] The second use case is shown in Figure 6.
[0099] In the example of Figure 6, the receiving unit outsources its channel decoding calculations to a decoder external to the receiving unit. This differs from the example of Figure 4, where the decoder may be included internal to the device. The decoder may comprise a server located locally to the receiving unit, e.g., a nearby terminal, or a server located remotely from the receiving unit (e.g., an entity included in a network).
[0100] 6 shows a terminal 601 configured to transmit a codeword corresponding to an original message to a receiving unit 602, which receives the transmitted signaling as a noisy codeword. The receiving unit 602 determines that an untrusted server 603 should perform decoding of the noisy codeword. This determination may be made based on a determination that the receiver does not have sufficient resources to decode the received signal and / or does not have sufficient resources to decode the received signal within a predetermined time duration.
[0101] Based on this determination, the receiving unit provides a modified codeword to the decoder. The modified codeword may be formed by combining a noisy codeword and a proxy codeword, as described above. The decoder decodes the modified codeword and outputs a decoded signal. The decoded signal is returned to the receiving unit 602. The receiving unit uses the decoded signal and knowledge of how the modified codeword was formed (e.g., of the proxy message corresponding to the proxy codeword) to obtain the original message from the terminal (e.g., obtain the original message corresponding to the transmitted codeword).
[0102] Thus, the steps involved in such an operation may be as follows:
[0103] During a first step, the receiving unit determines that a received noisy codeword should be decoded by the server 603. This may be based, for example, on determining that a metric indicates that the channel used to transmit the received noisy codeword is considered noisy.
[0104] For example, this decision to outsource decoding to server 603 may be based on a determination that the received noisy codeword has a low signal-to-noise ratio associated with it. A low signal-to-noise ratio may be identified by comparing a current signal-to-noise ratio measurement to a preconfigured threshold for signal-to-noise ratio and determining that the measured signal-to-noise ratio is low when the measurement is at or below the preconfigured threshold. It should be understood that the decision need not be based on signal-to-noise ratio, and that a similar decision to outsource decoding to server 603 may be made for any other metric that varies based on channel noise.
[0105] During the second step, the codeword mask c m is then randomly selected by the receiving unit using a random number. The codeword mask is used to generate the proxy codeword.
number
[0106] During the third step, the proxy codeword c m is the noisy codeword c r and the modified codeword c r +c mForm.
[0107] During the fourth step, the modified codeword c r +c m is sent to the server. The server performs the decryption process on the modified codeword and obtains x r +x m Output the decoded message.
[0108] During the fifth step, the server receives the decoded output x r +x m back to the receiving unit. The signaling of the fourth and fifth steps may be performed using any suitable signaling protocol and does not need to be further encoded for confidentiality.
[0109] During the sixth step, the decrypted message x r +x m receives a proxy message x m The receiving unit, knowing r Modify the decrypted message to output the received message of x, replacing the proxy message. r The received message may be processed like any other decoded signal, depending on the configuration of the receiving unit.
[0110] This signaling of FIGS. 4 and / or 6 is shown in FIG.
[0111] FIG. 5 shows signaling that may be performed between a trusted entity 501 (e.g., baseband unit 403 or device 602), a signal modifier 502 (e.g., signal modifier 405 or device 602), and a decoder 503 (e.g., decoder 403 or 603).
[0112] During 5001, the signal modifier 502 sends a random (e.g., proxy) message (x m ) and a random (e.g., proxy) codeword (c mThe generated random message and random code word are (x m ,c m ) pair. m ,c m ) is signaled to trusted entity 501 during 5002. This signaling can be performed internal to the device (e.g., via a bus) when the signal modifier and the trusted entity are included in the same device.
[0113] During 5003, the trusted entity generates a random codeword c m is the signal x received through a noisy channel. r The noisy codeword c corresponding to the codeword r The modified codeword (c r +c m )
[0114] Modified codeword c r +c m is then signaled from the trusted entity 501 to the decoder 503 during 5004.
[0115] During 5005, the decoder 503 uses the received modified codeword to decode the received signal (x r ) and the generated message (x m ) and the received modified codeword (c r +c m ) and x r +x m Determine the decrypted message of
[0116] During 5006, the decoder 503 signals the trusted entity 501 (or some other trusted party that can perform similar functions as 5006-5007). This signaling is r +x mThe message may include a decoded message of
[0117] The trusted entity 501 receives the message x r To get x r +x m The message (x m The trusted entity 501 then subtracts the received message (x r ) and take action based on the message received.
[0118] Features of the above-described example devices will now be described with reference to Figures 7 to 9. It will be appreciated that at least one of the following features may have a functional correspondence with functions performed by the above-described devices, and that the above examples will therefore be helpful in understanding at least some of the ways in which the features described below may be implemented.
[0119] 7 illustrates operations that may be performed by a first device. The first device may include a device that operates to form a modified codeword. For example, in the example above, the device may include signal modifier 405 (and / or a combination of baseband unit 403 and signal modifier 405), signal modifier 502, and / or receiving unit 602. The first device may include a standalone chipset. The first device may also be configured as part of another device (e.g., a receiver, a user device, a network device, etc.).
[0120] During 701, the first device forms a modified codeword by combining a noisy codeword received over a channel with a proxy codeword. In other words, the received noisy codeword is encoded (e.g., linearly encoded, such as linearly combined) using the proxy codeword to form the modified codeword. For this purpose, the proxy codeword may be considered as (or otherwise referred to as) a commutative mask. The proxy codeword (e.g., a commutative mask) may be randomly generated.
[0121] The noisy codeword may be formed by a combination of channel noise (originating from transmission over the channel from the transmitter to the first device) and an original codeword that has been encoded for transmission over the channel (e.g., channel coded). The original codeword may have been encoded for transmission over the channel using a linear code.
[0122] During 702, the first device provides the modified codeword to a decoder for decoding.
[0123] The decoder may be local to the first device (e.g., the modified codeword is provided to the decoder via a bus or the like). The decoder may be remote from the first device (e.g., the decoder may be located in a device separate from the first device). When the decoder is located remotely from the first device, the modified codeword may be provided to the decoder by signaling it over another communication channel and / or communication link.
[0124] The first device may generate the proxy codeword by randomly selecting a proxy codeword based on a valid set of codewords, in other words, the proxy codeword may be paired with or otherwise correspond to the selected codeword.
[0125] For example, the first device may generate the proxy codeword by selecting a code and generating a codeword based on the code. The selected code may be a one-time padding code. The code may be a proxy message.
[0126] The first device may provide the selected code (e.g., a proxy message) and / or the proxy codeword to at least one other device. For example, in the example of FIG. 4, the first device may provide at least the proxy codeword and the proxy message (e.g., the selected code) to the device of the centralized unit. As another example, the first device may provide the proxy codeword to another part of the receiving unit (e.g., receiving unit 602) when the first device is included in the receiving unit.
[0127] The first device may determine that the decoder is untrustworthy by the device and, based on the determination that the decoder is untrustworthy by the device, perform the step of causing the decoder to provide the modified codeword. However, it should be understood that the modified codeword may alternatively be provided to a trusted decoder. Whether the decoder is deemed trusted may be determined by at least one criterion configured in the first device. For example, the decoder may be deemed untrustworthy when located remotely from the first device. As another example, the decoder may be deemed untrustworthy when manufactured by a different manufacturer (and / or by a different operator) than the decoder of the first device.
[0128] The device may receive a decoded message from the decoder, the decoded message including the original message and the proxy message, remove the proxy message from the decoded message to recover the original message, and provide the original message to a second device for processing. For example, in the above example, the first device may include a distributed unit and the second device may include a centralized unit. The centralized unit may process the original message. The original message may include, for example, a form of information encoded for channel transmission by the transmitter.
[0129] Figure 8 illustrates operations that may be performed by a second device. The second device may be standalone (e.g., remote) from the first device of Figure 7. For example, the second device may be the centralized unit in the example of Figure 4. The second device may be local to the first device of Figure 7. For example, the first and second devices may both be configured as part of the receiving unit 602 in the example of Figure 6.
[0130] During 801, the device receives a decoded message from the decoder, the decoded message including the original message and the proxy message. The original message may comprise, for example, a form of information encoded for channel transmission by the transmitter.
[0131] During 802, the device removes the proxy message from the decrypted message to recover the original message.
[0132] During 803, the device processes the original message.
[0133] The device may receive a proxy message from a first device, which may comprise, for example, the first device of FIG.
[0134] The second device may receive a proxy message from the first device along with a corresponding proxy codeword. In other words, the second device may receive a proxy message-proxy codeword pair. The proxy codeword may have a one-to-one mapping with the proxy message at the first device.
[0135] When the second device is local to the first device, the second device may perform at least one of the functions performed by the first device. For example, the second device may generate a proxy message-proxy codeword pair. In other words, the second device may generate a proxy codeword corresponding to a proxy message by randomly selecting a proxy codeword from a valid set of codewords. Generating a proxy codeword may include selecting a code (e.g., a one-time padding code and / or a proxy message) and generating a proxy codeword based on the code. The second device may provide the proxy message and the proxy codeword to another device.
[0136] 9 illustrates operations that may be performed by a decoder device, which may comprise a decoder as described above in relation to either FIG.
[0137] During 901, the decoder device receives a modified codeword comprising a noisy codeword and a proxy codeword from a first device. The first device may comprise the first device of FIG. 7.
[0138] During 902, the decoder device determines a decoded message comprising the original message and the proxy message based on the modified codeword.
[0139] During 903, the device provides the decoded message to a second device, which may comprise the second device of FIG.
[0140] The second device may be located locally relative to the first device. For example, the second device may include the first device. This may correspond to an exemplary configuration similar to FIG. 6. The second device may be located remotely from the second device. This may correspond to an exemplary configuration similar to FIG. 4.
[0141] 9 may be located remotely from the first device and / or the second device. For example, the decoder may include an application server (e.g., an edge application server) that provides decoding services to clients.
[0142] 10 illustrates operations that may be performed by a third device. The third device may correspond to a standalone generator of proxy message-proxy codeword pairs. For example, the third device may be the signal modifier 405 described above.
[0143] During 1001, the third device randomly selects at least one of the proxy message or proxy codeword. The random selection may be initiated (e.g., triggered) in response to at least one request for this generation from an entity (e.g., the first device described above in connection with FIG. 7) that received the noisy codeword over the channel.
[0144] During 1002, a third device determines a proxy message-proxy codeword pair using the selected at least one of the proxy message or the proxy codeword.
[0145] During 1003, the third device provides at least one of the paired proxy messages or proxy codewords to another device. The other device may comprise the first device of Figure 7. The other device may comprise the second device of Figure 8.
[0146] The random selection may include generating a number and performing the selection using the randomly generated number. For example, the generated number may be used as an index to identify at least one of a proxy message or a proxy codeword. As another example, the generated number may be used as a proxy message or a proxy codeword.
[0147] Determining the proxy message-proxy codeword pair may include performing at least one of the following steps: using a randomly selected proxy message and a lookup table to obtain a proxy codeword of the proxy message-proxy codeword pair; encoding the randomly selected proxy message to obtain a proxy codeword of the proxy message-proxy codeword pair; using a randomly selected proxy codeword and a lookup table to obtain a proxy message of the proxy message-proxy codeword pair; or encoding the randomly selected proxy codeword to obtain a proxy message of the proxy message-proxy codeword pair.
[0148] [Technical clauses] a method for a first device, the method comprising: forming an altered codeword by combining a noisy codeword and a proxy codeword received over a channel; and providing the altered codeword to a decoder for decoding; a method for a second device, the method comprising: receiving a decoded message from a decoder, the decoded message comprising an original message and a proxy message, removing the proxy message from the decoded message to recover the original message, and processing the original message; a method for a decoder device, the method comprising: receiving an altered codeword from another device, the altered codeword comprising a noisy codeword and a proxy codeword, determining a decoded message comprising the original message and the proxy message based on the altered codeword, and providing the decoded message to another entity; and a method for a third device, the method comprising: randomly selecting at least one of a proxy message or a proxy codeword, determining a proxy message-proxy codeword pair using at least one of the selected proxy message or proxy codeword, and providing at least one of the paired proxy message or proxy codeword to another device. 1. A computer program comprising instructions, which, when executed by a computer of a first device, cause the computer to form a modified codeword by combining a noisy codeword and a proxy codeword received over a channel, and provide the modified codeword to a decoder for decoding.a computer program comprising instructions, when executed by a computer in a second device, that cause the computer to receive from a decoder a decoded message comprising an original message and a proxy message, remove the proxy message from the decoded message to recover the original message, and process the original message; a computer program comprising instructions, when executed by a computer in a decoder device, that cause the computer to receive from another device modified codewords comprising a noisy codeword and a proxy codeword, determine a decoded message comprising the original message and the proxy message based on the modified codeword, and provide the decoded message to another entity; a computer program comprising instructions, when executed by a computer in a third device, that cause the computer to randomly select at least one of a proxy message or a proxy codeword, determine a proxy message-proxy codeword pair using at least one of the selected proxy message or proxy codeword, and provide at least one of the paired proxy message or proxy codeword to another device.
[0149] It is understood above that if the decoder is located remotely from the receiver (e.g., in the example where the modified codeword is provided to the decoder via a transmission medium (e.g., Bluetooth, Wi-Fi, etc.)), some encryption may be omitted since the modified codeword corresponds to an already encoded signal. This can therefore save additional processing resources and reduce system complexity.
[0150] It is to be understood that the apparatus may comprise or be coupled to other units or modules, such as radio components or radio heads, used in or for transmitting and / or receiving. Although the apparatus has been described as one entity, the different modules and memories may be implemented in one or several physical or logical entities.
[0151] It should be noted that although some embodiments have been described in the context of 5G networks, similar principles may be applied in the context of other networks and communication systems. Thus, although some embodiments have been described above by way of example with reference to some exemplary architectures for wireless networks, technologies, and standards, the embodiments may be applied to any other suitable form of communication system other than those shown and described herein.
[0152] It should also be noted that although exemplary embodiments have been described above, there are several variations and modifications that can be made to the disclosed solution without departing from the scope of the present invention.
[0153] As used herein, "at least one of, a list of two or more elements," "at least one of a list of two or more elements," and similar phrases, where a list of two or more elements is joined by "and" or "or," mean at least one of the elements, or at least any two or more of the elements, or at least all of the elements.
[0154] In general, various embodiments may be implemented in hardware or special-purpose circuits, software, logic, or any combination thereof. Some aspects of the present disclosure may be implemented in hardware, and other aspects may be implemented in firmware or software that may be executed by a controller, microprocessor, or other computing device, although the present disclosure is not limited thereto. Although various aspects of the present disclosure may be illustrated and described as block diagrams, flowcharts, or using some other pictorial representations, it will be appreciated that these blocks, apparatus, systems, techniques, or methods described herein may be implemented in, by way of non-limiting example, hardware, software, firmware, special-purpose circuits or logic, general-purpose hardware or controller or other computing device, or some combination thereof.
[0155] As used in this application, the term "circuit" may refer to one or more or all of the following: (a) Hardware-only circuit implementation (e.g., implementation using only analog and / or digital circuits) (b) a combination of hardware circuitry and software (where applicable); (c) combinations of analog and / or digital hardware circuitry and software / firmware; (d) Any portion of hardware processors (including digital signal processors) with software, software, and memory that cooperate to cause a device such as a mobile phone or server to perform various functions. (e) A hardware circuit and / or processor, such as a microprocessor or portion of a microprocessor, that requires software (e.g., firmware) for operation, and when not required for operation, the software may not be present.
[0156] This definition of circuit applies to all uses of the term in this application, including any claims. As a further example, the term circuit, as used in this application, also encompasses simply a hardware circuit or processor (or processors), or a portion of a hardware circuit or processor, as well as its (or their) accompanying software and / or firmware implementations. The term circuit also encompasses, for example, a baseband or processor integrated circuit for a mobile device, or a similar integrated circuit in a server, cellular network device, or other computing or network device, if applicable to certain claim elements.
[0157] Embodiments of the present disclosure may be implemented by computer software executable by a data processor of a mobile device, such as in a processor entity, or by hardware, or by a combination of software and hardware. Computer software or programs, also referred to as program products, including software routines, applets, and / or macros, may be stored on any device-readable data storage medium and include program instructions for performing specific tasks. A computer program product may comprise one or more computer-executable components configured to perform embodiments when the program is executed. The one or more computer-executable components may be at least one software code or portion thereof.
[0158] Further, in this regard, it should be noted that any block of logic flow as in the figures may represent a program step, or interconnected logic circuits, blocks, and functions, or a combination of program steps and logic circuits, blocks, and functions. Software may be stored on physical media such as memory chips or memory blocks implemented within a processor, magnetic media such as hard disks or floppy disks, and optical media such as DVDs and their data variants, CDs, etc. Physical media are non-transitory media.
[0159] The term "non-transitory" as used herein is a limitation of the medium itself (ie, tangible rather than signal) as opposed to a limitation on data storage permanence (eg, RAM vs. ROM).
[0160] The memory may be of any type suitable for the local technology environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed and removable memory, etc. The data processor may be of any type suitable for the local technology environment and may comprise, by way of non-limiting examples, one or more of a general purpose computer, a special purpose computer, a microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), an FPGA, a gate-level circuit, and a processor based on a multi-core processor architecture.
[0161] Embodiments of the present disclosure may be implemented in a variety of components, such as integrated circuit modules. The design of integrated circuits is largely a highly automated process. Complex and powerful software tools are available to convert logic-level designs into semiconductor circuit designs ready to be etched and formed on semiconductor substrates.
[0162] The scope of protection sought for various embodiments of the present disclosure is indicated by the independent claims. Embodiments and features described herein that do not fall within the scope of the independent claims, if any, should be interpreted as examples useful for understanding various embodiments of the present disclosure.
[0163] The foregoing description has provided a complete and informative description of the illustrative embodiments of the present disclosure, by way of non-limiting example. However, various modifications and adaptations will become apparent to those skilled in the art in light of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. However, all such and similar variations of the teachings of the present disclosure will still fall within the scope of the present invention as defined by the appended claims. Indeed, further embodiments exist that involve combinations of one or more of the embodiments with any of the other embodiments discussed above.
Claims
1. A first device comprising at least one processor and at least one memory containing code that, when executed by the at least one processor, causes the first device to: forming a modified codeword by combining a noisy codeword and a proxy codeword received over a channel; and providing the modified codeword to a decoder for decoding.
2. 2. The first device of claim 1, wherein the at least one processor and the at least one memory include code that, when executed by the at least one processor, further causes the first device to perform the step of generating the proxy codeword by randomly selecting the proxy codeword based on a valid set of codewords.
3. 3. The first apparatus of claim 2, wherein generating the proxy codeword comprises selecting a code and generating the codeword based on the code.
4. 3. The first device of claim 1, wherein the proxy codeword corresponds to a proxy message, and wherein the at least one processor and the at least one memory include code that, when executed by the at least one processor, causes the first device to further perform the step of providing the proxy message and the proxy codeword to another device.
5. 3. The first device of claim 1 or 2, wherein the at least one processor and the at least one memory include code that, when executed by the at least one processor, causes the first device to further perform a step of determining that the decoder is not trusted by the device, and wherein the step of providing the modified codeword to the decoder includes a step of providing the modified codeword to the decoder based on the determination that the decoder is not trusted by the device.
6. The at least one processor and the at least one memory, when executed by the at least one processor, cause the first device to: receiving a decrypted message from the decoder, the decrypted message including the original message and the proxy message; removing the proxy message from the decrypted message to recover the original message; 3. The first device of claim 1, further comprising code for causing the first device to perform the steps of: providing the original message to a second device for processing.
7. a second device comprising at least one processor and at least one memory containing code that, when executed by the at least one processor, causes the second device to: receiving a decrypted message from the decoder, the decrypted message including the original message and the proxy message; removing the proxy message from the decrypted message to recover the original message; and processing the original message.
8. 8. The second device of claim 7, wherein the at least one processor and the at least one memory include code that, when executed by the at least one processor, causes the second device to further perform generating a proxy codeword corresponding to the proxy message by randomly selecting the proxy codeword from a valid set of codewords, wherein generating the proxy codeword includes selecting a code and generating the proxy codeword based on the code.
9. 1. A decoder apparatus comprising at least one processor and at least one memory containing code that, when executed by the at least one processor, causes the decoder apparatus to: receiving modified codewords from another device, the modified codewords including the noisy codewords and the proxy codewords; determining a decoded message, including an original message and a proxy message, based on the modified codeword; and providing the decoded message to another entity.
10. a third device comprising at least one processor and at least one memory containing code that, when executed by the at least one processor, causes the third device to: randomly selecting at least one of a proxy message or a proxy codeword; determining a proxy message-proxy codeword pair using at least one of the selected proxy message or proxy codeword; and providing at least one of the proxy messages or proxy codewords of the pair to another device.
11. The step of determining a proxy message-proxy codeword pair comprises: using the randomly selected proxy message and a lookup table to obtain the proxy codeword of the proxy message-proxy codeword pair; encoding the randomly selected proxy message to obtain the proxy codeword of the proxy message-proxy codeword pair; using the randomly selected proxy codeword and a lookup table to obtain the proxy message of the proxy message-proxy codeword pair; or 11. The third apparatus of claim 10, further comprising: performing at least one of the steps of: encoding the randomly selected proxy codeword to obtain the proxy message of the proxy message-proxy codeword pair.
Citation Information
Patent Citations
Device and method for ciphering
JP1999112479A