Method, apparatus and computer program
By generating proxy codewords and noise codewords in the communication system to form modified codewords, the problem of original message confidentiality caused by untrusted decoder is solved, and secure decoding in an untrusted decoder environment is realized.
Patent Information
- Application Number
- CN202510108892.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-01-25
- Filing Date
- 2025-01-23
- Publication Date
- 2025-07-25
AI Technical Summary
In a communication system, when the decoder is provided by untrusted hardware, the confidentiality of the original message is difficult to guarantee, especially during the outsourcing channel decoding process, the decoding complexity and hardware security of the noise codewords are prominent.
By generating a proxy codeword combined with a noise codeword to form a modified codeword and providing it to the decoder to decode, the decoder fails to recognize the proxy message in the original message, thereby restoring the original message at the channel receiver.
Improves the security of the decoding process in the communication system and ensures the confidentiality of the original message. Even if the decoder is not trusted, it can effectively restore the original message.
Smart Images

Figure CN120378046A_ABST
Abstract
Description
Technical Field
[0001] This application relates to an apparatus for causing a modified codeword to be provided to a decoder for decoding. Background Art
[0002] A communication system can be regarded as a facility that enables a communication session between two or more entities (such as user terminals, base stations, and / or other nodes) by providing a carrier between the various entities involved in the communication session. A communication system can be provided, for example, by a communication network and one or more compatible communication devices. A communication session can include, for example, a data communication for carrying communication data such as voice, video, email, text messages, multimedia, and / or content data. Non-limiting examples of the 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 the various entities associated with the system are allowed to do and how they should be implemented. The communication protocols and / or parameters to be used for the connection are also typically defined. An 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) network. NR is being standardized by the Third Generation Partnership Project (3GPP). Summary of the Invention
[0004] According to a first aspect, there is provided a first apparatus, the first apparatus including components for performing the following: causing a modified codeword to be formed by combining a noisy codeword with a proxy codeword, the noisy codeword being received through a channel; and causing the modified codeword to be provided to a decoder for decoding.
[0005] According to a second aspect, there is provided a first apparatus, the first apparatus including: at least one processor; and at least one memory including code that, when executed by the at least one processor, causes the first apparatus to perform: causing a modified codeword to be formed by combining a noisy codeword with a proxy codeword, the noisy codeword being received through a channel; and causing the modified codeword to be provided to a decoder for decoding.
[0006] According to a third aspect, there is provided a method for a first apparatus, the method including: causing a modified codeword to be formed by combining a noisy codeword with a proxy codeword, the noisy codeword being received through a channel; and causing the modified codeword to be provided to a decoder for decoding.
[0007] According to a fourth aspect, there is provided a first apparatus, the first apparatus comprising: an inducing circuitry for causing a modified codeword to be formed by combining a noisy codeword with a proxy codeword, the noisy codeword being received via a channel; and an inducing circuitry for causing the modified codeword to be provided to a decoder for decoding.
[0008] The following may be performed by any one (e.g., all) of the first to fourth aspects.
[0009] The first apparatus may be caused to perform: generating a proxy codeword by randomly selecting a proxy codeword based on a set of valid 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 the apparatus may be caused to perform: providing the proxy message and / or the proxy codeword to another apparatus.
[0012] The first apparatus may be caused to perform: determining that the decoder is not trusted by the apparatus, wherein causing the modified codeword to be provided to the decoder may include: causing the modified codeword to be provided to the decoder based on the determination that the decoder is not trusted by the apparatus.
[0013] The first apparatus may be caused to perform: receiving a decoded message including an original message and a proxy message from the decoder; removing the proxy message from the decoded message to recover the original message; and causing the original message to be provided to a second apparatus for processing.
[0014] According to a fifth aspect, there is provided a second apparatus, the second apparatus comprising components for performing the following: receiving a decoded message including an original message and a proxy message from the decoder; 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, the second apparatus comprising at least one processor; and at least one memory, the at least one memory including code which, when executed by the at least one processor, causes the second apparatus to perform: receiving a decoded message including an original message and a proxy message from the decoder; 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 apparatus, the method comprising: receiving a decoded message including an original message and a proxy message from the decoder; removing the proxy message from the decoded message to recover the original message; and processing the original message.
[0017] According to an eighth aspect, a second apparatus is provided. The second apparatus includes: a receiving circuitry for receiving a decoded message including an original message and a proxy message from a decoder; a removing circuitry for removing the proxy message from the decoded message to recover the original message; and a processing circuitry for processing the original message.
[0018] The following can be performed by any one (e.g., all) of the above fifth to eighth aspects.
[0019] The second apparatus can be caused to perform: receiving a proxy message from a first apparatus.
[0020] The second apparatus can be caused to perform: receiving a proxy message with a corresponding proxy codeword from a first apparatus.
[0021] The second apparatus can be caused to perform: generating a proxy codeword corresponding to the proxy message by randomly selecting a proxy codeword from a set of valid codewords.
[0022] Generating the proxy codeword can include: selecting a code and generating the proxy codeword based on the code.
[0023] According to a ninth aspect, a decoder apparatus is provided. The decoder apparatus includes components for performing the following: receiving a modified codeword including a noisy codeword and a proxy codeword from another apparatus; 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.
[0024] According to a tenth aspect, a decoder apparatus is provided. The decoder apparatus includes: at least one processor; and at least one memory including code which, when executed by the at least one processor, causes the decoder apparatus to perform: receiving a modified codeword including a noisy codeword and a proxy codeword from another apparatus; 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.
[0025] According to an eleventh aspect, a method for a decoder apparatus is provided. The method includes: receiving a modified codeword including a noisy codeword and a proxy codeword from another apparatus; 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.
[0026] According to a twelfth aspect, a decoder apparatus is provided, including: a receiving circuitry for receiving a modified codeword including a noisy codeword and a proxy codeword from another apparatus; a determining circuitry for determining a decoded message including an original message and a proxy message based on the modified codeword; and a providing circuitry for providing the decoded message to another entity.
[0027] In any aspect (e.g., all aspects) of the ninth to twelfth aspects, another entity may include another device.
[0028] According to a thirteenth aspect, there is provided a third device including components for performing the following: randomly selecting at least one of a proxy message or a proxy codeword; using at least one of the selected proxy message or proxy codeword to determine a proxy message - proxy codeword pair; and providing at least one of the proxy message or proxy codeword of the pair to another device.
[0029] According to a fourteenth aspect, there is provided a third device including: at least one processor; and at least one memory including code which, when executed by the at least one processor, causes the third device to perform: randomly selecting at least one of a proxy message or a proxy codeword; using at least one of the selected proxy message or proxy codeword to determine a proxy message - proxy codeword pair; and providing at least one of the proxy message or proxy codeword of the pair to another device.
[0030] According to a fifteenth aspect, there is provided a method for a third device, the method including: randomly selecting at least one of a proxy message or a proxy codeword; using at least one of the selected proxy message or proxy codeword to determine a proxy message - proxy codeword pair; and providing at least one of the proxy message or proxy codeword of the pair to another device.
[0031] According to a sixteenth aspect, there is provided a third device including: a selection circuitry for randomly selecting at least one of a proxy message or a proxy codeword; a determination circuitry for using at least one of the selected proxy message or proxy codeword to determine a proxy message - proxy codeword pair; and a provision circuitry for providing at least one of the proxy message or proxy codeword of the pair to another device.
[0032] The following may be performed by any one (e.g., all) of the above thirteenth to sixteenth aspects.
[0033] Random selection may include: randomly generating a number; and using the randomly generated number to perform the selection.
[0034] Determining the proxy message - proxy codeword pair may include performing at least one of the following: using the randomly selected proxy message and a look-up 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 look-up table to obtain the proxy message of the proxy message - proxy codeword pair; or encoding the randomly selected proxy codeword to obtain the proxy message of the proxy message - proxy codeword pair.
[0035] According to one aspect, there is provided a non-transitory computer-readable medium including program instructions that, when executed by a device, cause the device to perform at least the method according to any of the foregoing aspects.
[0036] Above, many different embodiments have been described. It should be understood that additional embodiments may be provided by any combination of two or more of the foregoing embodiments. BRIEF DESCRIPTION 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 A representation of a network system according to some example embodiments is shown;
[0039] Figure 2 A representation of a control device according to some example embodiments is shown;
[0040] Figure 3 A representation of a device according to some example embodiments is shown;
[0041] Figure 4 An example configuration is shown;
[0042] Figure 5 An example signaling is shown;
[0043] Figure 6 An example configuration is shown;
[0044] Figure 7 An example operation that can be performed by the devices described herein is shown;
[0045] Figure 8 An example operation that can be performed by the devices described herein is shown;
[0046] Figure 9 An example operation that can be performed by the devices described herein is shown; and
[0047] Figure 10 An example operation that can be performed by the devices described herein is shown. DETAILED DESCRIPTION
[0048] The operations that can be performed are described below, and these operations relate to mechanisms and devices for providing a more secure environment for decoding received messages.
[0049] More specifically, mechanisms for modifying a received noisy codeword using a surrogate codeword to produce a modified codeword that is provided to a decoder are disclosed below. It should be understood hereinafter that the term "surrogate codeword" hereinafter may alternatively be labeled any one of "replaceable codeword", "random codeword", "simulated codeword", "virtual codeword", or "generated codeword". Using the 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 a surrogate message. It should be understood hereinafter that the term "surrogate message" hereinafter may alternatively be labeled any one of "replaceable message", "random number message", "simulated message", "virtual message", or "generated message".
[0050] A system including a decoder is configured such that the decoder does not have knowledge of the surrogate message and thus cannot determine the original message from the determined decoded message. The system is also configured such that at least one other entity included in the system has knowledge of the surrogate message. Thus, at least one other entity can use its knowledge of the surrogate message to recover the original message from the decoded message.
[0051] The process can be implemented in any one of a number of different ways, some of which are described below.
[0052] For example, a receiver can receive a noisy codeword via a channel, modify the noisy codeword by combining it with a surrogate codeword to produce a modified codeword, and provide the modified codeword to a decoder for decoding. The surrogate codeword is paired with a surrogate message. The combination can be linear (although it is understood that the combination can be non-linear), and the noisy codeword may have been encoded using a linear code. The output of the decoder includes the modified codeword, which includes the surrogate message and the original message (e.g., the desired message for processing). The decoder can cause the modified message to be provided back to the receiver or another device for processing. The modified message can be manipulated by the receiver or another device to remove the surrogate message, thus returning the desired message. As part of this process, an entity is provided that randomly generates a surrogate message-surrogate codeword pair for use in the process and causes at least one of the surrogate message or surrogate codeword of the pair to be provided to the receiver or another device.
[0053] Although the described mechanisms can be applied to any aspect of a decoder, they are particularly useful in the context of an untrusted decoder because the addition of the surrogate codeword helps to ensure the confidentiality of the original message. For example, the decoder can be provided by a chip manufactured by an untrusted manufacturer and / or by a remote entity that is not trusted by the device receiving the message.
[0054] Although more details on how the received messages can be modified to form a modified system are provided below, some of the components of a potential communication environment are briefly outlined below with reference to a 3GPP communication system. However, it should be understood that this is provided only to illustrate an example communication environment, and the principles described currently can be deployed in other communication environments (e.g., in a Bluetooth environment, IEEE 802.11, etc.).
[0055] Figure 1 An example communication environment in which example embodiments of the present disclosure can be implemented is shown.
[0056] Figure 1 An example communication environment 100 in which example embodiments of the present disclosure can be implemented is shown.
[0057] 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 "network access node")) can communicate with each other. Network device 120 can serve a coverage area referred to as cell 125. User device 110 can have access to the communication network via cell 125. In some example embodiments, both user device 110 and network device 120 can be configured to implement beamforming techniques and communicate with each other via multiple beams.
[0058] The term "terminal device" refers to any terminal device 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, smart phones, Internet Protocol voice (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 devices, in-vehicle wireless terminal devices, wireless endpoints, mobile stations, laptop embedded equipment (LEE), laptop mounted equipment (LME), USB dongles, smart devices, wireless client equipment (CPE), machine type communication (MTC) devices, Internet of Things (IoT) devices, watches or other wearable devices, head-mounted displays (HMDs), vehicles, drones, medical devices and applications (such as remote surgery), industrial devices and applications (such as robots and / or other wireless devices operating in the context of an industrial and / or automation processing chain), consumer electronic devices, devices operating on commercial and / or industrial wireless networks, etc. A terminal device may also correspond to the mobile terminal (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.
[0059] As used herein, the terms "network device" and "network access node" are used interchangeably and refer 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 an access point (AP), e.g., Node B (NodeB or NB), evolved Node B (eNodeB or eNB), NR NB (also referred to as gNB), remote radio unit (RRU), radio head (RH), remote radio head (RRH), relay, integrated access and backhaul (IAB) node, low power node (such as femto node, pico node), non-terrestrial network (NTN) or non-ground network device (such as satellite network device, low earth orbit (LEO) satellite, and geosynchronous orbit (GEO) satellite), aircraft network device, etc., depending on the terminology and technology applied. In some example embodiments, a radio access network (RAN) split architecture includes a central unit (CU) and a distributed unit (DU) at an IAB donor node. An IAB node includes a mobile terminal (IAB-MT) portion that behaves like a UE towards a parent node, and the DU portion of the IAB node behaves like a base station towards the next-hop IAB node.
[0060] In some example embodiments, the link from network device 120 to user device 110 or 115 is referred to as DL, while the link from user device 110 or 115 to network device 120 is referred to as UL. The link is also referred to as a "channel" herein. In DL, network device 120 is the Tx device (or transmitter), and user device 110 or 115 is the Rx device (or receiver). In UL, user device 110 or 115 is the Tx device (or transmitter), and network device 120 is the Rx device (or receiver). The link between user device 110 and another user device (not shown) is referred to as a sidelink (SL). In SL, one of the user devices is the Tx device (or transmitter), and the other user device is the Rx device (or receiver).
[0061] Communication in communication environment 100 can be implemented according to any suitable communication protocol(s), including but not limited to cellular communication protocols of the first generation (1G), second generation (2G), third generation (3G), fourth generation (4G), fifth generation (5G), sixth generation (6G), etc., wireless local area network communication protocols such as Institute of Electrical and Electronics Engineers (IEEE) 802.11, and / or any other protocol known currently or to be developed in the future. Additionally, the communication can utilize any suitable wireless communication technology, including but not limited to: Code Division Multiple Access (CDMA), Frequency Division Multiple Access (FDMA), Time Division Multiple Access (TDMA), Frequency Division Duplexing (FDD), Time Division Duplexing (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 known currently or to be developed in the future.
[0062] Figure 2 An example of a control device 200 for causing network device 120 (such as Figure 1 the network device described therein) to perform its operations is shown. The control device 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. At least one processor 212, 213 may be coupled to RAM 211a and ROM 211b. At least one processor 212, 213 may be configured to execute appropriate software code 215. The software code 215 may, for example, allow execution of one or more steps to perform one or more aspects herein. The software code 215 may be stored in ROM 211b. The control device 200 may be interconnected with another control device 200 that controls another function of the network device. In some embodiments, each function of the network device includes a control device 200. In some exemplary embodiments, the device 200 may be implemented at network device 120 or may be network device 120.
[0063] Figure 3 illustrates an example of a terminal 300, such as Figure 1 the user equipment 110, 115 shown above. The terminal 300 can be provided by any device capable of sending and receiving radio signals, such as the user equipment described herein. The terminal 300 can provide, for example, data communication for carrying communications. The communication can be one or more of voice, email, text message, multimedia, data, machine data, etc.
[0064] The terminal 300 can receive signals via a suitable means for reception over the air or radio interface 307 and can send signals via a suitable means for sending radio signals. In Figure 3 this case, the transceiver means is schematically represented by block 306. The transceiver means 306 can be provided, for example, by radio components and an associated antenna arrangement. The antenna arrangement can be disposed inside or outside the mobile device.
[0065] The terminal 300 can be provided with at least one processor 301, at least one memory ROM 302a, at least one RAM 302b, and other possible components 303 for software and hardware assistance in performing the tasks it is designed to perform, including control of access to and communication with an access system (such as the network access system provided by the network device described above with respect to Figure 1 and Figure 2 and other communication devices. The at least one processor 301 is coupled to the RAM 302b and the ROM 302a. The at least one processor 301 can be configured to execute appropriate software code 308. The software code 308 can, for example, allow the execution of one or more aspects of the present disclosure. The software code 308 can be stored in the ROM 302a.
[0066] The processor, memory, and other associated control means can be provided on a suitable circuit board and / or chipset. This feature is represented by reference numeral 304. The device can optionally have a user interface, such as a keyboard 305, a touch screen or touchpad, a combination thereof, etc. Optionally, one or more of a display, a speaker, and a microphone can be provided depending on the type of the device.
[0067] In some exemplary embodiments, the terminal 300 can be a device including at least one processor and at least one memory, the at least one memory storing instructions that, when executed by the at least one processor, cause the user equipment 110, 115 to perform the examples or embodiments described in this document.
[0068] One of the steps involved in transmitting data between a transmitter and a receiver includes: encoding the data at a channel encoder at the transmitter for transmission over a medium, and decoding the received data at a channel decoder at the receiver. The encoded signal can be used for various purposes, including enhancing the security of the transmitted signal (e.g., from a third-party interceptor) and enhancing the integrity of the transmitted signal (e.g., making it more likely that the signal will be correctly decoded at the receiver).
[0069] More specifically, when information (e.g., data traffic and / or control signals) is sent from a transmitter to a receiver, it is typically sent in an encoded form in order to make the transmission more secure.
[0070] Encoding is the process of converting information into a form that can be sent to another device. The encoded form of the information is typically referred to as a "codeword". In other words, the transmitter forms a codeword by modifying the original message using an encoding mechanism and sends the codeword over the channel to the receiver. Typically, the modification of the original message (e.g., the encoding of the original message) involves inserting additional bits (such as parity bits, as described below) into the original message. Thus, the transmitted codeword is larger than the original message.
[0071] The codeword received at the receiver may be different from the codeword sent by the transmitter because the channel may have corrupted the transmitted codeword during transmission (e.g., by inserting additional bits, flipping binary bits, etc.). Thus, the codeword received at the receiver is referred to as a "noisy codeword" because it corresponds to the combination of the transmitted codeword and the noise of the channel.
[0072] For example, considering the noise channel uncertainty, a message W is sent over a noisy channel by using encoding and decoding functions. The encoder maps W to a predefined sequence of channel symbols of length n (e.g., the encoder maps W to the codeword to be transmitted). In its most basic model, the channel distorts each of these symbols independently of the other symbols. The output of the channel (e.g., the noisy codeword) is fed into the decoder, which maps the sequence into an estimate of the original message.
[0073] Specifically, when the receiver wants to recover the original message, the receiver uses the decoder to remove the additional bits from the received noisy codeword to recover the transmitted codeword. Then the transmitted codeword is converted to the original message by removing the additional bits.
[0074] Encoding can be performed in a number of different ways, some of which are described below. Generally, the code used to encode the data for transmission is selected based on the following: the communication protocol being used (e.g., because different communication protocol standards may specify which codes can be used for that communication protocol), the capabilities of the transmitter and / or receiver, and the conditions of the communication medium through which the signal is being sent.
[0075] Examples of codes that have been used to encode signals for transmission include: repetition codes, parity codes, cyclic codes, Hamming codes, Reed-Muller codes, low-density parity-check (LDPC) codes, multidimensional parity codes, and turbo codes. It should be understood that this list is not exhaustive. A brief description of these codes is provided below.
[0076] · A repetition code is a linear error-correcting code that involves transmitting the signal multiple times. Repetition codes may help the receiver determine if the signal was transmitted over a noisy channel, as the noisy channel may corrupt at least one of the redundant (e.g., repeated) signals.
[0077] · A parity code is an error-detection code that involves adding parity bits (also known as "check bits") to the signal being transmitted to ensure that the number of bits is even or odd (depending on the transmitter's configuration). Parity codes may help the receiver determine if the signal was transmitted over a noisy channel, as the noisy channel may corrupt the parity of the transmitted signal (e.g., the signal may include a mix of even and odd parity instead of all having all-even or all-odd parity).
[0078] · A cyclic code is a linear error-correcting code where a cyclic shift of each codeword provides another codeword, thus giving another word that belongs to the code. Examples of cyclic shifts can include, for example, for each iteration, making the least significant bit the most significant bit and shifting the remaining bits by one bit. The receiver can use its knowledge of how the code will shift to correct bits that have been received in error.
[0079] · A Hamming code is a linear error-correcting code that involves arranging error-correcting bits within the signal such that different error bits produce different error results (and can thus be used to identify the location of the error). The main idea is to select the error-correcting bits such that the index-XOR (e.g., the XOR of all bit positions containing 1) is 0. The receiver can use the Hamming code to detect single-bit and two-bit errors, or to correct single-bit errors without detecting the error.
[0080] · A Reed-Muller code is a linear error-correcting code that involves mapping a message to a codeword using a linear coding function. The receiver can use the code to detect (and correct) errors by comparing the parity sums of multiple sets of multiple evaluation points for each set of multiple evaluation points to identify if the parity of those evaluation points is consistent.
[0081] · LDPC codes are a type of linear error-correcting codes that are used to protect messages over noisy transmission channels. They are constructed using sparse Tanner graphs. A Tanner graph is a bipartite graph that is used to state the constraints or equations of a specified error-correcting code (e.g., a graph whose vertices can be divided into two separate sets, called check nodes and variable nodes). A channel code can be fully described by an (M X N) parity-check matrix H (referred to as 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). The check nodes can fill the rows of the H-matrix, and the variable nodes can fill the columns of the H-matrix.
[0082] · Multiple-dimensional parity-check codes are a type of linear error-correcting codes that involve arranging a message into a multi-dimensional grid and calculating parity-check bits for each row and column by separately summing each column and row. A receiver can use this code to identify and correct bits, assuming that only one error has occurred.
[0083] · Turbo codes are a type of linear forward error-correcting codes that involve transmitting two redundant but different sub-blocks of parity-check bits along with the payload. The decoder can use the outputs of multiple decoders (the weighted confidence values contained in the outputs) to reconcile the differences in the outputs.
[0084] Among these linear codes, LDPC codes and Turbo codes are widely adopted in communication protocol standards and practices.
[0085] It is worth noting that many of these codes are considered linear codes.
[0086] By definition, a linear code has the following property: Let be a linear code of dimension k. If the k columns of the matrix span C, then it is called a generator matrix for C. The generator matrix G provides a method to encode a message into a codeword .
[0087] Therefore, a linear code has an encoding mapping which is the linear transformation x → Gx.
[0088] Based on this, if then c1 + c2 = G(x1 + x2). This property of linear codes allows for linear decoding of the encoded messages.
[0089] For example, when represents the decoding process, then the linearity of encoding means: D(G(x1 + x2)) = x1 + x2.
[0090] Although there are various linear codes available, decoding blocks is always one of the most computationally complex functions in a wireless receiver. This is because when converting the transmitted codeword into a noisy codeword, the noise introduced by the channel is difficult to accurately predict, so it is computationally intensive to determine which bits in the noisy codeword can be attributed to the introduced noise.
[0091] A (non-exhaustive) example of a mechanism used for channel decoding is belief propagation (BP) decoding. For practical hardware implementations, belief propagation decoding for polar codes has been widely studied due to its high throughput.
[0092] The belief propagation decoding mechanism treats each parity check that constitutes a linear code (e.g., constitutes an LDPC) as an independent single parity check (SPC) code. Each SPC code is separately decoded using soft input soft output (SISO) techniques and their derivatives. The soft decision information from each SISO decoding is cross-checked and updated with other redundant SPC decodings of the same information bits. Then each SPC code is decoded again using the updated soft decision information. This process is iterated until a valid codeword is obtained or the decoding is exhausted. This decoding is usually referred to as sum-product decoding. The decoding of the SPC code is usually referred to as "check node" processing, and the cross-check of variables is usually referred to as "variable node" processing.
[0093] In addition to decoding complexity, due to hardware supply chain security, it is expected that in future communication systems, hardware provided by a third-party untrusted entity can be used to decode received codewords. This is especially true for more complex chips for accelerating decoding.
[0094] This is shown below, three use cases are considered below, although it is understood that the mechanisms described currently are not limited to these use cases:
[0095] 1) In the first use case, an open radio access network (RAN) setup is considered, where parts of the radio frequency (RF) and distributed unit (DU) baseband signal processing are provided by one supplier (trusted), while the decoding chip is provided by another supplier (extremely cheap but untrusted hardware, such as malware, trojans, etc.). In this case, the RF and baseband signal processing parts can use the techniques described currently to recover the original message from the received noisy codeword. The mechanisms for solving this use case are for Figure 4 and Figure 5 shown.
[0096] 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, so it is determined to outsource it to an external decoder (e.g., located on a server, laptop, user device, etc.). The mechanisms for solving this use case are forFigure 5 and Figure 6 are shown.
[0097] 3) In the third use case, a home / private sub-network (e.g., user equipment such as a watch, phone, laptop) may not be able to perform complex channel decoding, and thus it is determined to outsource it to an external decoder (e.g., located on a server, laptop, user equipment, etc.). The mechanism for solving this use case is directed at Figure 5 and Figure 6 are shown.
[0098] Given the outsourcing of the expected decoding operations, mechanisms for enhancing the security of the decoding process are considered below, especially when the decoding is performed by an untrusted decoder.
[0099] Specifically, it is proposed below to utilize the above linear property by generating a proxy codeword based on a corresponding proxy message.
[0100] The proxy codeword is combined with the received noisy codeword to form a modified codeword (e.g., by applying a one-time pad technique). In other words, the received noisy codeword is encoded (e.g., linearly encoded, such as linearly combined) using the proxy codeword to form a modified codeword. To this end, the proxy codeword can be regarded as (or otherwise re-named as) a replaceable mask. The proxy codeword (e.g., replaceable mask) can be randomly generated.
[0101] Subsequently, the modified codeword is provided to a decoder, which performs a decoding process on the modified codeword to form a decoded message. The decoder does not know that the decoded message includes a combination of the original message and the proxy message. The decoder passes the decoded message to a device trusted by the receiver of the noisy codeword, which removes the proxy message from the decoded message to obtain the original message. Subsequently, the original message can be processed (e.g., passed to at least one of the following: a media 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).
[0102] The proxy codeword can be referred to as a "padding codeword". The proxy message can be referred to as a "padding message".
[0103] Although the above process may be useful for an untrusted decoder, it should be understood that the currently described technique can also be performed for a trusted decoder. In addition, the currently described technique can be performed for any type of decoder (e.g., belief propagation, successive cancellation decoding, maximum likelihood, etc.). The device can use any mechanism and / or criterion to select the decoder to which the modified codeword is to be sent. For example, the device can obtain information about the current state of the available decoders (e.g., available processing resources) and use this information to select the decoder for decoding the modified codeword.
[0104] The following describes how the presently described technology can be applied to various different use cases.
[0105] The first use case involves a radio access network node (e.g., a distributed unit) that is configured to have channel decoding performed using an untrusted decoder. This is illustrated with reference Figure 4 as shown.
[0106] Figure 4 A terminal 401 is shown, configured to send an original codeword (corresponding to an original message) to a receiver 402 of the distributed unit via a channel.
[0107] The baseband unit 403 of the distributed unit is configured to perform baseband processing of the received version of the original codeword to determine a noisy codeword. Subsequently, the noisy codeword is passed to the untrusted decoder 404 via a signal modifier 405. The signal modifier 405 is configured to have a proxy codeword added to the noisy codeword to form a modified codeword, and the modified codeword is passed to the untrusted decoder 404. The proxy codeword corresponds to a proxy message. For example, the proxy codeword is formed using a one-time pad of the proxy message.
[0108] The untrusted decoder 404 is configured to decode the modified codeword and output a decoded message. The decoded message is manipulated by an entity (e.g., the signal modifier or a device trusted by the signal modifier) that knows the proxy message to remove the proxy message to form the original message. Subsequently, the decoded codeword is provided to another entity 406 for further processing (as described above). The other entity can include, for example, another trusted part of the distributed unit and / or a trusted central unit.
[0109] These operations can also be represented as follows.
[0110] During a first step, the signal modifier 405 (e.g., a one-time pad unit) is triggered by the radio unit to generate a random number.
[0111] During a second step, a codeword mask c m is then randomly selected by the signal modifier using the random number. The codeword mask is selected to include a uniform distribution over all codeword sets generated by G to generate a proxy codeword. The proxy codeword (c m ) and the corresponding proxy message (x m ) are paired and saved in a memory as (x m , c m ).
[0112] For example, the second step can be performed by randomly selecting a proxy message (x m) and encode the proxy message using an encoding scheme to form a proxy codeword (c m ) to execute. As another example, the second step can be performed by randomly selecting a proxy message (x m ) and forming a proxy codeword (c m ) by using a lookup table and the proxy message as an index to identify the proxy codeword. It should be understood that these operations can be performed with the proxy message and the proxy codeword swapped.
[0113] It can be understood that other mechanisms can be used to select at least one of the proxy codeword or the proxy message, and use the selected information to obtain its corresponding pair (for example, 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).
[0114] During the third step, the codeword c m is added to the noise codeword c r output by the baseband unit 403.
[0115] During the fourth step, the combination of the received noise c r and the codeword c m is sent to the decoder 404. The decoder can include, for example, any type of decoder, including a general decoder.
[0116] During the fifth step, the decoder outputs a decoded signal x r +x m corresponding to the sum of the original information to be recovered and the generated message.
[0117] During the sixth step, the decoded signal output x r +x m and the known x m are used to determine the original message x r encoded by the transmitter.
[0118] A second use case is shown for Figure 6 .
[0119] In Figure 6 's example, the receiving unit outsources its channel decoding calculation to a decoder external to the receiving unit. This is different from Figure 4 's example, in Figure 4 's example, the decoder can be included inside the device. The decoder can include, for example, a server local to the receiving unit, such as a nearby terminal, or a server remote to the receiving unit (such as an entity included in a network).
[0120] Figure 6A terminal 601 is shown, configured to send a codeword corresponding to an original message to a receiving unit 602, and the receiving unit 602 receives the sent signaling as a noisy codeword. The receiving unit 602 determines that an untrusted server 603 should perform decoding of the noisy codeword. This determination can be made based on a determination of the following: 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 duration.
[0121] Based on this determination, the receiving unit provides a modified codeword to a decoder. The modified codeword can be formed by a combination of the noisy codeword and a proxy codeword as described above. The decoder decodes the modified codeword to output a decoded signal. The decoded signal is provided back to the receiving unit 602. The receiving unit uses the decoded signal and knowledge of how the modified codeword was formed (e.g., a proxy message corresponding to the proxy codeword) to obtain the original message from the terminal (e.g., obtain the original message corresponding to the sent codeword).
[0122] Thus, the steps involved in such an operation can be as follows.
[0123] During a first step, the receiving unit determines that the received noisy codeword will be decoded by the server 603. This can be based on, for example, a determination of the following: a metric indicates that the channel used to send the received noisy codeword is considered noisy.
[0124] For example, this determination to outsource decoding to the server 603 can be based on determining that the received noisy codeword has a low signal-to-noise ratio associated with it. The low signal-to-noise ratio can be identified by comparing a measured value of the current signal-to-noise ratio with a preconfigured threshold of the signal-to-noise ratio, and it is determined that the measured signal-to-noise ratio is low when the measured value is equal to or less than the preconfigured threshold. It should be understood that this determination does not have to be based on the signal-to-noise ratio, and a similar determination to outsource decoding to the server 603 can be made for any other metric that varies based on channel noise.
[0125] During a second step, a codeword mask c m is subsequently randomly selected by the receiving unit using a random number. The codeword mask is selected to include a uniform distribution over the entire set of codewords generated by G in to generate a proxy codeword. The proxy codeword (c m ) and the corresponding proxy message (x m ) are paired and saved in a memory as (x m , c m ). The selection of the pairing of the proxy codeword and the proxy message can be as described above.
[0126] During a third step, the proxy codeword c m is added to the noisy codeword c r to form a modified codeword cr +c m 。
[0127] During the fourth step, the modified codeword c r +c m is sent to the server. The server performs a decoding process on the modified codeword to output the decoded message x r +x m 。
[0128] During the fifth step, the server sends the decoding output x r +x m of the decoder back to the receiving unit. The signaling for the fourth and fifth steps can be performed using any suitable signaling protocol and does not need to be further encoded for confidentiality.
[0129] During the sixth step, upon receiving the decoded message x r +x m and knowing the surrogate message x m , the receiving unit modifies the decoded message to replace the surrogate message, thereby outputting the received message x r 。Depending on the configuration of the receiving unit, the received message can be x r processed in the same manner as any other decoded signal.
[0130] Figure 4 and / or the signaling for 6 is shown for Figure 5 is shown.
[0131] Figure 5 The signaling that can be performed between the trusted entity 501 (e.g., baseband unit 403 or device 602), the signal modifier 502 (e.g., signal modifier 405 or device 602), and the decoder 503 (e.g., decoder 403 or 603) is shown.
[0132] During 5001, the signal modifier 502 generates a random (e.g., surrogate) message (x m ) and a random (e.g., surrogate) codeword (c m ) from the set of valid codewords. The generated random message and random codeword are stored as (x m , c m ). During 5002, (x m , c m ) is signaled to the trusted entity 501. When the signal modifier and the trusted entity are included in the same device, this signaling can be performed inside the device (e.g., via a bus).
[0133] During 5003, the trusted entity combines the random codeword c m with the noise codeword c rare added to create a modified codeword (c r + c m ), where the noisy codeword c r corresponds to the codeword for the signal (x r ) received via a noisy channel.
[0134] Subsequently, during 5004, the modified codeword c r + c m is signaled from the trusted entity 501 to the decoder 503.
[0135] During 5005, the decoder 503 uses the received modified codeword to determine a "modified" message that corresponds to the sum of the received signal (x r ) and the generated message (x m ). In other words, during 5005, the decoder uses the received modified codeword (c r + c m ) to determine the decoded message x r + x m .
[0136] During 5006, the decoder 503 signals to the trusted entity 501 (or another trusted party that can perform functions similar to 5006 through 5007). This signaling may include the decoded message x r + x m .
[0137] The trusted entity 501 subtracts the generated message (x r + x m ) from the decoded message x m to obtain the received message (x r ). The trusted entity 501 then processes the received message (x r ) and performs an action based on the received message.
[0138] The features of the apparatus of the above example are illustrated below with reference to Figures 7 to 9 It can thus be understood that at least one of the features mentioned below can be found to have a functional correspondence with the functions performed by the apparatus above, such that the above example aids in understanding at least some of the ways in which the following features can be performed.
[0139] Figure 7Illustrate operations that can be performed by a first device. The first device may include means for causing a modified codeword to be formed. For example, in the above example, the means may include a baseband signal modifier 405 (and / or a combination of the baseband unit 403 and the signal modifier 405), a signal modifier 502, and / or a receiving unit 602. The first device may include an independent chipset. The first device may be part of another device (e.g., a receiver, a user equipment, a network device, etc.).
[0140] During 701, the first device forms a modified codeword by combining a noise codeword received through a channel with a proxy codeword. In other words, the received noise codeword is encoded (e.g., linearly encoded, such as a linear combination) using the proxy codeword to form the modified codeword. For this purpose, the proxy codeword may be regarded as (or otherwise re - referred to as) a replaceable mask. The proxy codeword (e.g., replaceable mask) may be randomly generated.
[0141] The noise codeword may have been formed by a combination of channel noise (resulting from transmission through the channel from a transmitter to the first device) and an original codeword (e.g., channel - coded) encoded for transmission through the channel. The original codeword may have been encoded using a linear code for transmission through the channel.
[0142] During 702, the first device causes the modified codeword to be provided to a decoder for decoding.
[0143] The decoder may be local to the first device (e.g., the modified codeword is supplied to the decoder via a bus or the like). The decoder may be remote from the first device (e.g., the decoder may be in another device of the first device). When the decoder is remote from the first device, the modified codeword may be provided to the decoder by signaling the decoder over another communication channel and / or communication link.
[0144] The first device may generate a proxy codeword by randomly selecting a proxy codeword based on a set of valid codewords. In other words, the proxy codeword may be paired with or otherwise correspond to the selected code.
[0145] For example, the first device may generate a proxy codeword by selecting a code and generating a codeword based on that code. The selected code may be a one - time pad code. The code may be a proxy message.
[0146] The first device may provide the selected code (e.g., proxy message) and / or the proxy codeword to at least one other device. For example, in Figure 4In an example, the first device may provide at least a proxy codeword and a proxy message (e.g., a selected code) to the device of the centralized unit. As another example, when the first device is included in the receiving unit, the first device may provide a proxy codeword to another part of the receiving unit (e.g., the receiving unit 602).
[0147] The first device may determine that the decoder is not trusted by the device and perform providing a modified codeword to the decoder based on the determination that the decoder is not trusted by the device. However, it should be understood that the modified codeword may also be provided to a trusted decoder. Whether the decoder is considered trusted may be determined by at least one criterion configured at the first device. For example, when the decoder is located far from the first device, it may be considered untrusted. As another example, when the decoder is manufactured by a different manufacturer (and / or by a different operator) from the first device, it may be considered untrusted.
[0148] The device may receive a decoded message including an original message and a proxy message from the decoder, remove the proxy message from the decoded message to recover the original message, and cause the original message to be provided to a second device for processing. For example, in the above example, the first device may include a distributed unit, while the second device includes a centralized unit. The centralized unit may process the original message. The original message may include, for example, information in a form encoded by a transmitter for channel transmission.
[0149] Figure 8 Operations that may be performed by the second device are shown. The second device may be independent of Figure 7 the first device (e.g., remote). For example, the second device may be Figure 4 the centralized unit in the example. The second device may be located Figure 7 locally to the first device. For example, both the first and second devices may be part of Figure 6 the receiving unit 602 in the example.
[0150] During 801, the device receives a decoded message including an original message and a proxy message from the decoder. The original message may include, for example, information in a form encoded by a transmitter for channel transmission.
[0151] During 802, the device removes the proxy message from the decoded message to recover the original message.
[0152] During 803, the device processes the original message.
[0153] The device may receive a proxy message from the first device. The first device may include, for example, Figure 7 the first device of
[0154] The second device may receive a proxy message with a corresponding proxy codeword from the first device. 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.
[0155] When the second device is local to the first device, the second device may perform at least one function that the first device performs. 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 set of valid codewords. Generating the proxy codeword may include selecting a code (e.g., a one - time pad code and / or a proxy message), and generating the proxy codeword based on that code. The second device may provide the proxy message and the proxy codeword to another device.
[0156] Figure 9 Operations that may be performed by a decoder device are shown. The decoder device may include the decoder mentioned above with respect to Figure 7 and / or either of 8.
[0157] During 901, the decoder device receives a modified codeword including a noise codeword and a proxy codeword from the first device. The first device may include Figure 7 the first device of.
[0158] During 902, the decoder device determines a decoded message including an original message and a proxy message based on the modified codeword.
[0159] During 903, the device provides the decoded message to the second device. The second device may include Figure 8 the second device of.
[0160] The second device may be local to the first device. For example, the second device may include the first device. This may correspond to an example configuration similar to Figure 6 The second device may be located away from the second device. This may correspond to an example configuration similar to Figure 4 The decoder device of may be located away 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.
[0161] Figure 9 The decoder device of may be located away 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.
[0162] Figure 10 Operations that may be performed by a third device are shown. The third device may correspond to an independent generator of proxy message - proxy codeword pairs. For example, the third device may be the signal modifier 405 described above.
[0163] During 1001, the third device randomly selects at least one of a proxy message or a proxy codeword. The random selection can be initiated (e.g., triggered) in response to at least one request for the generation, the at least one request being from an entity that has received a noise codeword via a channel (e.g., the first device described above with respect to Figure 7 ).
[0164] During 1002, the third device uses at least one of the selected proxy message or proxy codeword to determine a proxy message - proxy codeword pair.
[0165] During 1003, the third device provides at least one of the proxy message or proxy codeword of the pair to another device. The another device can include Figure 7 the first device. Figure 8 The another device can include
[0166] the second device.
[0167] The random selection can include generating a number and using the randomly generated number to perform the selection. For example, the generated number can be used as an index for identifying at least one of the proxy message or proxy codeword. As another example, the generated number can be used as the proxy message or proxy codeword.
[0168] Technical terms:
[0169] A method for a first device, the method comprising:
[0170] forming a modified codeword by combining a noise codeword received via a channel with a proxy codeword; and
[0171] providing the modified codeword to a decoder for decoding.
[0172] A method for a second device, the method comprising:
[0173] receiving a decoded message including an original message and a proxy message from a decoder;
[0174] removing the proxy message from the decoded message to recover the original message; and
[0175] processing the original message.
[0176] A method for a decoder device, the method comprising:
[0177] Receiving a modified codeword including a noisy codeword and a proxy codeword from another device;
[0178] Determining a decoded message including an original message and a proxy message based on the modified codeword; and
[0179] Providing the decoded message to another entity.
[0180] A method for a third device, the method comprising:
[0181] Randomly selecting at least one of a proxy message or a proxy codeword;
[0182] Using at least one of the selected proxy message or proxy codeword to determine a proxy message - proxy codeword pair; and
[0183] Providing at least one of the proxy message or the proxy codeword in the pair to another device.
[0184] A computer program comprising instructions that, when executed by a computer of a first device, cause the computer to perform:
[0185] Causing a modified codeword to be formed by combining a noisy codeword received through a channel with a proxy codeword; and
[0186] Causing the modified codeword to be provided to a decoder for decoding.
[0187] A computer program comprising instructions that, when executed by a computer of a second device, cause the computer to perform:
[0188] Receiving a decoded message including an original message and a proxy message from a decoder;
[0189] Removing the proxy message from the decoded message to recover the original message; and
[0190] Processing the original message.
[0191] A computer program comprising instructions that, when executed by a computer of a decoder device, cause the computer to perform:
[0192] Receiving a modified codeword including a noisy codeword and a proxy codeword from another device;
[0193] Determining a decoded message including an original message and a proxy message based on the modified codeword; and
[0194] Providing the decoded message to another entity.
[0195] A computer program includes instructions that, when executed by a computer of a third device, cause the computer to perform:
[0196] Randomly select at least one of a proxy message or a proxy codeword;
[0197] Use at least one of the selected proxy message or proxy codeword to determine a proxy message - proxy codeword pair; and
[0198] Provide at least one of the proxy message or the proxy codeword in the pair to another device.
[0199] It should be understood that in cases where the decoder is remote from the receiver (e.g., where the modified codeword is provided to the decoder via a transmission medium such as Bluetooth, Wi-Fi, etc.), some encryption can be omitted because the modified codeword already corresponds to the encoded signal. Thus, this can save additional processing resources and reduce the complexity of the system.
[0200] It should be understood that a device may include or be coupled to other units or modules for transmission and / or reception, such as radio components or radio heads. Although the device has been described as one entity, different modules and memories may be implemented in one or more physical or logical entities.
[0201] It is worth noting that while some embodiments have been described with respect to 5G networks, similar principles can be applied to other networks and communication systems. Thus, although certain embodiments are described above by way of example with reference to certain exemplary architectures for wireless networks, technologies, and standards, the embodiments can be applied to any other suitable form of communication system other than the communication systems shown and described herein.
[0202] It should also be noted herein that while example embodiments have been described above, various changes and modifications can be made to the disclosed solutions without departing from the scope of the present invention.
[0203] As used herein, "at least one of the following: <list of two or more elements>" and "at least one of <list of two or more elements>" and similar phrases, where the list of two or more elements is joined by "and" or "or", means at least any one element, or at least any two or more elements, or at least all elements.
[0204] Typically, 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, while other aspects may be implemented in firmware or software that can be executed by a controller, microprocessor, or other computing device, but the present disclosure is not limited thereto. Although various aspects of the present disclosure may be illustrated and described by block diagrams, flowcharts, or using some other graphical representation, it is well understood that, by way of non-limiting example, the blocks, devices, systems, techniques, or methods described herein may be implemented in hardware, software, firmware, special-purpose circuits or logic, general-purpose hardware or controllers, or other computing devices, or some combination thereof.
[0205] As used in this application, the term "circuitry" may refer to one or more or all of the following:
[0206] (a) Only hardware circuit implementations (such as implementations in only analog and / or digital circuitry) and
[0207] (b) Combinations of hardware circuits and software, such as (where applicable):
[0208] (c) Combinations of (one or more) analog and / or digital hardware circuits with software / firmware and
[0209] (d) Any part of a (one or more) hardware processor (including (one or more) digital signal processors), software, and (one or more) memories that work together to cause a device (such as a mobile phone or a server) to perform various functions and
[0210] (e) (One or more) hardware circuits and / or (one or more) processors, such as (one or more) microprocessors or a part of (one or more) microprocessors, that require software (e.g., firmware) to operate, but the software may not be present when the operation does not require it.
[0211] This definition of circuitry applies to all uses of the term in this application, including in any claims. As a further example, as used in this application, the term "circuitry" also encompasses implementations of only hardware circuits or processors (or one or more processors) or a part of a hardware circuit or processor and its (or their) accompanying software and / or firmware. The term "circuitry" also encompasses, for example, a baseband integrated circuit or a processor integrated circuit for a mobile device or a similar integrated circuit in a server, a cellular network device, or other computing or network devices, if applicable to a particular claim element.
[0212] Embodiments of the present disclosure can 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. The computer software or program (also referred to as a program product) includes software routines, applets, and / or macros, and can be stored in any device-readable data storage medium, and they include program instructions for performing specific tasks. The computer program product can include one or more computer-executable components, which are configured to perform the embodiments when the program is run. The one or more computer-executable components can be at least one software code or a portion thereof.
[0213] In this regard, it should be further noted that any block of the logical flow in the figure can represent a program step, or interconnected logic circuits, blocks, and functions, or a combination of program steps and logic circuits, blocks, and functions. The software can be stored on a physical medium, such as a memory chip or a memory block implemented within a processor, a magnetic medium (such as a hard disk or a floppy disk), and an optical medium (such as, for example, a DVD and its data variant CD). The physical medium is a non-transitory medium.
[0214] As used herein, the term "non-transitory" is a limitation of the medium itself (i.e., tangible, rather than a signal), rather than a limitation of data storage persistence (e.g., RAM versus ROM).
[0215] The memory can be of any type suitable for the local technical environment and can 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 memory, and removable memory. The data processor can be of any type suitable for the local technical environment, and as non-limiting examples, can include one or more of the following: general-purpose computers, special-purpose computers, microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), gate-level circuits, and processors based on multi-core processor architectures.
[0216] Embodiments of the present disclosure can be practiced in various components, such as integrated circuit modules. The design of integrated circuits is generally a highly automated process. Sophisticated and powerful software tools can be used to convert a logic-level design into a semiconductor circuit design ready for etching and formation on a semiconductor substrate.
[0217] The scope of protection sought by various embodiments of the present disclosure is defined by the independent claims. Embodiments and features described in this specification that do not fall within the scope of the independent claims (if any) should be construed as examples that contribute to the understanding of various embodiments of the present disclosure.
[0218] The foregoing description has provided a complete and informative description of exemplary embodiments of the present disclosure by way of non-limiting examples. However, various modifications and adaptations may become apparent to those skilled in the relevant art in view of the foregoing description when read in conjunction with the accompanying drawings and the appended claims. However, all such and similar modifications of the teachings of the present disclosure will still fall within the scope of the invention as defined in the appended claims. In fact, there are additional embodiments that include combinations of one or more of the embodiments with any other of the previously discussed embodiments.
Claims
1. A first apparatus for supporting channel decoding, comprising at least one processor and at least one memory including code, the code when executed by the at least one processor causes the first apparatus to perform: Form a modified codeword by combining a noisy codeword received through a channel with a surrogate codeword; and Provide the modified codeword to a decoder for decoding.
2. The first apparatus according to claim 1, wherein the at least one processor and the at least one memory including code, the code when executed by the at least one processor further causes the first apparatus to perform: Generate the surrogate codeword by randomly selecting the surrogate codeword based on a set of valid codewords.
3. The first apparatus according to claim 2, wherein generating the proxy codeword comprises: Select code, and generate the codeword based on the code.
4. The first apparatus according to any one of claims 2 to 3, wherein the surrogate codeword corresponds to a surrogate message, and wherein the at least one processor and the at least one memory including code, the code when executed by the at least one processor further causes the first apparatus to perform: Provide the surrogate message and the surrogate codeword to another apparatus.
5. The first device according to any one of claims 1 to 3, wherein the at least one processor and the at least one memory including code, the code when executed by the at least one processor, further causes the first device to perform: determining that the decoder is not trusted by the device, wherein causing the modified codeword to be provided to the decoder includes: Based on determining that the decoder is not trusted by the apparatus, cause the modified codeword to be provided to the decoder.
6. The first apparatus according to any one of claims 1 to 3, wherein the at least one processor and the at least one memory including code, the code when executed by the at least one processor further causes the first apparatus to perform: Receive a decoded message from the decoder, the decoded message including an original message and a surrogate message; Remove the surrogate message from the decoded message to recover the original message; and Cause the original message to be provided to a second apparatus for processing.
7. A second apparatus for supporting channel decoding, comprising at least one processor and at least one memory including code, the code when executed by the at least one processor causes the second apparatus to perform: Receive a decoded message from a decoder, the decoded message including an original message and a surrogate message; Remove the surrogate message from the decoded message to recover the original message; and Process the original message.
8. The second apparatus according to claim 7, wherein the at least one processor and the at least one memory including code, the code when executed by the at least one processor further causes the second apparatus to perform: Receive the surrogate message from a first apparatus.
9. The second apparatus according to claim 8, wherein the at least one processor and the at least one memory including code, the code when executed by the at least one processor further causes the second apparatus to perform: Receive the surrogate message with a corresponding surrogate codeword from the first apparatus.
10. The second apparatus according to any one of claims 7 to 9, wherein the at least one processor and the at least one memory including code, the code when executed by the at least one processor, further causes the second apparatus to perform: generating a proxy codeword corresponding to the proxy message by randomly selecting the proxy codeword from a set of valid codewords.
11. The second apparatus according to claim 10, wherein generating the proxy codeword comprises: Selecting code, and generating the proxy codeword based on the code.
12. A decoder apparatus, comprising at least one processor and at least one memory including code, the code when executed by the at least one processor, causes the decoder apparatus to perform: Receiving a modified codeword from another apparatus, the modified codeword including a noisy codeword and a proxy codeword; Determining a decoded message based on the modified codeword, the decoded message including an original message and a proxy message; and Providing the decoded message to another entity.
13. A third apparatus for supporting channel decoding, comprising at least one processor and at least one memory including code, the code when executed by the at least one processor, causes the third apparatus to perform: Randomly selecting at least one of a proxy message or a proxy codeword; Using at least one of the selected proxy message or the proxy codeword to determine a proxy message-proxy codeword pair; and Providing at least one of the proxy message or the proxy codeword of the pair to another apparatus.
14. The third apparatus according to claim 13, wherein the random selection includes: Randomly generating a number; And Using the randomly generated number to perform the selection.
15. The third apparatus according to any one of claims 13 to 14, wherein determining the proxy message-proxy codeword pair includes performing at least one of the following: Using the randomly selected proxy message and a look-up 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 look-up table to obtain the proxy message of the proxy message-proxy codeword pair; or Encoding the randomly selected proxy codeword to obtain the proxy message of the proxy message-proxy codeword pair.