14 research outputs found
Trellises and Trellis-Based Decoding Algorithms for Linear Block Codes
A code trellis is a graphical representation of a code, block or convolutional, in which every path represents a codeword (or a code sequence for a convolutional code). This representation makes it possible to implement Maximum Likelihood Decoding (MLD) of a code with reduced decoding complexity. The most well known trellis-based MLD algorithm is the Viterbi algorithm. The trellis representation was first introduced and used for convolutional codes [23]. This representation, together with the Viterbi decoding algorithm, has resulted in a wide range of applications of convolutional codes for error control in digital communications over the last two decades. There are two major reasons for this inactive period of research in this area. First, most coding theorists at that time believed that block codes did not have simple trellis structure like convolutional codes and maximum likelihood decoding of linear block codes using the Viterbi algorithm was practically impossible, except for very short block codes. Second, since almost all of the linear block codes are constructed algebraically or based on finite geometries, it was the belief of many coding theorists that algebraic decoding was the only way to decode these codes. These two reasons seriously hindered the development of efficient soft-decision decoding methods for linear block codes and their applications to error control in digital communications. This led to a general belief that block codes are inferior to convolutional codes and hence, that they were not useful. Chapter 2 gives a brief review of linear block codes. The goal is to provide the essential background material for the development of trellis structure and trellis-based decoding algorithms for linear block codes in the later chapters. Chapters 3 through 6 present the fundamental concepts, finite-state machine model, state space formulation, basic structural properties, state labeling, construction procedures, complexity, minimality, and sectionalization of trellises. Chapter 7 discusses trellis decomposition and subtrellises for low-weight codewords. Chapter 8 first presents well known methods for constructing long powerful codes from short component codes or component codes of smaller dimensions, and then provides methods for constructing their trellises which include Shannon and Cartesian product techniques. Chapter 9 deals with convolutional codes, puncturing, zero-tail termination and tail-biting.Chapters 10 through 13 present various trellis-based decoding algorithms, old and new. Chapter 10 first discusses the application of the well known Viterbi decoding algorithm to linear block codes, optimum sectionalization of a code trellis to minimize computation complexity, and design issues for IC (integrated circuit) implementation of a Viterbi decoder. Then it presents a new decoding algorithm for convolutional codes, named Differential Trellis Decoding (DTD) algorithm. Chapter 12 presents a suboptimum reliability-based iterative decoding algorithm with a low-weight trellis search for the most likely codeword. This decoding algorithm provides a good trade-off between error performance and decoding complexity. All the decoding algorithms presented in Chapters 10 through 12 are devised to minimize word error probability. Chapter 13 presents decoding algorithms that minimize bit error probability and provide the corresponding soft (reliability) information at the output of the decoder. Decoding algorithms presented are the MAP (maximum a posteriori probability) decoding algorithm and the Soft-Output Viterbi Algorithm (SOVA) algorithm. Finally, the minimization of bit error probability in trellis-based MLD is discussed
Some Notes on Code-Based Cryptography
This thesis presents new cryptanalytic results in several areas of coding-based cryptography. In addition, we also investigate the possibility of using convolutional codes in code-based public-key cryptography. The first algorithm that we present is an information-set decoding algorithm, aiming towards the problem of decoding random linear codes. We apply the generalized birthday technique to information-set decoding, improving the computational complexity over previous approaches. Next, we present a new version of the McEliece public-key cryptosystem based on convolutional codes. The original construction uses Goppa codes, which is an algebraic code family admitting a well-defined code structure. In the two constructions proposed, large parts of randomly generated parity checks are used. By increasing the entropy of the generator matrix, this presumably makes structured attacks more difficult. Following this, we analyze a McEliece variant based on quasi-cylic MDPC codes. We show that when the underlying code construction has an even dimension, the system is susceptible to, what we call, a squaring attack. Our results show that the new squaring attack allows for great complexity improvements over previous attacks on this particular McEliece construction. Then, we introduce two new techniques for finding low-weight polynomial multiples. Firstly, we propose a general technique based on a reduction to the minimum-distance problem in coding, which increases the multiplicity of the low-weight codeword by extending the code. We use this algorithm to break some of the instances used by the TCHo cryptosystem. Secondly, we propose an algorithm for finding weight-4 polynomials. By using the generalized birthday technique in conjunction with increasing the multiplicity of the low-weight polynomial multiple, we obtain a much better complexity than previously known algorithms. Lastly, two new algorithms for the learning parities with noise (LPN) problem are proposed. The first one is a general algorithm, applicable to any instance of LPN. The algorithm performs favorably compared to previously known algorithms, breaking the 80-bit security of the widely used (512,1/8) instance. The second one focuses on LPN instances over a polynomial ring, when the generator polynomial is reducible. Using the algorithm, we break an 80-bit security instance of the Lapin cryptosystem
Compute-and-Forward Relay Networks with Asynchronous, Mobile, and Delay-Sensitive Users
We consider a wireless network consisting of multiple source nodes, a set of relays
and a destination node. Suppose the sources transmit their messages simultaneously
to the relays and the destination aims to decode all the messages. At the physical layer,
a conventional approach would be for the relay to decode the individual message
one at a time while treating rest of the messages as interference. Compute-and-forward
is a novel strategy which attempts to turn the situation around by treating
the interference as a constructive phenomenon. In compute-and-forward, each relay
attempts to directly compute a combination of the transmitted messages and then
forwards it to the destination. Upon receiving the combinations of messages from the
relays, the destination can recover all the messages by solving the received equations.
When identical lattice codes are employed at the sources, error correction to integer
combination of messages is a viable option by exploiting the algebraic structure of
lattice codes. Therefore, compute-and-forward with lattice codes enables the relay
to manage interference and perform error correction concurrently. It is shown that
compute-and-forward exhibits substantial improvement in the achievable rate compared
with other state-of-the-art schemes for medium to high signal-to-noise ratio
regime.
Despite several results that show the excellent performance of compute-and-forward,
there are still important challenges to overcome before we can utilize compute-and-
forward in practice. Some important challenges include the assumptions of \perfect
timing synchronization "and \quasi-static fading", since these assumptions rarely
hold in realistic wireless channels. So far, there are no conclusive answers to whether
compute-and-forward can still provide substantial gains even when these assumptions
are removed. When lattice codewords are misaligned and mixed up, decoding integer
combination of messages is not straightforward since the linearity of lattice codes is
generally not invariant to time shift. When channel exhibits time selectivity, it brings
challenges to compute-and-forward since the linearity of lattice codes does not suit
the time varying nature of the channel. Another challenge comes from the emerging
technologies for future 5G communication, e.g., autonomous driving and virtual
reality, where low-latency communication with high reliability is necessary. In this
regard, powerful short channel codes with reasonable encoding/decoding complexity
are indispensable. Although there are fruitful results on designing short channel
codes for point-to-point communication, studies on short code design specifically for
compute-and-forward are rarely found.
The objective of this dissertation is threefold. First, we study compute-and-forward
with timing-asynchronous users. Second, we consider the problem of compute-and-
forward over block-fading channels. Finally, the problem of compute-and-forward
for low-latency communication is studied. Throughout the dissertation, the research
methods and proposed remedies will center around the design of lattice codes in order
to facilitate the use of compute-and-forward in the presence of these challenges