DE102014218384B3 - Recovery of a binary response pattern from a noisy channel - Google Patents
Recovery of a binary response pattern from a noisy channel Download PDFInfo
- Publication number
- DE102014218384B3 DE102014218384B3 DE102014218384.7A DE102014218384A DE102014218384B3 DE 102014218384 B3 DE102014218384 B3 DE 102014218384B3 DE 102014218384 A DE102014218384 A DE 102014218384A DE 102014218384 B3 DE102014218384 B3 DE 102014218384B3
- Authority
- DE
- Germany
- Prior art keywords
- cortex
- word
- code
- codeword
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2945—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using at least three error correction codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3776—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using a re-encoding step during the decoding process
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/613—Use of the dual code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6356—Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Computerimplementiertes Verfahren, umfassend: Wiederholungscode-Decodieren (S402) eines fehlerbehafteten Wortes (v'') von einem verrauschten Kanal (201), um ein Wiederholungscode-decodiertes Wort (v') zu erhalten; Bestimmen (S403) von Soft-Information (L) auf Basis des fehlerbehafteten Wortes (v'') und des Wiederholungscode-decodierten Wortes (v'); und ein Cortex-Decodieren (S404) des Wiederholungscode-decodierten Wortes (v'), um das Input-Wort (w) auf Basis der Soft-Information (L) zu rekonstruieren.A computer-implemented method comprising: repeating code decoding (S402) an errored word (v '') from a noisy channel (201) to obtain a repetition code decoded word (v '); Determining (S403) soft information (L) based on the erroneous word (v '') and the repetition code decoded word (v '); and cortex decoding (S404) the repetition code decoded word (v ') to reconstruct the input word (w) based on the soft information (L).
Description
BEREICH DER ERFINDUNGFIELD OF THE INVENTION
Die Erfindung betrifft den Bereich Fehlerkorrektur und Fehlererkennung in der Datenübertragung, insbesondere ein Verfahren, um ein binäres Bitmuster in einem verrauschten Kanal schnell und verlässlich rückzugewinnen, wobei auch Alterungseffekte berücksichtigt werden.The invention relates to the field of error correction and error detection in data transmission, in particular to a method for quickly and reliably recovering a binary bit pattern in a noisy channel, whereby aging effects are also taken into account.
HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION
Verrauschte Daten treten auf, wenn physikalische Messungen durchgeführt werden. Die sichere Informationsrückgewinnung von einem verrauschten Kanal ist stets eine Herausforderung. Aktuell angewandte Methoden verwenden gewöhnliche fehlerkorrigierende Codes. Das Problem ist, dass diese Codes häufig komplex sind und die Implementierung eine Menge Ressourcen benötigt. Außerdem bestehen Grenzen bezüglich der Möglichkeit, eine gewisse Fehleranzahl in den Messdaten zu korrigieren. Zusätzlich werden Alterungseffekte (Änderung des Verhaltens der Daten über Jahre) meist nicht berücksichtigt.Noisy data occurs when physical measurements are taken. Safe information retrieval from a noisy channel is always a challenge. Currently used methods use common error-correcting codes. The problem is that these codes are often complex and the implementation takes a lot of resources. There are also limits to the possibility of correcting a certain number of errors in the measured data. In addition, aging effects (change in the behavior of the data over years) are usually not taken into account.
Die Internationale Patent Publikation
J. C. Carlach, A. Otmani, and C. Vervoux in ”A New Scheme for Building Good Self-Dual Block Codes”, Proceedings of the IEEE International Symposium an Information Theory, 2000, beschreiben ein sehr simples mehrstufiges Codierungsschema für selbst-duale Codes, unter Verwendung eines [8,4,4] erweiterten Hamming-Codes als kurzen Basiscode und Bit-Permutationen (oder Interleavers wie in Turbo-Codes) zwischen den Stufen.JC Carlach, A. Otmani, and C. Vervoux in "A New Scheme for Building Good Self-Dual Block Codes", Proceedings of the IEEE International Symposium on Information Theory, 2000, describe a very simple multilevel coding scheme for self-dual codes, using a [8,4,4] extended Hamming code as short base code and bit permutations (or interleavers as in turbo codes) between the stages.
P. Adde, D. Gomez Toro, and C. Jego in ”Design of an Efficient Maximum Likelihood Soft Decoder for Systematic Short Block Codes”, IEEE Transactions an Signal Processing, July 2012, pages 3914–3919, beschreibt eine Maximum-Likelihood Decodierungsmethode für lineare Block-Codes und einen Algorithmus basierend auf dem Chase-2 Algorithmus für die Decodierung von systematischen binären Block-Codes.P. Adde, D. Gomez Toro, and C. Jego in "Design of an Efficient Maximum Likelihood Soft Decoder for Systematic Short Block Codes," IEEE Transactions on Signal Processing, July 2012, pages 3914-3919, describes a maximum likelihood decoding method for linear block codes and an algorithm based on the Chase-2 algorithm for the decoding of systematic binary block codes.
V. van der Leest, B. Preneel, and E. van der Sluis in ”Soft Decision Error Correction for Compact Memory-Based PUFs using a Single Enrollment”, Proceedings of the 14th International Workshop, Leuven, Belgium, September 9–12, 2012, pages 268–282, beschreiben eine sichere Schlüsselspeicherung in Hardware als wesentlichen Baustein für hochsichere Anwendungen. Es wird demonstriert, dass durch Soft-Decision-Decodierung mit nur einer einzigen Messung während der Speicherung die Anzahl der benötigten SRAM Zellen reduziert werden kann, ohne die Größe des En/Decoders zu erhöhen.V. van der Leest, B. Preneel, and E. van der Sluis in "Soft Decision Error Correction for Compact Memory-Based PUFs using a Single Enrollment", Proceedings of the 14th International Workshop, Leuven, Belgium, September 9-12, 2012, pages 268-282, describe secure key storage in hardware as an essential building block for high-security applications. It is demonstrated that by soft-decision decoding with only a single measurement during storage, the number of SRAM cells required can be reduced without increasing the size of the en / decoder.
Die internationale Patentanmeldung
Adde, Patrick et al, in ”Design and implementation of a soft-decision decoder for Cortex codes”, IEEE International Conference an Electronics, Circuits and Systems, 2010, S. 663–666, ISBN 978-1-4244-8155-2, beschreiben eine Implementierung eines Soft-Decision Cortex-Decoders.Adde, Patrick et al, in "Design and Implementation of a Soft Decision Decoder for Cortex Codes", IEEE International Conference on Electronics, Circuits and Systems, 2010, pp. 663-666, ISBN 978-1-4244-8155-2 , describe an implementation of a soft-decision cortex decoder.
Aus der europäischen Patentanmeldung
Die Herausforderung solcher fehlerkorrigierenden Methoden erfordert es, einen Kompromiss zwischen dem Fehlerkorrekturvermögen und der Effizienz des Algorithmus zu finden.The challenge of such error-correcting methods requires finding a compromise between the error-correction capability and the algorithm's efficiency.
Daher besteht die Notwendigkeit effiziente Lösungen mit gutem Fehlerkorrekturvermögen bereitzustellen.Therefore, there is a need to provide efficient solutions with good error correction capability.
ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION
Entsprechend einem ersten Aspekt stellt die Erfindung ein computerimplementiertes Verfahren bereit, umfassend: Wiederholungscode-Decodieren eines fehlerbehafteten Wortes, welches von einem verrauschten Kanal gewonnen wird, um ein Wiederholungscode-decodiertes Wort zu erhalten; Bestimmen von Soft-Information auf Basis des fehlerbehafteten Wortes und des Wiederholungscode-decodierten Wortes; und Cortex-Decodieren des Wiederholungscode-decodierten Wortes, um ein Input-Wort auf Basis der Soft-Information zu rekonstruieren.According to a first aspect, the invention provides a computer-implemented method comprising: repetitive code decoding of an erroneous word which is noisy by one Channel is obtained to obtain a repetition code decoded word; Determining soft information based on the errored word and the repetition code decoded word; and cortex decoding the repetition code decoded word to reconstruct an input word based on the soft information.
Entsprechend einem ersten Aspekt stellt die Erfindung ein computerimplementiertes Verfahren bereit, umfassend: Cortex-Codieren eines Input-Wortes, um ein Cortex-Codewort zu erhalten; Wiederholungscode-Codierung des Cortex-Codewortes, um ein Cortex-Wiederholungscode-Codewort zu erhalten; und Verknüpfung des Cortex-Wiederholungscode-Codewortes mit einem binären Signal, welches von einem verrauschten Kanal erhalten wird, um Helper-Daten zu erzeugen.According to a first aspect, the invention provides a computer-implemented method comprising: cortex-coding an input word to obtain a cortex codeword; Repetition code coding of the cortex codeword to obtain a cortex repeat code codeword; and linking the cortex repeat code codeword to a binary signal obtained from a noisy channel to generate helper data.
Weitere Aspekte der Erfindung sind in den abhängigen Ansprüchen, der folgenden Beschreibung und den Zeichnungen dargelegt.Further aspects of the invention are set forth in the dependent claims, the following description and the drawings.
KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS
Ausführungsbeispiele der vorliegenden Erfindung werden nun mittels Beispiel anhand der beigefügten Zeichnungen erklärt, in welchen:Embodiments of the present invention will now be explained by way of example with reference to the accompanying drawings, in which:
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELEDETAILED DESCRIPTION OF THE EMBODIMENTS
Vor der detaillierten Beschreibung der bevorzugten Ausführungsbeispiele werden ein paar generelle Erläuterungen gemacht.Before the detailed description of the preferred embodiments, a few general explanations will be made.
In den folgenden Ausführungsbeispielen ist ein Verfahren beschrieben, welches Folgendes umfasst: Wiederholungscode-Decodieren eines fehlerbehafteten Wortes, welches von einem verrauschten Kanal gewonnen wird, um ein Wiederholungscode-decodiertes Wort zu erhalten; Bestimmen von Soft-Information auf Basis des fehlerbehafteten Wortes und des Wiederholungscode-decodierten Wortes; und Cortex-Decodieren des Wiederholungscode-decodierten Wortes, um ein Input-Wort auf Basis der Soft-Information zu rekonstruieren.In the following embodiments, a method is described, comprising: repeating code decoding an errored word obtained from a noisy channel to obtain a repetition code decoded word; Determining soft information based on the errored word and the repetition code decoded word; and cortex decoding the repetition code decoded word to reconstruct an input word based on the soft information.
Der verrauschte Kanal könnte jeder beliebige verrauschte Kanal sein. Vorzugsweise ist der verrauschte Kanal ein verrauschter Kanal mit einer Fehlerrate im Bereich zwischen 0 und 20%. Gemäß den unten beschriebenen Ausführungsbeispielen ist der verrauschte Kanal eine ”Physically Unclonable Function” (PUF). Eine ”Physically Unclonable Function” ist eine physikalische Einheit, welche in einer physikalischen Struktur eingebettet ist, welche leicht zu evaluieren aber schwer vorherzusagen ist. Gemäß den unten beschriebenen Ausführungsbeispielen ist der verrauschte Kanal eine Physically Unclonable Function, welche auf einem statischen Random-Access-Memory (SRAM PUF) basiert.The noisy channel could be any noisy channel. Preferably, the noisy channel is a noisy channel with an error rate in the range between 0 and 20%. According to the embodiments described below, the noisy channel is a Physically Unclonable Function (PUF). A "Physically Unclonable Function" is a physical entity embedded in a physical structure that is easy to evaluate but difficult to predict. According to the embodiments described below, the noisy channel is a Physically Unclonable Function based on static random access memory (SRAM PUF).
Alternative verrauschte Kanäle könnten zum Beispiel Delay PUFs, Butterfly PUFs, bistabile Ring PUFs, oder ähnliches sein. In darüber hinaus alternativen Ausführungsbeispielen könnte der verrauschte Kanal ein Telekommunikationskanal wie zum Beispiel GPRS, UMTS, WLAN, ein Powerline-Kommunikationskanal oder ähnliches sein. Alternative noisy channels could be, for example, Delay PUFs, Butterfly PUFs, Bistable Ring PUFs, or the like. In yet alternative embodiments, the noisy channel could be a telecommunications channel such as GPRS, UMTS, WLAN, a powerline communication channel, or the like.
Das fehlerbehaftete Wort könnte jede Form von Bitsequenz sein, welche von einem verrauschten Kanal erhalten wird. In den unten beschriebenen Ausführungsbeispielen entspricht das fehlerbehaftete Wort einer verrauschten PUF-Response. Insbesondere ist in den Ausführungsbeispielen das fehlerbehaftete Wort eine verrauschte PUF-Response, welche mit Helper-Daten kombiniert wurde, welche in einem Enrolment-Prozess gewonnen wurden. Das fehlerbehaftete Wort kann beispielsweise eine Bitsequenz von 120 Bits sein, welche mit Helper-Daten von 120 Bits Länge kombiniert wurde. Das Kombinieren der verrauschten PUF-Response mit Helper-Daten mag zum Beispiel eine XOR-Operation der fehlerbehafteten PUF-Response und der Helper-Daten beinhalten.The errored word could be any form of bit sequence obtained from a noisy channel. In the embodiments described below, the errored word corresponds to a noisy PUF response. In particular, in the embodiments, the erroneous word is a noisy PUF response combined with helper data obtained in an enrollment process. The errored word may be, for example, a bit sequence of 120 bits which has been combined with helper data of 120 bits in length. Combining the noisy PUF response with helper data may include, for example, an XOR operation of the faulty PUF response and the helper data.
Die Helper-Daten gemäß den Ausführungsbeispielen können daher als XOR-verknüpfte Version eines Cortex-Wiederholungscode-codierten Input-Wortes und eines binären Signals gesehen werden, welches von einem verrauschten Kanal gewonnen wurde.The helper data according to the embodiments may therefore be seen as an XOR-linked version of a cortex repeat code coded input word and a binary signal derived from a noisy channel.
Das binäre Signal von einem verrauschten Kanal könnte zum Beispiel eine PUF-Response sein, zum Beispiel eine Bitsequenz mit 120 Bits, gewonnen von einem SRAM PUF. Kombinieren des binären Signals von einem verrauschten Kanal und des Cortex-Wiederholungscode-codierten Input-Wortes kann zum Beispiel eine XOR-Operation auf die verrauschten Input Daten und des Cortex-Wiederholungscode-codierten Input-Wortes beinhalten.The binary signal from a noisy channel could be, for example, a PUF response, for example a 120 bit bit sequence, obtained from a SRAM PUF. For example, combining the binary signal from a noisy channel and the cortex repeat code encoded input word may include an XOR operation on the noisy input data and the cortex repeat code encoded input word.
Gemäß den Ausführungsbeispielen wird das Verfahren verwendet, um ein Input-Wort zu rekonstruieren, welches in einer Enrolment-Phase verwendet wurde, um ein Cortex-Wiederholungscode-Codewort zu generieren.According to the embodiments, the method is used to reconstruct an input word used in an enrollment phase to generate a cortex repeat code codeword.
Das Input-Wort, welches durch das Verfahren gewonnen wird, kann dann re-codiert werden, um ein Cortex-Wiederholungscodewort zu rekonstruieren, welches im Enrolment verwendet wurde.The input word obtained by the method can then be re-encoded to reconstruct a cortex repeat codeword used in the enrollment.
Das damit rekonstruierte Cortex-Wiederholungscode-Codewort kann dann verwendet werden, um ein fehlerfreies binäres Signal von einem binären Signal zu rekonstruieren. Das rekonstruierte binäre Signal soll dem binären Signal entsprechen, welches während der Enrolment-Phase Cortex-wiederholungcodiert wurde. Das damit gewonnene fehlerfreie binäre Signal kann als eine Rekonstruktion des binären Signals des verrauschten Kanals gesehen werden, welches während der Enrolment-Phase Cortex-Wiederholungscode-codiert wurde. Insbesondere kann das fehlerfreie binäre Signal zum Beispiel eine fehlerfreie PUF-Response sein.The cortex repeat code codeword reconstructed therewith can then be used to reconstruct an error-free binary signal from a binary signal. The reconstructed binary signal should correspond to the binary signal which was cortex repeat coded during the enrollment phase. The thus obtained error-free binary signal can be seen as a reconstruction of the noisy channel binary signal, which was cortex-replicated during the enrollment phase. In particular, the error-free binary signal can be, for example, a fault-free PUF response.
Gemäß den unten beschriebenen Ausführungsbeispielen wird das fehlerbehaftete Wort Wiederholungscode-decodiert, um ein Wiederholungscode-decodiertes Wort zu erhalten. Die Idee eines Wiederholungscodes besteht darin, eine Nachricht mehrere Male zu wiederholen. Wiederholungscode-Decodieren könnte zum Beispiel durchgeführt werden, indem der Wert eines bestimmten Bits bestimmt wird, indem die erhaltenen Kopien dieses Bits betrachtet werden und der Wert gewählt wird, welcher am öftesten auftritt. Wiederholungscode-Decodieren könnte zum Beispiel gemäß der bekannten „Majority Logic” Detektion durchgeführt werden. In dem unten beschriebenen Ausführungsbeispielen wird ein (5, 1) Wiederholungscode auf ein fehlerbehaftetes Wort angewendet. Wenn also Wiederholungscode-Decodierung auf ein fehlerbehaftetes Wort der Länge 120 Bit angewandt wird, kann angenommen werden, dass das originale Codewort von 24 Bit fünf Mal wiederholt wurde. Entsprechend diesem Beispiel resultiert Wiederholungscode-Decodierung in einem Wiederholungscode-decodierten Wort mit 24 Bit Länge.According to the embodiments described below, the errored word is repetitively decoded to obtain a repetition code decoded word. The idea of a retry code is to repeat a message several times. Repeat code decoding could be performed, for example, by determining the value of a particular bit by looking at the obtained copies of that bit and choosing the value that most often occurs. Repeat code decoding could be performed, for example, according to the well-known majority logic detection. In the embodiments described below, a (5, 1) repetition code is applied to an erroneous word. Thus, if repetition code decoding is applied to an errored word of
Gemäß den unten beschriebenen Ausführungsbeispielen umfasst das Verfahren auch die Bestimmung von Soft-Information basierend auf dem fehlerbehafteten Wort und dem Wiederholungscode-decodiertem Wort. Soft-Information kann jegliche Information sein, welche die Fehlerhaftigkeit der einzelnen Bits des fehlerbehafteten Wortes beschreibt. Zudem könnte die Soft-Information die Positionen spezifizieren, wo Fehler am ehesten passieren. Gemäß den unten beschriebenen Ausführungsbeispielen beinhaltet die Bestimmung der Soft-Information die Bestimmung der Bitfehler-Wahrscheinlichkeiten, basierend auf dem fehlerbehaften Wort und dem Wiederholungscode-decodierten Wort. In diesem Fall ist die Soft-Information ein Vektor, dessen Elemente die Anzahl der Fehler in den normalerweise fehlerfreien Blöcken des fehlerbehafteten Wortes repräsentieren.According to the embodiments described below, the method also includes determining soft information based on the errored word and the repetition code decoded word. Soft information may be any information describing the defectiveness of the individual bits of the errored word. In addition, the soft information could specify the locations where errors are most likely to happen. According to the embodiments described below, the determination of the soft information includes the determination of the bit error probabilities based on the errored word and the repetition code decoded word. In this case, the soft information is a vector whose elements represent the number of errors in the normally healthy blocks of the errored word.
In den Ausführungsbeispielen wird der Rep(5, 1) Code als Wiederholungscode verwendet. In diesen Ausführungsbeispielen können die Elemente der Soft-Information nur die Werte {0, 1, 2} annehmen. Die Werte werden in diesem Fall bestimmt, indem die Summe der einzelnen Wiederholungsblöcke (5 Bit) berechnet wird. Wenn die Summe 0 oder 5 ist, entspricht die Soft Information 0. Ist die Summe 1 oder 4, entspricht dies der Soft Information 1 und wenn die Summe 2 oder 3 ist, entspricht dies dem Wert 2 für die Soft Information. In the embodiments, the Rep (5, 1) code is used as a repetition code. In these embodiments, the elements of the soft information can only take on the values {0, 1, 2}. The values are determined in this case by calculating the sum of the individual repeat blocks (5 bits). If the sum is 0 or 5, the soft information equals 0. If the sum is 1 or 4, this corresponds to
Zusätzlich könnte eine Warnfunktion verwendet werden, welche einen Alarm auslöst, oder das System, welches das Verfahren implementiert, zum Herunterfahren zwingt, wenn die Anzahl der Fehler einen gewissen Grenzwert erreicht. In den Ausführungsbeispielen werden zwei Arten beschrieben, die Anzahl der Fehler zu berechnen. Auf der einen Seite besteht die Möglichkeit die Soft-Information zu nutzen, welche während des Wiederholungscode-Decodierens gewonnen wurde, wobei beinahe keinerlei zusätzlicher Aufwand nötig ist. Jedoch ist es auf diese Weise lediglich möglich die Größenordnung der Anzahl der Fehler zu bestimmen und nicht den exakten Wert. Auch kann die exakte Anzahl der Fehler bestimmt werden, indem das Cortex-decodierte Wort re-codiert wird, sprich das Input-Wort resultierend in dem Cortex-Wiederholungscode-Codewort. Das Codewort wird dann verglichen mit dem fehlerbehafteten Codewort und die Anzahl der Fehler wird bestimmt. Dies könnte zum Beispiel eine XOR-Operation des Cortex-Wiederholungscode-Codewortes und des fehlerbehafteten Wortes beinhalten.In addition, a warning function could be used which triggers an alarm or forces the system implementing the method to shut down if the number of errors reaches a certain limit. In the embodiments, two ways of calculating the number of errors are described. On the one hand, it is possible to use the soft information obtained during the repetition code decoding, which requires almost no additional effort. However, in this way it is only possible to determine the magnitude of the number of errors and not the exact value. Also, the exact number of errors can be determined by re-encoding the cortex decoded word, that is, the input word resulting in the cortex repeat code codeword. The codeword is then compared with the errored codeword and the number of errors is determined. This could include, for example, an XOR operation of the cortex repeat code codeword and the erroneous word.
Der Aufwand der Re-Codierung ist nicht signifikant da die Cortex und Wiederholungscode-Codierung sehr effizient arbeiten.The expense of re-encoding is not significant because the cortex and repetitive code coding work very efficiently.
Gemäß den unten beschriebenen Ausführungsbeispielen, beinhalten die Verfahren außerdem die Cortex-Decodierung des Wiederholungscode-decodierten Wortes, um ein Input-Wort mit Hilfe von Soft-Information zu rekonstruieren.According to the embodiments described below, the methods further include cortex decoding the repetition code decoded word to reconstruct an input word using soft information.
Cortex-Decodierung (und Codierung) könnten zum Beispiel gemäß eines Turbo-Code-Mechanismus durchgeführt werden.Cortex decoding (and encoding) could be performed, for example, according to a turbo-code mechanism.
Die Cortex-Codierung könnte zum Beispiel auf einem mehrstufigen Codierungsschema basieren, unter Verwendung des erweiterten Hamming-Codes als Basiscode und Permutationen zwischen den einzelnen Stufen. In den Ausführungsbeispielen ist der Cortex-Code ein G[24, 12, 8] Golay-Code. Der Basiscode ist ein selbst-dualer erweiterter Hamming-Code und eine dreistufige Implementierung mit zwei Interleavers (Permutationen) wird verwendet.For example, the cortex coding could be based on a multi-level coding scheme, using the extended Hamming code as base code and permutations between the individual stages. In the embodiments, the cortex code is a G [24, 12, 8] Golay code. The base code is a self-dual extended Hamming code and a three-level implementation with two interleavers (permutations) is used.
In den Ausführungsbeispielen ist ein Soft-Decision-Decodierungsverfahren angewandt, d. h. zusätzliche Information über die Bitfehlerwahrscheinlichkeit wird gesammelt (mit Hilfe der Wiederholungscode-Decodierung) um die Decodierung effizienter zu gestalten. Die Soft-Decodierung ermöglicht die Generierung von Fehlermustern und die Addition dieser Fehlermuster zum fehlerbehafteten binären Signals, wobei das Ergebnis re-codiert wird, bis die Euklidische Distanz zum empfangenen Wort minimal ist. Für die wiederholte Codierung kann der existente Encoder-Block wiederverwendet werden. Damit kann der Aufwand des Decoders reduziert werden.In the embodiments, a soft-decision decoding method is employed, i. H. additional information about the bit error probability is collected (using repetitive code decoding) to make the decoding more efficient. The soft decoding enables the generation of error patterns and the addition of these error patterns to the erroneous binary signal, the result being re-encoded until the Euclidean distance to the received word is minimal. For repeated coding, the existing encoder block can be reused. Thus, the effort of the decoder can be reduced.
Für den Fall dass weniger als vier unzuverlässige Positionen gefunden werden, können die restlichen Fehlermuster aufgefüllt werden. Gemäß den unten beschriebenen Ausführungsbeispielen kann ein Pseudozufallsgenerator implementiert werden, welcher Werte zwischen 1 und 12 mit gleicher Wahrscheinlichkeit returniert.In case less than four unreliable positions are found, the remaining error patterns can be filled up. According to the embodiments described below, a pseudo-random generator can be implemented which returns values between 1 and 12 with equal probability.
Für den Fall, dass mehr als vier unzuverlässige Positionen markiert werden, können die Fehlermusterpositionen mit der gleichen Prozedur reduziert werden.In the event that more than four unreliable positions are marked, the error pattern positions can be reduced with the same procedure.
Gemäß den unten beschriebenen Ausführungsbeispielen umfasst das Verfahren ferner eine Re-Codierung des rückgewonnen Input-Wortes, um das Cortex-Wiederholungscode-Codewort zu rekonstruieren. Dieses re-codieren des Input-Wortes kann zum Beispiel Cortex-Codierung des Input-Wortes umfassen, um das Cortex-Codewort zu erhalten, und Wiederholungscode-Codierung des Cortex-Codewortes um das Cortex-Wiederholungscode-Codewort zu erhalten. Gemäß den unten beschriebenen Ausführungsbeispielen basiert die Cortex-Codierung auf einem mehrstufigen Codierungsschema unter Verwendung eines erweiterten Hamming-Codes als Basiscode und Bit-Permutationen zwischen den Stufen. In den unten beschriebenen Ausführungsbeispielen basiert die Cortex-Decodierung zum Beispiel auf einem dreistufigen Codierungsschema unter Verwendung eines [8, 4, 4] erweiterten Hamming-Codes als kurzen Basiscode und zwei Bit-Permutationen zwischen den drei Stufen. Die Wiederholungscode-Codierung kann auf dem gleichen Wiederholungscode basieren, welcher während der Wiederholungscode Decodierung des fehlerbehafteten Wortes angewandt wurde, zum Beispiel ein (5, 1) Wiederholungscode.According to the embodiments described below, the method further comprises re-encoding the recovered input word to reconstruct the cortex repeat code codeword. This re-coding of the input word may include, for example, cortex coding of the input word to obtain the cortex codeword, and repetition code coding of the cortex codeword to obtain the cortex repeat codeword. According to the embodiments described below, the cortex coding is based on a multi-level coding scheme using extended Hamming code as base code and bit permutations between the stages. For example, in the embodiments described below, the cortex decoding is based on a three-level coding scheme using a [8, 4, 4] extended Hamming code as a short base code and two bit permutations between the three stages. The repetition code coding may be on the same repetition code which was applied during the repetitive code decoding of the erroneous word, for example, a (5, 1) repetition code.
Die Re-Codierung resultiert in einem rekonstruierten Cortex-Wiederholungscode-Codewort. Gemäß den Ausführungsbeispielen unten entspricht das rekonstruierte Cortex-Wiederholungscode-Codewort dem Cortex-Wiederholungscode-Codewort, welches während des Enrolments verwendet wurde, um eine XOR-Verknüpfung mit einem binären Signal durchzuführen, welches von einem verrauschten binären Kanal stammt, wenn die Anzahl der Fehler nicht das Fehlerkorrekturvermögen übersteigt.The re-encoding results in a reconstructed cortex repeat code codeword. According to the embodiments below, the reconstructed cortex repeat code codeword corresponds to the cortex repeat code codeword used during enrollment to XOR to a binary signal originating from a noisy binary channel when the number of errors does not exceed the error correction capability.
Das Verfahren könnte zudem eine Kombination des rekonstruierten Cortex-Wiederholungscode-Codewortes mit den Helper-Daten umfassen, um ein fehlerfreies Signal vom verrauschten Kanal zu rekonstruieren. Wie bereits oben beschrieben, könnten die Helper-Daten solche Helper-Daten sein, die während des Enrolments produziert wurden, indem ein binäres Signal von einem verrauschten Kanal mit dem Cortex-Wiederholungscode-Codewort XOR-verknüpft wurde. Kombinieren des rekonstruierten Cortex-Wiederholungscode-Codewortes mit den Helper-Daten könnte zum Beispiel eine XOR-Operation des rekonstruierten Cortex-Wiederholungscode-Codewortes mit den Helper-Daten bedeuten.The method could further include combining the reconstructed cortex repeat code codeword with the helper data to reconstruct a noiseless channel noise-free signal. As described above, the helper data could be helper data produced during enrollment by XORing a binary signal from a noisy channel to the cortex repeat code codeword. For example, combining the reconstructed cortex repeat code codeword with the helper data could mean an XOR operation of the reconstructed cortex repeat code codeword with the helper data.
Die Ausführungsbeispiele wie oben beschrieben können auch inhärente Alterungseffekte behandeln. Alterungseffekte von SRAM könnten zum Beispiel Bit-Fehler hervorrufen, welche effizient mit den oben beschriebenen Verfahren korrigiert werden.The embodiments as described above may also treat inherent aging effects. For example, aging effects of SRAM could cause bit errors, which are efficiently corrected by the methods described above.
In den oben beschriebenen Ausführungsbeispielen wird auch ein Verfahren beschrieben, welches eine Cortex-Codierung eines Input-Wortes beinhaltet, um ein Cortex-Codewort zu erhalten; eine Wiederholungscode-Codierung des Cortex-Codewortes um ein Cortex-Wiederholungscode-Codewort zu erhalten; und ein Kombinieren des Cortex-Wiederholungscode-Codewortes mit einem binären Signal, welches von einem verrauschen Kanal stammt, um Helper-Daten zu generieren.In the above-described embodiments, a method is also described which involves cortex-coding an input word to obtain a cortex codeword; a repetition code coding of the cortex codeword to obtain a cortex repeat code codeword; and combining the cortex repeat code codeword with a binary signal originating from a noisy channel to generate helper data.
Dieses Verfahren könnte zum Beispiel verwendet werden, um in einem Enrolment-Prozess ein Input-Wort mit dem Cortex-Wiederholungscode zu codieren und das erhaltene Cortex-Wiederholungscode-Codewort mit einem binären Signal, das von einem verrauchten Kanal stammt, XOR zu verknüpfen.For example, this method could be used to encode an input word with the cortex repeat code in an enrollment process and XOR the resulting cortex repeat code codeword with a binary signal originating from a smoky channel.
Die produzierten Helper-Daten während des Enrolment-Prozesses, wie oben beschrieben, könnten als Helper-Daten, in irgendeiner der oben beschriebenen Rekonstruktionsmethoden verwendet werden, um ein fehlerfreies binäres Signal von einem verrauschten Kanal zu rekonstruieren.The helper data produced during the enrollment process, as described above, could be used as helper data, in any of the reconstruction methods described above, to reconstruct an error-free binary signal from a noisy channel.
Gemäß den Ausführungsbeispielen sind die oben beschriebenen Verfahren computerimplementiert. Die Verfahren können in Hardware und/oder Software implementiert werden.According to the embodiments, the methods described above are computer implemented. The methods can be implemented in hardware and / or software.
Die unten detaillierter beschriebenen Ausführungsbeispiele stellen zudem ein System dar, welches ausgelegt ist, die oben beschriebenen Verfahren durchzuführen.The embodiments described in more detail below also illustrate a system configured to perform the methods described above.
Das System könnte einen Cortex-Encoder und einen Wiederholungsencoder beinhalten, der Cortex-Encoder und der Wiederholungscode Encoder so angeordnet um Cortex-Codierung bzw. Wiederholungscode-Codierung wie oben beschrieben durchzuführen.The system could include a cortex encoder and a repeater encoder, the cortex encoder and the repeater code encoder arranged to perform cortex coding and repeat code coding, respectively, as described above.
Das System könnte zudem einen Cortex-Decoder und einen Wiederholungsdecoder beinhalten, der Cortex-Decoder und der Wiederholungsdecoder sind ausgelegt, um Cortex-Decodierung bzw. Wiederholungscode-Decodierung wie oben beschrieben durchzuführen.The system could also include a cortex decoder and a repeater decoder, the cortex decoder, and the repeater decoder are configured to perform cortex decoding as described above.
Der Cortex-Decoder und/oder Encoder kann in Hardware oder Software implementiert werden. Eine Hardware Implementierung ist aus Effizienzgründen bevorzugt.The cortex decoder and / or encoder can be implemented in hardware or software. Hardware implementation is preferred for efficiency.
Darüber hinaus kann das System XOR-Einheiten beinhalten, die so ausgelegt sind, dass XOR-Operationen von Input-Daten mit anderen Input-Daten ausgeführt werden können, um XOR-verknüpfte Daten zu erhalten.In addition, the system may include XOR units that are designed so that XOR operations of input data with other input data can be performed to obtain XOR-linked data.
Das System kann ein Verfahren implementieren, um, wie oben beschrieben, effizient ein klares binäres Signal von einem verrauschten Kanal rückzugewinnen. Aufgrund der Anordnung der zwei fehlerkorrigierenden Codes, welche eine schnelle und einfache Hardware-Implementierung erlauben, sind die benötigten Hardware-Ressourcen minimal. Die beschriebene Prozedur erlaubt eine ressourcenarme Implementierung aufgrund der innovativen Zusammenschaltung der zwei effizienten fehlerkorrigierenden Codes.The system may implement a method to efficiently recover a clear binary signal from a noisy channel, as described above. Due to the arrangement of the two error correcting codes, which allow a quick and easy hardware implementation, the required hardware Resources minimal. The described procedure allows a low-resource implementation due to the innovative interconnection of the two efficient error-correcting codes.
Ferner könnte ein Anti-Alterungsprotokoll inhärent implementiert sein, welches die Stabilität des Systems über Jahre anhebt.Furthermore, an anti-aging protocol could be inherently implemented which increases the stability of the system over years.
Eine mögliche Fehlerüberwachungsfunktionalität könnte ohne zusätzlich benötigt Ressourcen mit dem bestehenden Setup vorgesehen werden. Solche Funktionalität gewährleistet, dass das Gerät sich abschaltet, sobald eine gewisse Anzahl an Fehlern auftritt.A possible fault monitoring functionality could be provided without additional resources needed with the existing setup. Such functionality ensures that the device shuts itself off as soon as a certain number of errors occur.
Ein FPGA-Board (Virtex 5) könnte zum Beispiel für die Implementierung des Cortex Encoders/Decoders und/oder des Wiederholungsencoders/-decoders und/oder der XOR-Einheiten verwendet werden.For example, an FPGA board (Virtex 5) could be used to implement the Cortex Encoder / Decoder and / or the Repeat Encoder / Decoder and / or the XOR units.
Die oben beschriebenen Verfahren und Systeme und die detaillierte Beschreibung der Ausführungsbeispiele unten, könnten eine Reihe von Möglichkeiten bereitstellen. Zum Beispiel wird gemäß den Ausführungsbeispielen als verrauschter binärer Kanal eine PUF-Response verwendet. Die auftretenden Fehler sind in diesem Fall meist gleichverteilt (keine Blockfehler). Gemäß den Ausführungsbeispielen, welche auf einem 120 Bit Cortex-Wiederholungscode-Codewort basieren, aufgrund der Definition der Codes, können mit Hilfe der Wiederholungscode-Decodierung bereits bis zu 48 gleichmäßig Fehler in 120 Bits korrigiert werden (entspricht 40%). Insbesondere wenn die Fehler in Blöcken kleiner als 5 auftreten, können jedenfalls 32 Fehler in 120 Bits korrigiert werden (entspricht 26%). Will man Blockfehlern effizienter entgegentreten, können die unten beschriebenen Ausführungsbeispiele insofern leicht geändert werden, dass anstelle des (5, 1) Wiederholungscodes ein (7, 1) oder (11, 1) Wiederholungscode verwendet wird. Damit vergrößert sich das Fehlerkorrekturvermögen, jedoch steigt die Komplexität der Verfahren. PUF-Responses unterliegen in bekannten Ausführungsbeispielen einer Fehlerrate von 2–12%, wodurch die unten beschriebene Ausführung (mit Rep (5, 1)) ausreichend dimensioniert erscheint.The methods and systems described above, and the detailed description of the embodiments below, could provide a number of possibilities. For example, according to the embodiments, a PUF response is used as the noisy binary channel. The occurring errors are in this case usually equally distributed (no block errors). According to the embodiments based on a 120-bit cortex repetition code codeword, due to the definition of the codes, repetitive code decoding can already correct up to 48 even errors in 120 bits (equivalent to 40%). In particular, if the errors occur in blocks smaller than 5, 32 errors can be corrected in 120 bits in any case (corresponding to 26%). In order to counter block errors more efficiently, the embodiments described below can be easily changed in that instead of the (5, 1) repetition code, a (7, 1) or (11, 1) repetition code is used. This increases the error correction capability, but increases the complexity of the methods. In known embodiments, PUF responses are subject to an error rate of 2-12%, as a result of which the embodiment described below (with Rep (5, 1)) appears to be adequately dimensioned.
Das Ermitteln der Soft-Information könnte zusätzliche Informationen bereitstellen, wie sich Bit-Flips über die Zeit ändern, d. h. man erhält einen Hinweis über das Alterungsverhalten des Gerätes, welcher direkt berücksichtigt werden kann.The determination of the soft information could provide additional information as to how bit flips change over time, i. H. You get an indication of the aging behavior of the device, which can be considered directly.
Detaillierte Ausführungsbeispiele werden nun mit Bezugnahme auf die Zeichnungen beschrieben.Detailed embodiments will now be described with reference to the drawings.
Ein SRAM PUF
Ein Cortex-Encoder
Das Cortex-Codewort c' mit 24 Bit Länge wird weitergeführt zu einem Wiederholungsencoder
Das Cortex-Wiederholungscode-Codewort c der Länge 120 Bit wird zur PUF-Response R in einer XOR-Einheit
Die Rekonstruktion startet mit einer Wiederholungscode-Decodierung des erhaltenen fehlerbehafteten Wortes v'' mit Hilfe des Wiederholungsdecoders
Das Wiederholungscode-decodierte Wort v' der Länge 24 Bits wird dann weitergeführt zum Cortex-Decoder
Das zurückgewonnene Input-Wort w von 12 Bits Länge wird dann mit Hilfe des Cortex-Encoders
Das neugewonnene Cortex-Wiederholungscode-Codewort c mit 120 Bits Länge, welches nach dem re-codieren gewonnen wurde, wird dann mit den Helper-Daten HD der Länge 120 Bits mit Hilfe der XOR-Einheit
Gemäß dieses Ausführungsbeispiels, aufgrund der Konkatination der zwei fehlerkorrigierenden Codes (Cortex-Code und Wiederholungscode) und der Berechnung der Soft-Information für den Cortex-Decoder, können zufällige Fehler effizient korrigiert werden.According to this embodiment, due to the concatenation of the two error correcting codes (cortex code and repetition code) and the calculation of the soft information for the cortex decoder, random errors can be corrected efficiently.
Da Information über Bit-Flips während jedem Decodierungsschritt im Wiederholungsdecoder berechnet werden, berücksichtigt das hier beschriebene Verfahren inhärent Änderungen des Ausgangssignals, welche über die Laufzeit des Systems passieren könnten (Alterung).Since information about bit flips is computed during each decoding step in the repetition decoder, the method described here inherently takes into account changes in the output signal that could happen over the life of the system (aging).
Folgend werden Ausführungsbeispiele bezüglich eines Cortex-Wiederholungscodes im Detail beschrieben.In the following, embodiments relating to a cortex repeat code will be described in detail.
Cortex-Repetition-CodierungCortex-Repetition coding
In dieser Ausführung betrachten wir den (120, 12) konkatenierten Code, welcher durch die Konkatenation des C(24, 12) Cortex-Codes und des Rep(5, 1) Wiederholungscodes erzeugt wird. Im Weiteren verwenden wir den Cb(8, 4) Hamming-Code als Basiscode für die Cortex-Codierung.In this embodiment we consider the (120, 12) concatenated code generated by the concatenation of the C (24, 12) cortex code and the Rep (5, 1) repetition code. In the following, we use the C b (8, 4) Hamming code as the base code for the Cortex coding.
Cortex-CodierungCortex-coding
Die Cortex-Codierung, die in dieser Ausführung beschrieben wird, verwendet das Schema für das Erzeugen selbst-dualer Block-Codes, welches in J. C. Carlach, A. Otmani, and C. Vervoux in „A New Scheme for Building Good Self-Dual Block Codes”, Proceedings of the IEEE International Symposium an Information Theory, 2000 vorgestellt wurde.The cortex coding described in this embodiment uses the self-dual block code generation scheme described in JC Carlach, A. Otmani, and C. Vervoux in "A New Scheme for Building Good Self-Dual Block Codes, "Proceedings of the IEEE International Symposium on Information Theory, 2000 was presented.
Im Weiteren wird ein Beispiel einer dreistufigen Konstruktion zur Codierung eines Input-Wortes w erläutert. Das Input-Wort w hat laut dem Codierungsschema in
Wir betrachten das Input-Wort w = (0010 0110 1101) und definieren
Darüber hinaus bestimmen wir die Generatormatrix G[8, 4] des binären Linearcodes Cb(8, 4). Die Generatormatrix G[8, 4], welche in dieser Ausführung verwendet wird, entspricht der Generatormatrix des (8, 4) erweiterten Hamming-Codes (gesamt 8 Bits, 4 Kontrollbits, 4 Informationsbits).In addition, we determine the generator matrix G [8, 4] of the binary linear code C b (8, 4). The generator matrix G [8, 4] used in this embodiment corresponds to the generator matrix of the (8, 4) extended Hamming code (total 8 bits, 4 control bits, 4 information bits).
Daraus ergeben sich folgende Kontrollbits: This results in the following control bits:
Außerdem benötigen wir eine Permutation der Elemente {0, ..., 11}. In diesem Fall wählen wir π0 wie folgt: In addition, we need a permutation of the elements {0, ..., 11}. In this case we choose π 0 as follows:
Die Cortex-Codierung beginnt damit, w in Blöcke von 4 Bits aufzuteilen (erster Block:
Im nächsten Schritt der Codierung wird die Permutation π0 auf
Anschließend wird x(1) ebenfalls in Blöcke von 4 Bits aufgeteilt (erster Block:
Die Permutation π1 = π0 wird nun auf R(1) angewandt. Dies ergibt The permutation π 1 = π 0 is now applied to R (1) . This results
Im nächsten Schritt wird X( 2 ) in Blöcke von 4 Bits aufgeteilt und die Kontrollbits
Das Codewort c' (hier „Cortex-Codewort”) entspricht nun
c' = (0010 0110 1101 1010 0101 0011) The codeword c '(here "cortex codeword") now corresponds
c '= (0010 0110 1101 1010 0101 0011)
Wiederholungscode-CodierungRepeat code encoding
Im Allgemeinen wird die Wiederholungscode-Codierung mit Reb(n, 1) Wiederholungscode durchgeführt, indem jedes Bit genau n mal wiederholt wird. In diesem Ausführungsbeispiel wird der Rep(5, 1) Wiederholungscode verwendet, d. h. jedes Bit wird 5 mal wiederholt. Daher ergibt die Codierung für c' = (0010 0110 1101 1010 0101 0011) das neue Cortex-Wiederholungscodecodierte Codewort C: In general, the repetition code coding is performed with Reb (n, 1) repetition code by repeating each bit exactly n times. In this embodiment, the Rep (5, 1) repetition code is used, that is, each bit is repeated 5 times. Therefore, the coding for c '= (0010 0110 1101 1010 0101 0011) gives the new cortex repeat codec codeword C:
Cortex-Wiederholungscode-DecodierungCortex-repetition code decoding
Im Folgenden wird ein Ausführungsbeispiel des Cortex-Wiederholungsdecoders beschrieben. In diesem Ausführungsbeispiel wird die Wiederholungscode-Decodierung zuerst durchgeführt, da der Wiederholungscode den inneren Code in dieser Konkatenation darstellt.An embodiment of the cortex repeat decoder will now be described. In this embodiment, the repetition code decoding is performed first because the repetition code represents the inner code in this concatenation.
Wiederholungscode-DecodierungRepeat code decoding
Sei v'' ein Beispiel eines erhaltenen Wortes (das „fehlerbehaftete Wort”) welches decodiert werden soll.Let v "be an example of a received word (the" errored word ") to be decoded.
Bei der Decodierung des Rep(n, 1) Wiederholungscodes können n – 1 Fehler entdeckt und
- 1. Teile das Codewort in Blöcke von n Bits
- 2. Wenn mehr als
[ / n2] Bits den Wert 0 haben, dann ergibt die Decodierung des Blocksden entsprechenden Wert 0. Wenn mehr als[ / n2] Bits den Wert 1 haben, dann ergibt die Decodierung des Blocksden entsprechenden Wert 1. - 3. Wenn n eine gerade Zahl ist und genau
[ / n2] Bits 0 und[ / n2] Bits 1 sind, dann ist die Decodierung nicht eindeutig. Um diesen Fall zu vermeiden, kann in einer praktischen Anwendungen n ungerade gewählt werden.
- 1. Divide the codeword into blocks of n bits
- 2. If more than
[/ n2] value 0, then the decoding of the block gives thecorresponding value 0. If more than[/ n2] value 1, then the decoding of the block gives thecorresponding value 1. - 3. If n is an even number and exactly
[/ n2] Bits 0 and[/ n2]
In unserem Beispiel wird das fehlerbehaftete Wort v'' wie oben beschrieben decodiert. Die Decodierung ergibt das Wort v' (das ”Wiederholungscode-decodierte Wort”):
v' = (0000 0110 1101 1010 0101 0111) In our example, the errored word v "is decoded as described above. The decoding yields the word v '(the "repetition code decoded word"):
v '= (0000 0110 1101 1010 0101 0111)
Bestimmen von Soft-InformationDetermine soft information
Gemäß dieser Ausführung wird während der Wiederholungscode-Decodierung nicht nur das fehlerbehaftete Wort v'' zum Wiederholungscode-decodierten Wort v' decodiert, sondern auch Soft-Information bestimmt. Im Folgenden wird ein Ausführungsbeispiel beschrieben, in welchem die Soft-Information ein Vektor ist, dessen Elemente die Anzahl an Fehlern in einem normalerweise fehlerfreien Block von v'' darstellen. Da wir den Rep(5, 1) Wiederholungscode verwenden, können die Elemente von L nur die Werte {0, 1, 2} annehmen. Diese Werte werden bestimmt, indem die Summe jedes Wiederholungsblocks (5 Bits) berechnet wird. Wenn die Summe die Werte 0 oder 5 annimmt, dann ist die Soft-Information an der entsprechenden Stelle 0. Wenn die Summe die Werte 1 oder 4 annimmt, dann ist die Soft-Information an der entsprechenden Stelle 1 und wenn die Summe die Werte 2 oder 3 annimmt, so ist die Soft-Information an der entsprechenden Stelle 2. L kann berechnet werden, indem v' n mal wiederholt wird, das Ergebnis von v'' abgezogen wird, die absoluten Werte von jedem Element bestimmt werden (–1 wird durch 1 ersetzt) und die Anzahl von 1en in jedem Block von n Bits gezählt wird.According to this embodiment, not only the erroneous word v "is decoded to the repetition code decoded word v 'during the repetitive code decoding, but also soft information is determined. The following describes an embodiment in which the soft information is a vector whose elements represent the number of errors in a normally error free block of v ''. Since we use the Rep (5, 1) repetition code, the elements of L can only take the values {0, 1, 2}. These values are determined by calculating the sum of each repetitive block (5 bits). If the sum takes the
Der Vektor L enthält also die Soft-Information. In diesem Beispiel lautet L wie folgt:
L = (0020 0000 0020 0020 0000 0200)The vector L thus contains the soft information. In this example, L is as follows:
L = (0020 0000 0020 0020 0000 0200)
Außerdem kann eine Warnfunktion eingesetzt werden, die einen Alarm auslösen könnte oder das System, welches den Prozess implementiert, hinunterfahren könnte, wenn die Anzahl der erkannten Fehler einen gewissen Schwellenwert erreicht. Es werden hier zwei Wege beschrieben, die Anzahl der Fehler zu bestimmen. Einerseits gibt es die Möglichkeit, die Größenordnung der Fehler direkt mit Hilfe der Soft-Information, welche während der Wiederholungscode Decodierung bestimmt wurde, zu berechnen. Die Nutzung der Soft-Information benötigt kaum zusätzlichen Rechenaufwand, jedoch kann damit nicht die exakte Anzahl an Fehlern bestimmt werden sondern nur die Größenordnung der Anzahl der Fehler. Andererseits kann die exakte Anzahl an Fehlern durch Re-Codierung des Cortex-decodierten Wortes (entspricht dem Input-Wort) bestimmt werden. Die Re-Codierung des Input-Wortes ergibt das Cortex-Wiederholungscode-Codewort c. Das Codewort c wird mit dem fehlerbehafteten Wort v'' verglichen und die exakte Anzahl an Fehlern kann bestimmt werden.
Cortex-DecodierungCortex decoding
Für die Cortex-Decodierung wird die inverse Permutation von π0 bestimmt: For the cortex decoding, the inverse permutation of π 0 is determined:
Wir nehmen hier an, dass das Wiederholungscode-decodierte Wort v' mit dem Cortex Decoder, welcher das Prinzip des Cortex-Encoders (wie oben beschrieben) ausnützt, weiter decodiert wird. Das bedeutet, dass 4 Bit Blöcke eines 12 Bit langen Input-Wortes mit dem (8, 4) erweiterten Hamming-Code-codiert werden. Das daraus resultierende Codewort v' besteht aus k = 12 Informationsbits und 12 Kontrollbits.We assume here that the repetition code decoded word v 'is further decoded with the cortex decoder, which exploits the principle of the cortex encoder (as described above). This means that 4-bit blocks of a 12-bit input word are encoded with the (8, 4) extended Hamming code. The resulting codeword v 'consists of k = 12 information bits and 12 control bits.
Anfänglich betrachten wir die k Informationsbits des Wortes v' nach der Wiederholungscode-Decodierung:
v' = (0000 0110 1101 1010 0101 0111) = (v'|v'p),
wobei v' = (0000 0110 1101) die Informationsbits und v'p = (1010 0101 0111) die Kontrollbits darstellen. Gemäß dieser Ausführung sind die am wenigsten zuverlässigen Bits Lrs der Informationsbits genau jene Bits, deren zugehörige Soft-Information auf die höchste Fehlerwahrscheinlichkeit hinweist. In dieser Ausführung sind das jene Bits, deren Soft Information den Wert 2 annimmt. Da wir den Rep(5, 1) Wiederholungscode verwenden, kann die Soft-Information nur die Werte {0, 1, 2} annehmen, d. h. es gibt drei verschiedene Stufen von Soft-Information. Die Werte der Soft-Information werden bestimmt indem man die Summe jedes Wiederholungsblocks (5 Bits) berechnet. Wenn die Summe die Werte 0 oder 5 annimmt, dann ist die Soft-Information an der entsprechenden Stelle 0. Wenn die Summe die Werte 1 oder 4 annimmt, dann ist die Soft-Information an der entsprechenden Stelle 1 und wenn die Summe die Werte 2 oder 3 annimmt, so ist die Soft-Information an der entsprechenden Stelle 2.Initially we consider the k information bits of the word v 'after the repetition code decoding:
v '= (0000 0110 1101 1010 0101 0111) = (v' | v ' p ),
where v '= (0000 0110 1101) represents the information bits and v' p = (1010 0101 0111) the control bits. According to this embodiment, the least reliable bits L rs of the information bits are precisely those bits whose associated soft information indicates the highest error probability. In this embodiment, these are those bits whose soft information takes the
Die so gewonnene Soft-Information ist hilfreich, da sie die Positionen im erhaltenen Wort anzeigt, an welchen Fehler am wahrscheinlichsten auftreten. Je höher ein Element im Vektor L ist, desto wahrscheinlicher ist es, dass das zugehörige Bit fehlerhaft ist. Im Weiteren bezeichnet Ls die Soft-Information für die k Informationsbits und Lp die Soft-Information für die k Kontrollbits. In der hier beschriebenen Ausführung können die am wenigsten zuverlässigen Bits Lrs wie folgt beschrieben werden:
Lrs = Ls = (0020 0000 0020), wobei '2' ein am wenigsten zuverlässigen Bits anzeigt.The soft information thus obtained is helpful in that it indicates the positions in the received word at which errors are most likely to occur. The higher an element in vector L, the more likely it is that the associated bit is erroneous. Furthermore, L s denotes the soft information for the k information bits and L p the soft information for the k control bits. In the embodiment described herein, the least reliable bits L rs can be described as follows:
L rs = L s = (0020 0000 0020), where '2' indicates a least reliable bit.
N Fehlermuster Vsi, i = 1...N, werden aus den Informationsbits v's von v' gebildet, indem einige der am wenigsten zuverlässigen Bits invertiert werden, d. h. 1 wird zu 1 + 1 mod 2 = 0 und 0 wird zu 0 + 1 mod 2 = 1. In diesem Beispiel setzen wir N: = 4 aber in anderen Ausführungsbeispielen kann N auch größer gewählt werden.
vs1 = (0000 0110 1101)
vs2 = (0010 0110 1111)
vs3 = (0000 0110 1111)
vs4 = (0010 0110 1101) N error patterns V si , i = 1 ... N, are formed from the information bits v ' s of v' by inverting some of the least reliable bits, ie, 1 becomes 1 + 1
v s1 = (0000 0110 1101)
v s2 = (0010 0110 1111)
v s3 = (0000 0110 1111)
v s4 = (0010 0110 1101)
Diese Fehlermuster werden danach mit dem Cortex-Wiederholungsencoder re-codiert. Daraus entsteht folgende Liste von Codewort-Kandidaten:
v's1 = (0000 0110 1101 1111 0110 1000)
v's2 = (0010 0110 1111 0100 1110 0001)
v's3 = (0000 0110 1111 0001 1101 1010)
v's4 = (0010 0110 1101 1010 0101 0011)These error patterns are then re-encoded with the Cortex Reroute Encoder. This results in the following list of codeword candidates:
v ' s1 = (0000 0110 1101 1111 0110 1000)
v ' s2 = (0010 0110 1111 0100 1110 0001)
v ' s3 = (0000 0110 1111 0001 1101 1010)
v ' s4 = (0010 0110 1101 1010 0101 0011)
Anschließend wird der Euklidische Abstand zwischen v' (dem erhaltenen Wort nach der Wiederholungscode Decodierung) und den re-codierten Fehlermustern berechnet. Diese Berechnungen ergeben:
d(v', v's1) = 8 d(v', v's3) = 8d(v', v's2) = 10d(v', v's4) = 2Subsequently, the Euclidean distance between v '(the received word after repetition code decoding) and the re-coded error patterns is calculated. These calculations yield:
d (v ', v' s1 ) = 8d (v ', v' s3 ) = 8d (v ', v' s2 ) = 10d (v ', v' s4 ) = 2
Nun wird derselbe Vorgang für die k = 12 Kontrollbits v'p durchgeführt. Wir betrachten zunächst die am wenigsten zuverlässigen Bits Lrp der Kontrollbits v'p von v'. Wie oben wird N = 4 gewählt und die Fehlermuster Vpi, i = 1...N, werden bestimmt, indem man einige der am wenigsten zuverlässigen Bits invertiert.Now, the same process is performed for the k = 12 control bits v ' p . We first consider the least reliable bits L rp of the control bits v ' p of v'. As above, N = 4 is selected and the error patterns V pi , i = 1 ... N are determined by inverting some of the least reliable bits.
Lp = Lrp = (0200 0000 0200), wobei '2' ein am wenigsten zuverlässigen Bits anzeigt
Vp1 = (1000 0101 0011)
Vp2 = (1010 0101 0111)
Vp3 = (1000 0101 0111)
Vp4 = (1010 0101 0011)L p = L rp = (0200 0000 0200), where '2' indicates a least reliable bit
V p1 = (1000 0101 0011)
V p2 = (1010 0101 0111)
V p3 = (1000 0101 0111)
V p4 = (1010 0101 0011)
Dieses Mal werden die Fehlermuster mit dem Cortex-Wiederholungsencoder, welcher die Permutation
v'p1 = (1011 0001 0111 1000 0101 0011)
v'p2 = (0111 1000 0100 1010 0101 0111)
v'p3 = (1110 1111 1110 1000 0101 0111)
v'p4 = (0010 0110 1101 1010 0101 0011)This time, the error patterns with the cortex repeat encoder, which is the permutation
v ' p1 = (1011 0001 0111 1000 0101 0011)
v ' p2 = (0111 1000 0100 1010 0101 0111)
v ' p3 = (1110 1111 1110 1000 0101 0111)
v ' p4 = (0010 0110 1101 1010 0101 0011)
Anschließend wird der Euklidische Abstand zwischen v' (dem erhaltenen Wort nach der Wiederholungscode Decodierung) und den re-codierten Fehlermustern berechnet. Diese Berechnungen ergeben:
d(v', v'p1) = 16 d(v', v'p3) = 8d(v', v'p2) = 8d(v', v'p4) = 2Subsequently, the Euclidean distance between v '(the received word after repetition code decoding) and the re-coded error patterns is calculated. These calculations yield:
d (v ', v' p1 ) = 16d (v ', v' p3 ) = 8d (v ', v' p2 ) = 8d (v ', v' p4 ) = 2
Das Wort v ∊ {v'si, v'pi, i ∊ {1, ..., 4}} mit minimalem Abstand zu v' wird für die Decodierung von v' herangezogen. Der minimale Abstand zwischen v' und einem der re-codierten Fehlermustern beträgt 2, daher wird v' zu v's4= v'p4 decodiert, d. h.
v = (0010 0110 1101 1010 0101 0011).The word v ε {v ' si , v' pi , i ε {1, ..., 4}} with minimum distance to v 'is used for the decoding of v'. The minimum distance between v 'and one of the re-coded error patterns is 2, therefore v' is decoded to v ' s4 = v' p4 , ie
v = (0010 0110 1101 1010 0101 0011).
Die ersten 12 Bits von V entsprechen genau dem Input-Wort.The first 12 bits of V correspond exactly to the input word.
Schlüssel-AbsicherungKey protection
Gemäß dieser Ausführung wird die PUF-Response R dazu verwendet, um einen Anwendungsschlüssel oder andere kritische Benutzerdaten zu sichern. Die PUF-Response kann als individueller Fingerabdruck des SRAM Blocks betrachtet werden, der als privater Schlüssel verwendet wird. Um den Anwendungsschlüssel KY wiederherzustellen, werden sowohl die PUF-Response R als auch der Aktivierungscode benötigt. Daher muss ein Angreifer sowohl in den Besitz des Aktivierungscodes als auch des SRAM PUFs gelangen und diesen auslesen können. Der SRAM PUF kann als Schutz für den Schlüssel angesehen werden.According to this embodiment, the PUF response R is used to secure an application key or other critical user data. The PUF response can be considered as an individual fingerprint of the SRAM block used as a private key. To restore the KY application key, both the PUF response R and the activation code are needed. Therefore, an attacker must be able to access and read the activation code as well as the SRAM PUF. The SRAM PUF can be considered as protection for the key.
Ein SRAM PUF kann beispielsweise verwendet werden um Daten auf einem Speichermedium abzusichern, welches den SRAM PUF enthält. Der Anwendungsschlüssel kann beispielsweise verwendet werden, um Daten, welche auf einem Speichermedium abgelegt sind, sicher zu codieren. Die mit der PUF-Response codierten Daten können nur auf dem Speichermedium decodiert werden, welches den SRAM PUF enthält. Wenn die Daten auf ein anderes Medium kopiert werden, so ist die Decodierung nicht möglich, da der SRAM PUF nicht auf einem anderen Medium geklont werden kann. Daher ist es unmöglich, die codierten Daten auf einem anderen Gerät zu decodieren.An SRAM PUF may be used, for example, to secure data on a storage medium containing the SRAM PUF. The application key can be used, for example, to safely encode data stored on a storage medium. The data encoded with the PUF response can only be decoded on the storage medium containing the SRAM PUF. If the data is copied to another medium, decoding is not possible because the SRAM PUF can not be cloned on another medium. Therefore, it is impossible to decode the encoded data on another device.
Die oben beschriebenen Verfahren und Systeme können auch verwendet werden, um sensible Daten auf Smart-Card ICs und ähnlichen Medien abzusichern.The above-described methods and systems can also be used to secure sensitive data on smart card ICs and similar media.
Helper-Daten HD, welche im Enrolment erzeugt wurden, werden (entsprechend der
Dieses Verfahren der
Es sei angemerkt, dass die Ausführungsbeispiele sämtliche Verfahren mit lediglich exemplarischer Reihenfolge der einzelnen Schritte beschreiben. Die spezielle Reihenfolge der Abläufe wurde nur für illustrative Zwecke angegeben und sollte daher nicht als bindend betrachtet werden. Beispielsweise kann die Reihenfolge von S402 und S403 in der Ausführung von
Es sei ferner angemerkt, dass die Unterteilung der Systeme der
Alle Teile, die in dieser Ausführung beschrieben wurden und in den folgenden Ansprüchen beansprucht werden, können, wenn nicht anders angegeben, als integrierter Schaltkreis z. B. auf einem Chip implementiert werden. Funktionen dieser Teile können, wenn nicht anders angegeben, als Software implementiert werden.All parts described in this embodiment and claimed in the following claims may be used as an integrated circuit, for example, unless otherwise specified. B. be implemented on a chip. Functions of these parts may be implemented as software unless otherwise specified.
Die beschriebenen Verfahren können als Computerprogram implementiert werden, sodass ein Computer und/oder ein Prozessor die Verfahren durchführt, wenn das Computerprogram am Computer und/oder am Prozessor ausgeführt wird. In manchen Ausführungsbeispielen wird ein nicht-flüchtiges und computerlesbares Speichermedium zur Verfügung gestellt, welches ein Computerprogramm speichert. Wenn dieses Programm von einem Prozessor wie oben beschrieben ausgeführt wird, werden die beschriebenen Verfahren durchgeführt.The described methods may be implemented as a computer program so that a computer and / or a processor performs the procedures when the computer program is executed on the computer and / or on the processor. In some embodiments, a non-transitory and computer-readable storage medium is provided which stores a computer program. When this program is executed by a processor as described above, the described methods are performed.
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014218384.7A DE102014218384B3 (en) | 2014-09-12 | 2014-09-12 | Recovery of a binary response pattern from a noisy channel |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014218384.7A DE102014218384B3 (en) | 2014-09-12 | 2014-09-12 | Recovery of a binary response pattern from a noisy channel |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102014218384B3 true DE102014218384B3 (en) | 2015-12-31 |
Family
ID=54840060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102014218384.7A Expired - Fee Related DE102014218384B3 (en) | 2014-09-12 | 2014-09-12 | Recovery of a binary response pattern from a noisy channel |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102014218384B3 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009099308A2 (en) * | 2008-02-05 | 2009-08-13 | Lg Electronics Inc. | Method for transmitting control information in wireless communication system |
EP2773061A2 (en) * | 2013-02-28 | 2014-09-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | A method and an apparatus for deriving secret information from a series of response values and a method and an apparatus for providing helper data allowing to derive a secret information |
-
2014
- 2014-09-12 DE DE102014218384.7A patent/DE102014218384B3/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009099308A2 (en) * | 2008-02-05 | 2009-08-13 | Lg Electronics Inc. | Method for transmitting control information in wireless communication system |
EP2773061A2 (en) * | 2013-02-28 | 2014-09-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | A method and an apparatus for deriving secret information from a series of response values and a method and an apparatus for providing helper data allowing to derive a secret information |
Non-Patent Citations (2)
Title |
---|
ADDE, P. [et al.]: Design and implementation of a soft-decision decoder für Cortex codes. In: IEEE International Conference on Electronics, Circuits and Systems, 2010, S.663-666. - ISBN 978-1-4244-8155-2 * |
ADDE, P. [et al.]: Design and implementation of a soft-decision decoder für Cortex codes. In: IEEE International Conference on Electronics, Circuits and Systems, 2010, S.663-666. – ISBN 978-1-4244-8155-2 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102011085602B4 (en) | Apparatus and method for correcting at least one bit error in a coded bit sequence | |
DE102017110389B4 (en) | Method and decoder for soft input decoding of generalized chained codes | |
DE102017103347B4 (en) | PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY | |
DE112011101852B4 (en) | Decode LDPC code | |
DE102014215252B9 (en) | EFFECTIVE CORRECTION OF MULTI-BIT ERRORS | |
DE102016102590B4 (en) | DATA PROCESSING DEVICES AND METHOD FOR RECONSTRUCTING A PUF VALUE | |
EP3131219B1 (en) | Puncturing of ldpc codes | |
DE102011087634A1 (en) | DEVICE AND METHOD FOR DETECTING AN ERROR IN A CODED BINARY WORD | |
DE102017216264B4 (en) | Decoding method | |
DE102020110787B3 (en) | CIRCUIT AND PROCEDURE FOR ENCODING OR DECODING A DATA WORD | |
DE102014218384B3 (en) | Recovery of a binary response pattern from a noisy channel | |
DE102013219088B9 (en) | Circuit arrangement and method for realizing check bit compaction for cross-parity codes | |
DE102013201422B3 (en) | Method for restoring lost and/or damaged data transmitted from transmitting device to receiving device, involves replacing current entry of LDPC parity check matrix with entry of Galois field until entry in matrix is modified | |
DE102010041680A1 (en) | Apparatus and method for determining a position of a 1-bit error in a coded bit sequence, apparatus and method for correcting a 1-bit error in a coded bit sequence, and a decoder and method for decoding a defective coded bit sequence | |
DE102015111729A1 (en) | PROCEDURE AND DECODER FOR DETERMINING AN ERROR VECTOR FOR A DATA WORD ACCORDING TO A REED-MULLER CODE | |
DE102013001740B3 (en) | Arrangement for decoding of data word by Reed Muller codes or equivalent codes, has output terminals linked with precise summing module, where length of code, number of symbols of data word to be corrected are represented in summing modules | |
DE102022111624B4 (en) | Error correction with fast syndrome calculation | |
DE102011102503B3 (en) | Method for correcting corrupted data, involves generating tanner graph as representation of parity check-matrix of linear block code, and setting all variable nodes of tanner graph in unverified status | |
DE102017200075B4 (en) | Decryption method and communication system | |
DE102015121646B4 (en) | ERROR CORRECTION | |
DE102014214451B4 (en) | Procedure for recovering lost and / or corrupted data | |
DE102013218311B4 (en) | Procedure for recovering lost and / or damaged data | |
DE102013223413B4 (en) | Procedure for recovering lost and / or corrupted data | |
DE102012223040B3 (en) | Method for restoring missing and/or damaged data transmitted from transmission device to receiving device in communication system, involves concatenating LDPC code with repetition code such that code word is multiplied with coefficient | |
DE102013223801B4 (en) | Procedure for recovering lost and / or corrupted data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |