DE102014218384B3 - Recovery of a binary response pattern from a noisy channel - Google Patents

Recovery of a binary response pattern from a noisy channel Download PDF

Info

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
Application number
DE102014218384.7A
Other languages
German (de)
Inventor
Martin Deutschmann
Verena Brunner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technikon Forschungs- und Planungsgesellschaft Mbh
Technikon Forschungs und Planungsgmbh
Original Assignee
Technikon Forschungs- und Planungsgesellschaft Mbh
Technikon Forschungs und Planungsgmbh
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Technikon Forschungs- und Planungsgesellschaft Mbh, Technikon Forschungs und Planungsgmbh filed Critical Technikon Forschungs- und Planungsgesellschaft Mbh
Priority to DE102014218384.7A priority Critical patent/DE102014218384B3/en
Application granted granted Critical
Publication of DE102014218384B3 publication Critical patent/DE102014218384B3/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2945Coding, 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3776Decoding 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/613Use of the dual code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error 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 WO 2013/083415 A2 offenbart ein kryptografisches System zur reproduzierbaren Generierung einer verlässlichen Zeichenkette, wie zum Beispiel eines kryptografischen Schlüssels von einer verrauschten Physically Unclonable Function (PUF).The International Patent Publication WO 2013/083415 A2 discloses a cryptographic system for reproducibly generating a reliable string, such as a cryptographic key from a noisy Physically Unclonable Function (PUF).

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 WO 2009/099308 A2 offenbart ein Verfahren zum Übersenden von Steuerinformationen in einem Funkkommunikationssystem, wobei das Verfahren auf einer Block- und Wiederholungscode-Codierung beruht.The international patent application WO 2009/099308 A2 discloses a method of transmitting control information in a radio communication system, the method being based on block and repetition code coding.

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 EP 2 773 061 A2 ist eine Verknüpfung eines rekonstruierten Signals mit Helper-Daten bekannt, um ein fehlerfreies Signal zu erhalten.From the European patent application EP 2 773 061 A2 For example, linkage of a reconstructed signal with helper data is known in order to obtain an error-free signal.

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:

1 schematisch ein Ausführungsbeispiel eines Enrolments gemäß der vorliegenden Erfindung zeigt; 1 schematically shows an embodiment of Enrolments according to the present invention;

2 schematisch ein Ausführungsbeispiel einer Rekonstruktion gemäß der vorliegenden Erfindung zeigt; 2 schematically shows an embodiment of a reconstruction according to the present invention;

3 schematisch ein Ausführungsbeispiel eines Enrolment-Prozesses gemäß der vorliegenden Erfindung zeigt; 3 schematically shows an embodiment of an enrollment process according to the present invention;

4 schematisch eine Darstellung eines Rekonstruktionsprozesses gemäß der vorliegenden Erfindung zeigt; 4 schematically shows an illustration of a reconstruction process according to the present invention;

5 schematisch eine dreistufiges Codierungschema zeigt, welches den erweiterten [8, 4, 4] Hamming-Code als kurzen Basiscode und zwei Bit-Permutationen zwischen den drei Stufen verwendet; 5 schematically shows a three-stage coding scheme using the extended [8, 4, 4] Hamming code as a short base code and two bit permutations between the three stages;

6a und 6b schematisch einen Anwendungsfall zeigt, in welchem der Cortex-Wiederholungscode verwendet wird, um einen Anwendungsschlüssel abzusichern; und 6a and 6b schematically shows an application in which the cortex retry code is used to secure an application key; and

7 schematisch ein Ausführungsbeispiel für ein Verfahren zur Bestimmung der Anzahl der Fehler in einem fehlerbehafteten Wort zeigt, welches beispielsweise für eine Warnfunktion verwendet werden kann. 7 schematically shows an embodiment of a method for determining the number of errors in a faulty word, which can be used for example for a warning function.

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 length 120 bits, it can be assumed that the original code word of 24 bits has been repeated five times. According to this example, repetition code decoding results in a repetition code decoded word of 24 bits in length.

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 soft information 1, and if the sum is 2 or 3, it is equal to 2 for the soft information.

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.

1 zeigt schematisch ein Ausführungsbeispiel für das Enrolment gemäß der vorliegenden Erfindung. 1 schematically shows an embodiment of the enrollment according to the present invention.

Ein SRAM PUF 101 agiert als ein Beispiel eines verrauschten Kanals. SRAM PUF 101 generiert eine PUF-Response R, welche gemäß dieser Ausführung ein binäres Bitmuster mit 120 Bit Länge darstellt.A SRAM PUF 101 acts as an example of a noisy channel. SRAM PUF 101 generates a PUF response R which, according to this embodiment, represents a binary bit pattern with a length of 120 bits.

Ein Cortex-Encoder 103 ist dazu vorgesehen, ein binäres Input-Wort w der Länge 12 Bits zu erhalten. Das Input-Wort w ist zufällig gewählt. Der Cortex-Encoder 103 dieses Ausführungsbeispiels ist eine Hardware-Implementierung des Mechanismus, welcher ausführlicher unten im Kapitel „Cortex-Codierung” beschrieben wird. Der Cortex-Encoder 103 wendet ein dreistufiges Codierungsschema auf das Input-Wort w an, welches einen [8, 4, 4] erweiterten Hamming-Code als kurzen Basiscode und zwei Bitpermutationen zwischen den drei Stufen verwendet. Der Cortex-Encoder 103 liefert als Ausgabe ein Cortex-Codewort c' der Länge 24 Bit. Das Cortex-Codewort c' von 24 Bit Länge kann als korrespondiertes [24, 12, 8] Golay-Codewort gesehen werden.A cortex encoder 103 is intended to obtain a binary input word w of length 12 bits. The input word w is chosen randomly. The cortex encoder 103 This embodiment is a hardware implementation of the mechanism described in more detail below in the chapter "Cortex Encoding". The cortex encoder 103 applies a three-level coding scheme to the input word w, which uses a [8, 4, 4] extended Hamming code as a short base code and two bit permutations between the three stages. The cortex encoder 103 delivers as output a cortex codeword c 'of length 24 bits. The 24-bit cortex codeword c 'can be considered a corresponding [24, 12, 8] Golay codeword.

Das Cortex-Codewort c' mit 24 Bit Länge wird weitergeführt zu einem Wiederholungsencoder 105, welcher einen Rep(5, 1) Code anwendet, so dass jedes Bit 5 mal wiederholt wird. Die Funktionalität des Wiederholungsencoders 105 ist im Kapitel „Wiederholungscode-Codierung” ausführlicher beschrieben. Der Wiederholungsencoder 105 liefert als Output ein Cortex-Wiederholungscode-Codewort c der Länge 120 Bit.The 24-bit cortex codeword c 'continues to a repetition encoder 105 which applies a Rep (5, 1) code such that each bit is repeated 5 times. The functionality of the retry encoder 105 is described in more detail in the chapter "Repeat Code Encoding". The repeat encoder 105 provides as output a 120 bit cortex repetition code codeword c.

Das Cortex-Wiederholungscode-Codewort c der Länge 120 Bit wird zur PUF-Response R in einer XOR-Einheit 107 addiert, um die Helper-Daten HD der Länge 120 Bits zu produzieren. Die XOR-Einheit 107 in dieser Ausführung implementiert eine XOR-Operation aller Bits der PUF-Response R mit den jeweiligen Bits des Cortex-Wiederholungscode-Codewortes c.The 120-bit cortex repetition code codeword c becomes the PUF response R in an XOR unit 107 added to produce the 120-bit long helper data HD. The XOR unit 107 In this embodiment, an XOR operation of all bits of the PUF response implements R with the respective bits of the cortex repeat code codeword c.

2 zeigt schematisch ein Ausführungsbeispiel der Rekonstruktion gemäß der vorliegenden Erfindung. Die Rekonstruktion erhält als Eingangsparameter verrauschte Daten, hier ein fehlerbehaftetes Wort c'' der Länge 120 Bit, welches gewonnen wird, indem eine PUF-Response R' (hier auch ,fehlerbehaftete Inputdaten') der Länge 120 Bits vom SRAM PUF 201 mit Helper-Daten HD der Länge 120 Bits, mit Hilfe einer XOR-Einheit 211 kombiniert werden. Für den Zweck dieses Ausführungsbeispiels sind der SRAM PUF 201, welcher in der Rekonstruktion verwendet wird (2), und der SRAM PUF 101, welcher im Enrolment verwendet wird (1), identisch und die Helper-Daten HD, welche in der Rekonstruktion verwendet werden, sind identisch zu den Helper-Daten, welche im Enrolment gewonnen werden (1). 2 schematically shows an embodiment of the reconstruction according to the present invention. The reconstruction receives noisy data as an input parameter, here an error-prone word c "of length 120 bits, which is obtained by a PUF response R '(here also, error-prone input data') of length 120 bits from the SRAM PUF 201 with helper data HD of length 120 bits, using an XOR unit 211 be combined. For the purpose of this embodiment, the SRAM are PUF 201 which is used in the reconstruction ( 2 ), and the SRAM PUF 101 which is used in enrollment ( 1 ), and the helper data HD used in the reconstruction are identical to the helper data obtained in enrollment ( 1 ).

Die Rekonstruktion startet mit einer Wiederholungscode-Decodierung des erhaltenen fehlerbehafteten Wortes v'' mit Hilfe des Wiederholungsdecoders 203, wodurch ein Wiederholungscode-decodiertes Wort v' der Länge 24 Bit und Soft-Information L (z. B. Information über die Fehlerwahrscheinlichkeit der einzelnen Bits) gewonnen werden (Soft Decoder). Die Funktionalität des Wiederholungsdecoders 203 ist unten im Kapitel „Wiederholungscode-Decodierung” ausführlicher beschrieben. Gemäß der Ausführung wird die Soft-Information L gewonnen, indem die verrauschten Bits in den separaten Wiederholungsblöcken während der Wiederholungscode-Decodierung gezählt werden, wie es zum Beispiel unten im Kapitel „Bestimmung der Soft-Information” beschrieben ist. Erwartet werden fehlerfrei Blöcke von entweder alles Einsen oder alles Nullen, jedoch flippen gewisse Bits aufgrund des Rauschens und die Anzahl der geflippten Bits ist ein klarer Hinweis über die Fehlerwahrscheinlichkeit gewisser Bits. Diese Soft-Information L wird zum Cortex-Decoder 205 weitergeführt, welcher eine effiziente Decodierungsprozedur ermöglicht, da mit großer Wahrscheinlichkeit die richtigen Fehlermuster für die Decodierung generiert werden.The reconstruction starts with a repetition code decoding of the obtained erroneous word v "with the aid of the repetition decoder 203 whereby a repetition code decoded word v 'of length 24 bits and soft information L (eg information about the error probability of the individual bits) are obtained (soft decoder). The functionality of the repeat decoder 203 is described in more detail below in the chapter "Repeat Code Decoding". According to the embodiment, the soft information L is obtained by counting the noisy bits in the separate repeat blocks during the repetition code decoding, for example as described below in the chapter "Determination of soft information". Error-free blocks are expected from either all ones or all zeros, but certain bits are flipping due to noise and the number of bits flipped is a clear indication of the error probability of certain bits. This soft information L becomes the cortex decoder 205 continued, which allows an efficient decoding procedure, since with a high probability the correct error pattern for the decoding are generated.

Das Wiederholungscode-decodierte Wort v' der Länge 24 Bits wird dann weitergeführt zum Cortex-Decoder 205, welcher Cortex-Decodierung unter Berücksichtigung der Soft-Information L durchführt. Die Funktionalität des Cortex-Decoders 205 wird unten im Kapitel „Cortex-Decoder” ausführlicher beschrieben. Das Cortex-Decodieren im Cortex-Decoder 205 resultiert in einem Codewort v der Länge 24 Bit. Wenn alle Fehler korrigiert wurden, dann entsprechen die Informationsbits dieses Codewortes v, d. h. die 12 Bits ganz links exakt der codierten Nachricht, d. h. sie sind identisch zum Input-Wort w von 12 Bit Länge, welches während des Enrolments dem Cortex-Encoder (1) zugeführt wurde.The repetition code decoded word v 'of length 24 bits is then passed to the cortex decoder 205 , which performs cortex decoding in consideration of the soft information L. The functionality of the Cortex decoder 205 is described in more detail in the chapter "Cortex Decoder" below. Cortex decoding in the Cortex decoder 205 results in a codeword v of length 24 bits. If all the errors have been corrected, then the information bits of this codeword v, ie the 12 bits on the far left correspond exactly to the coded message, ie they are identical to the input word w of 12 bit length, which during enrollment corresponds to the cortex encoder (FIG. 1 ) was supplied.

Das zurückgewonnene Input-Wort w von 12 Bits Länge wird dann mit Hilfe des Cortex-Encoders 213 und des Wiederholungsencoders 215 re-codiert, um das Cortex- Wiederholungscode-Codewort c mit 120 Bits wiederzuerhalten. Die Funktionalität des Cortex-Encoders 213 und des Wiederholungsencoders 215 ist identisch zur Funktionalität des Cortex-Encoders 103 und des Wiederholungsencoders 105 in 1. Derselbe Codierungsprozess, bzgl. der Encoder-Ausführung in 1 kann verwendet werden, um das Cortex-Wiederholungscode-Codewort c der Länge 120 Bits zu gewinnen. Insbesondere können der Cortex-Encoder 213 und der Wiederholungsencoder 215 identisch zum Cortex-Encoder 103 und dem Wiederholungsencoder 105 sein (zum Beispiel könnte eine identische physikalische Einheit oder identische Software für diese Einheiten verwendet werden).The recovered input word w of 12 bits in length is then read using the cortex encoder 213 and the repeat encoder 215 re-encodes to recover the 120-bit cortex repeat code codeword c. The functionality of the Cortex encoder 213 and the repeat encoder 215 is identical to the functionality of the Cortex encoder 103 and the repeat encoder 105 in 1 , The same encoding process, regarding the encoder execution in 1 can be used to obtain the 120-bit length cortex repeat code codeword c. In particular, the cortex encoder can 213 and the repeat encoder 215 identical to the Cortex encoder 103 and the polling encoder 105 (for example, an identical physical unit or software could be used for these units).

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 217 XOR-verknüpft, um die fehlerlose PUF-Response R von 120 Bit Länge als rauschfreies binäres Signal rückzugewinnen. Die Helper-Daten HD, welche der XOR-Einheit 217 zugeführt werden, sind identisch zu den Helper-Daten HD, welche der XOR-Einheit 211 zugeführt werden. Diese Helper-Daten HD korrespondieren zu den Helper-Daten, die während des Enrolments (1) gewonnen wurden. Da die Helper-Daten HD und das Cortex-Wiederholungscode-Codewort c identisch zu den im Enrolment gewonnen Werten sind, ist die rückgewonnene PUF-Response R von 120 Bits identisch zur PUF-Response R des Enrolment Prozesses in 1. Das heißt, dass mit Hilfe des Rekonstruktionsprozesses die PUF-Response R als rauschfreie binäre Daten vom verrauschten Kanal 201 gewonnen werden.The newly recovered 120-bit cortex repeat code codeword c, which was obtained after re-encoding, is then used with the helper data HD of length 120 bits using the XOR unit 217 XOR-linked to recover the flawless PUF response R of 120 bits in length as a noise-free binary signal. The helper data HD, which is the XOR unit 217 are identical to the helper data HD, which is the XOR unit 211 be supplied. These helper data HD correspond to the helper data obtained during enrollment ( 1 ) were won. Since the helper data HD and the cortex repeat code codeword c are identical to the values obtained in enrollment, the recovered PUF response R of 120 bits is identical to the PUF response R of the enrollment process in FIG 1 , That is, with the help of the reconstruction process, the PUF response R as noise-free binary data from the noisy channel 201 be won.

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).

3 beschreibt schematisch ein Ausführungsbeispiel des Enrolment-Prozesses gemäß der vorliegenden Erfindung. Im Schritt S301 wird das binäre Input-Wort w (12 Bits) mit einem dreistufigen Cortex-Encoder codiert, um ein Cortex-Codewort c' (24 Bits) zu gewinnen. Im Schritt S302 wird das Cortex-Codewort c' mit einem Wiederholungscode Rep(5,1,5) codiert, um ein Cortex-Wiederholungscode-Codewort c (120 Bits) zu erhalten. Im Schritt S303 wird die PUF-Response R (120 Bits) und das Codewort c (120 Bits) XOR-verknüpft und das Ergebnis wird das Helper-Daten HD (120 Bits) abgespeichert. 3 describes schematically an embodiment of the enrollment process according to the present invention. In step S301, the binary input word w (12 bits) is encoded with a three-stage cortex encoder to obtain a cortical codeword c '(24 bits). In step S302, the cortex codeword c 'is coded with a repetition code Rep (5,1,5) to obtain a cortical repetition code codeword c (120 bits). to obtain. In step S303, the PUF response R (120 bits) and the codeword c (120 bits) are XOR-linked, and the result is stored the helper data HD (120 bits).

4 beschreibt schematisch ein Ausführungsbeispiel des Rekonstruktionsprozesses gemäß der vorliegenden Erfindung. Im Schritt S401 wird eine verrauschte PUF-Response R' (120 Bits) und Helper-Daten HD (120 Bits) XOR-verknüpft, um ein fehlerbehaftetes Wort v'' (120 Bits) zu erhalten. Im Schritt S402 wird eine Wiederholungscode-Decodierung auf das fehlerbehaftete Codewort v'' angewandt, um das Wiederholungscode-decodierte Wort v' (24 Bits) zu generieren. Im Schritt S403 wird Information über die Bitfehlerwahrscheinlichkeit L (Soft-Information) auf Basis des fehlerbehafteten Wortes v'' (120 Bits) und des Wiederholungscode-decodierten Wortes v' (24 Bits) gewonnen. Im Schritt S404 wird mit Hilfe der Soft-Information L eine Cortex-Decodierung auf dem Wiederholungscode-decodierten Wort v' (24 Bit) durchgeführt, um das Input-Wort w (12 Bits) zurückzugewinnen. Im Schritt S405 wird das rückgewonnene Input-Wort w (12 Bits) re-codiert, zunächst durch Cortex-Codierung und dann durch Wiederholungscode-Codierung, um das Cortex-Wiederholungscode-Codewort c (120 Bits) rückzugewinnen. Im Schritt S406 wird das rückgewonnene Codewort c (120 Bits) mit den Helper-Daten HD XOR-verknüpft, um die rauschfreie PUF-Response R als fehlerfreies binäres Signal zu erhalten. 4 describes schematically an embodiment of the reconstruction process according to the present invention. In step S401, a noisy PUF response R '(120 bits) and helper data HD (120 bits) is XORed to obtain an erroneous word v''(120 bits). In step S402, repetition code decoding is applied to the errored codeword v '' to generate the repetition code decoded word v '(24 bits). In step S403, information about the bit error probability L (soft information) is obtained on the basis of the erroneous word v '' (120 bits) and the repetition code decoded word v '(24 bits). In step S404, using the soft information L, cortex decoding is performed on the repetition code decoded word v '(24 bits) to recover the input word w (12 bits). In step S405, the recovered input word w (12 bits) is re-encoded, first by cortex coding and then by repetitive code coding to recover the cortex repeat code codeword c (120 bits). In step S406, the recovered codeword c (120 bits) is XORed with the helper data HD to obtain the noise-free PUF response R as a error-free binary signal.

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.

5 beschreibt eine dreistufige Konstruktion, welche den (8, 4) erweiterten Hamming-Code als kurzen Basiscode und zwei Bit-Permutationen zwischen den drei Stufen verwendet. Alternativ zum erweiterten Hamming-Code könnte auch der Hadamard-Code als Basiscode verwendet werden. 5 describes a three-stage construction which uses the (8, 4) extended Hamming code as a short base code and two bit permutations between the three stages. As an alternative to the extended Hamming code, the Hadamard code could also be used as the base code.

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 5 eine Länge von 12 Bits. Das Codierungsschema erzeugt ein Cortex-Codewort c' mit einer Länge von 24 Bits.In the following, an example of a three-stage construction for coding an input word w will be explained. The input word w has, according to the coding scheme in 5 a length of 12 bits. The coding scheme generates a 24 bit cortex codeword c '.

Wir betrachten das Input-Wort w = (0010 0110 1101) und definieren x (0) / i = wi+1, i ∊ {0, 1, ..., 11}.We consider the input word w = (0010 0110 1101) and define x (0) / i = w i + 1 , i ε {0, 1, ..., 11}.

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).

Figure DE102014218384B3_0002
Figure DE102014218384B3_0002

Daraus ergeben sich folgende Kontrollbits:

Figure DE102014218384B3_0003
This results in the following control bits:
Figure DE102014218384B3_0003

Außerdem benötigen wir eine Permutation der Elemente {0, ..., 11}. In diesem Fall wählen wir π0 wie folgt:

Figure DE102014218384B3_0004
In addition, we need a permutation of the elements {0, ..., 11}. In this case we choose π 0 as follows:
Figure DE102014218384B3_0004

Die Cortex-Codierung beginnt damit, w in Blöcke von 4 Bits aufzuteilen (erster Block: x (0) / 0, x (0) / 1, x (0) / 2, x (0) / 3 zweiter Block: x (0) / 4, x (0) / 5, x (0) / 6, x (0) / 7 dritter Block: x (0) / 8, x (0) / 9, x (0) / 10, x (0) / 11 ). Die Kontrollbits r (0) / i, i ∊ {0, 1, ..., 11} werden für jeden Block mit dem Basiscode Cb(8, 4) bestimmt.Cortex coding begins by dividing w into 4-bit blocks (first block: x (0) / 0, x (0) / 1, x (0) / 2, x (0) / 3 second block: x (0) / 4, x (0) / 5, x (0) / 6, x (0) / 7 third block: x (0) / 8, x (0) / 9, x (0) / 10, x (0) / 11 ). The control bits r (0) / i, i ε {0, 1, ..., 11} are determined for each block with the base code C b (8, 4).

Figure DE102014218384B3_0005
Figure DE102014218384B3_0005

Im nächsten Schritt der Codierung wird die Permutation π0 auf R(0) = (r (0) / 0, r (0) / 1, ...., r (0) / 11) angewandt. Dies ergibt

Figure DE102014218384B3_0006
Figure DE102014218384B3_0007
In the next step of the coding, the permutation π 0 becomes R (0) = (r (0) / 0, r (0) / 1, ...., r (0) / 11) applied. This results
Figure DE102014218384B3_0006
Figure DE102014218384B3_0007

Anschließend wird x(1) ebenfalls in Blöcke von 4 Bits aufgeteilt (erster Block: x (1) / 0, x (1) / 1, x (1) / 2, x (1) / 3, zweiter Block: x (1) / 4, x (1) / 5, x (1) / 6, x (1) / 7, dritter Block: x (1) / 8, x (1) / 9, x (1) / 10, x (1) / 11 ) und die Kontrollbits r (1) / i, i ∊ {0, 1, ..., 11} werden mit Hilfe des Basiscodes Cb(8, 4) bestimmt.Then x (1) is also split into blocks of 4 bits (first block: x (1) / 0, x (1) / 1, x (1) / 2, x (1) / 3, second block: x (1) / 4, x (1) / 5, x (1) / 6, x (1) / 7, third block: x (1) / 8, x (1) / 9, x (1) / 10, x (1) / 11 ) and the control bits r (1) / i, i ε {0, 1, ..., 11} are determined with the aid of the basic code C b (8, 4).

Figure DE102014218384B3_0008
Figure DE102014218384B3_0008

Die Permutation π1 = π0 wird nun auf R(1) angewandt. Dies ergibt

Figure DE102014218384B3_0009
Figure DE102014218384B3_0010
The permutation π 1 = π 0 is now applied to R (1) . This results
Figure DE102014218384B3_0009
Figure DE102014218384B3_0010

Im nächsten Schritt wird X( 2 ) in Blöcke von 4 Bits aufgeteilt und die Kontrollbits r (2) / i, i ∊ {0, 1, ..., 11} werden bestimmt. In the next step, X ( 2 ) is divided into 4-bit blocks and the control bits r (2) / i, i ε {0, 1, ..., 11} are determined.

Figure DE102014218384B3_0011
Figure DE102014218384B3_0011

Das Codewort c' (hier „Cortex-Codewort”) entspricht nun c' = (x (0) / 0 ... x (0) / 11, r (2) / 0...r (2) / 11) .
c' = (0010 0110 1101 1010 0101 0011)
The codeword c '(here "cortex codeword") now corresponds c '= (x (0) / 0 ... x (0) / 11, r (2) / 0 ... r (2) / 11) ,
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:

Figure DE102014218384B3_0012
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:
Figure DE102014218384B3_0012

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.

Figure DE102014218384B3_0013
Figure DE102014218384B3_0013

Bei der Decodierung des Rep(n, 1) Wiederholungscodes können n – 1 Fehler entdeckt und [ n – 1 / 2] Fehler korrigiert werden. Die Decodierung wird wie folgt durchgeführt:

  • 1. Teile das Codewort in Blöcke von n Bits
  • 2. Wenn mehr als [ / n2] Bits in einem Block von n Bits den Wert 0 haben, dann ergibt die Decodierung des Blocks den entsprechenden Wert 0. Wenn mehr als [ / n2] Bits in einem Block von n Bits den Wert 1 haben, dann ergibt die Decodierung des Blocks den 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.
When decoding the Rep (n, 1) repetition code, n - 1 errors can be detected and [n - 1/2] Errors are corrected. The decoding is done as follows:
  • 1. Divide the codeword into blocks of n bits
  • 2. If more than [/ n2] If bits in a block of n bits have the value 0, then the decoding of the block gives the corresponding value 0. If more than [/ n2] If bits in a block of n bits have the value 1, then the decoding of the block gives the corresponding value 1.
  • 3. If n is an even number and exactly [/ n2] Bits 0 and [/ n2] Bits are 1, then the decoding is not unique. In order to avoid this case, n odd may be selected in a practical application.

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 values 0 or 5, then the soft information at the corresponding location is 0. If the sum takes the values 1 or 4, then the soft information at the corresponding location is 1 and when the sum is the value 2 or 3, the soft information is at the corresponding location 2. L can be calculated by repeating v 'n times, subtracting the result from v' ', determining the absolute values of each element (-1 replaced by 1) and counting the number of 1's in each block of n bits.

Figure DE102014218384B3_0014
Figure DE102014218384B3_0014

Figure DE102014218384B3_0015
Figure DE102014218384B3_0015

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. 7 beschreibt die Re-Codierung schematisch. Der benötigte Rechenaufwand für das Re-Codieren des Input-Wortes ist vernachlässigbar, da sowohl der Cortex- als auch die Wiederholungsencoder effizient implementiert sind.In addition, a warning function could be used which could trigger an alarm or drive down the system implementing the process if the number of detected faults reaches a certain threshold. Two ways are described here to determine the number of errors. On the one hand, there is the possibility of calculating the magnitude of the errors directly using the soft information determined during the repetition code decoding. The use of soft information requires little additional computational effort, but it can not be the exact number of errors determined but only the magnitude of the number of errors. On the other hand, the exact number of errors can be determined by re-encoding the cortex-decoded word (corresponding to the input word). The re-encoding of the input word yields the cortex repeat code codeword c. The codeword c is compared with the errored word v "and the exact number of errors can be determined. 7 describes the re-coding schematically. The computational effort required to re-encode the input word is negligible since both the cortex and the repeating encoders are efficiently implemented.

Cortex-DecodierungCortex decoding

Für die Cortex-Decodierung wird die inverse Permutation von π0 bestimmt:

Figure DE102014218384B3_0016
For the cortex decoding, the inverse permutation of π 0 is determined:
Figure DE102014218384B3_0016

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 value 2. Since we use the Rep (5, 1) repetition code, the soft information can only accept the values {0, 1, 2}, ie there are three different levels of soft information. The values of the soft information are determined by calculating the sum of each repetitive block (5 bits). If the sum takes the values 0 or 5, then the soft information at the corresponding location is 0. If the sum takes the values 1 or 4, then the soft information at the corresponding location is 1 and when the sum is the value 2 or 3, the soft information is at the corresponding location 2.

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 mod 2 = 0 and 0 becomes 0 + 1 mod 2 = 1. In this example, we set N: = 4, but in other embodiments, N can also be larger.
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) = 2
Subsequently, 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 π –1 / 0 als Interleaver verwendet, re-codiert. Daraus entsteht eine zweite Liste von Codewort-Kandidaten:
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 π -1 / 0 used as interleaver, re-coded. This results in a second list of codeword candidates:
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) = 2
Subsequently, 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

6a und 6b beschreiben einen Anwendungsfall, in welchem der Cortex-Wiederholungscode verwendet wird um einen Anwendungsschlüssel abzusichern. Für praktische Anwendungen sollte die oben beschriebene Prozedur gegebenenfalls mehrmals ausgeführt werden, um einen Schlüssel gewünschter Länge abzusichern. In dem unten beschriebenen Anwendungsfall wird die Prozedur 10 mal wiederholt. 6a and 6b describe an application in which the cortex retry code is used to secure an application key. For practical applications, the procedure described above should optionally be performed several times to secure a key of desired length. In the use case described below, the procedure becomes 10 repeated.

6a beschreibt das Enrolment. Das Enrolment wird jedes Mal durchgeführt, wenn ein neuer Schlüssel generiert oder gespeichert wird. PUF 601, hier ein SRAM PUF, generiert eine binäre PUF-Response R, welche 1200 Bits lang ist. Ein Anwendungsschlüssel KY, der 120 Bits lang ist, wird in 602 mit dem Cortex-Wiederholungsencoder codiert und ergibt ein Codewort c, welches 1200 Bits lang ist. Das Codewort c und die binäre PUF-Response R werden miteinander XORverknüpft, um Helper-Daten HD zu erzeugen, die 1200 Bits lang sind. Diese Helper-Daten werden als Aktivierungscode für den Anwendungsschlüssel KY verwendet. 6a describes the enrollment. Enrollment is performed each time a new key is generated or saved. PUF 601 , here a SRAM PUF, generates a binary PUF response R which is 1200 bits long. An application key KY, which is 120 bits long, is written in 602 is coded with the cortex repeat encoder and gives a codeword c which is 1200 bits long. The codeword c and the binary PUF response R are XORed together to generate helper data HD which is 1200 bits long. This helper data is used as the activation code for the KY application key.

6b beschreibt die Rekonstruktion. Während der Rekonstruktion werden die Helper-Daten, welche im Enrolment erzeugt wurden, mit einer verrauschten PUF-Response R', welche von PUF 601 erzeugt wurde und 1200 Bits lang ist, XOR-verknüpft. Das Ergebnis dieser Verknüpfung ist das binäre fehlerbehaftete Wort v'', welches mit dem Cortex-Wiederholungsdecoder in 603 decodiert wird um den Anwendungsschlüssel KY zu rekonstruieren. 6b describes the reconstruction. During reconstruction, the helper data generated in the enrollment are compared with a noisy PUF response R 'obtained from PUF 601 was generated and is 1200 bits long, XOR-linked. The result of this linkage is the binary errored word v "which is coupled to the cortex repeat decoder in FIG 603 is decoded to reconstruct the application key KY.

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.

7 zeigt schematisch ein Ausführungsbeispiel für ein Verfahren zur Bestimmung der Anzahl der Fehler im fehlerbehafteten Wort v''. 7 schematically shows an embodiment of a method for determining the number of errors in the error word v ''.

Helper-Daten HD, welche im Enrolment erzeugt wurden, werden (entsprechend der 6b) mit einer verrauschten PUF-Response R', welche von PUF 701 erzeugt wurde und 1200 Bits lang ist, XOR-verknüpft. Das Ergebnis dieser Verknüpfung ist das fehlerbehaftete Codewort v'', welches mit dem Cortex-Wiederholungsdecoder in 703 decodiert wird, um den Anwendungsschlüssel KY zu rekonstruieren. Der Anwendungsschlüssel KY wird nun durch die Cortex-Wiederholungscode-Codierung 702 re-codiert. Als Ausgabe wird das Cortex-Wiederholungscode-codierte Codewort c erhalten, das dann mit dem fehlerbehafteten Codewort v'' verglichen wird und die Anzahl der Fehler bestimmt wird. Als Ergebnis des Vergleichs wird ein Fehlervektor e erhalten. Der Vergleich wird in diesem Ausführungsbeispiel durch eine XOR-Operation des Cortex-Wiederholungscode-Codewortes c und des fehlerbehafteten Wortes v'' erzielt.Helper data HD generated in the enrollment are (according to the 6b ) with a noisy PUF response R ', which of PUF 701 was generated and is 1200 bits long, XOR-linked. The result of this combination is the errored codeword v '' which is connected to the cortex repeat decoder in 703 is decoded to reconstruct the application key KY. The application key KY is now replaced by the cortex repeat code encoding 702 re-coded. The output obtained is the cortex repeat code coded codeword c, which is then compared to the error codeword v "and the number of errors determined. As a result of the comparison, an error vector e is obtained. The comparison is achieved in this embodiment by an XOR operation of the cortex repeat code codeword c and the errored word v ".

Dieses Verfahren der 7 kann beispielsweise für eine Warnfunktion verwendet werden.This method of 7 can be used for example for a warning function.

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 4 vertauscht werden, oder die Schritte S403 und S403 können auch simultan auf kombinierte Weise ausgeführt werden.It should be noted that the embodiments describe all methods with only exemplary order of the individual steps. The specific order of the procedures has been given for illustrative purposes only and should not be considered as binding. For example, the order of S402 and S403 in the execution of 4 The steps S403 and S403 may also be performed simultaneously in a combined manner.

Es sei ferner angemerkt, dass die Unterteilung der Systeme der 1 und 2 in die Blöcke 105, 203, 205, 213, 215 nur für illustrative Zwecke vorgenommen wurde und die Ausführung nicht auf die spezifische Aufteilung von Funktionen auf die angegebenen Blöcke beschränkt ist. Der Cortex-Encoder 103 von 1 und der Cortex-Decoder 213 können beispielsweise Teil derselben physischen Einheit oder Software-Einheit sein. Ähnlich kann die Re-Codierung, welche im Cortex-Decoder 205 stattfindet, mit derselben physischen Einheit oder Software-Einheit implementiert werden wie die Cortex-Codierung in 103 1.It should also be noted that the subdivision of the systems of 1 and 2 in the blocks 105 . 203 . 205 . 213 . 215 has been made for illustrative purposes only and the execution is not limited to the specific allocation of functions to the specified blocks. The cortex encoder 103 from 1 and the Cortex decoder 213 For example, they can be part of the same physical unit or software unit. Similarly, the re-encoding, which in the cortex decoder 205 takes place with the same physical unit or software unit as the cortex encoding in 103 1 ,

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)

Computerimplementiertes Verfahren, umfassend: Wiederholungscode-Decodieren (S402) eines fehlerbehafteten Wortes (v''), welches von einem verrauschten Kanal (201) gewonnen wird, 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 Cortex-Decodieren (S404) des Wiederholungscode-decodierten Wortes (v'), um ein Input-Wort (w) auf Basis der Soft-Information (L) zu rekonstruieren.A computer-implemented method comprising: repetition code decoding (S402) an erroneous word (v '') received from a noisy channel ( 201 ) is obtained 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 an input word (w) based on the soft information (L). Verfahren nach Anspruch 1, welches außerdem die Re-Codierung (S405) des Input-Wortes (w) umfasst, um ein Cortex-Wiederholungscode-Codewort (c) zu rekonstruieren.The method of claim 1, further comprising re-encoding (S405) the input word (w) to reconstruct a cortex repeat code codeword (c). Verfahren nach Anspruch 2, wobei die Re-Codierung (S405) des Input-Wortes (w) eine Cortex-Codierung des Input-Wortes (w) umfasst, um ein Cortex-Codewort (c') zu erhalten, und eine Wiederholungscode-Codierung des Cortex-Codewortes (i'), um ein Cortex-Wiederholungscode-Codewort (c) zu erhalten.The method of claim 2, wherein the re-encoding (S405) of the input word (w) comprises cortex-coding the input word (w) to obtain a cortex codeword (c ') and a repetition code coding of the cortex codeword (i ') to obtain a cortex repeat code codeword (c). Verfahren nach Anspruch 2 oder 3, welches außerdem eine Verknüpfung (S406) des rekonstruierten Cortex-Wiederholungscode-Codewortes (c) mit Helper-Daten (HD) beinhaltet, um ein fehlerfreies binäres Signal (R) vom verrauschten Kanal (201) zu erhalten.A method according to claim 2 or 3, further comprising linking (S406) the reconstructed cortex repeat code codeword (c) with helper data (HD) to obtain an error-free binary signal (R) from the noisy channel (3). 201 ) to obtain. Verfahren nach Anspruch 4, wobei das fehlerfreie Signal (R) eine fehlerlose Physically-Unclonable-Function-Response, PUF-Response, von einem verrauschten Kanal (201) ist.The method of claim 4, wherein the error-free signal (R) comprises a flawless physically-unclonable function-response, PUF-response, from a noisy channel ( 201 ). Verfahren nach einem der vorherigen Ansprüche, welches außerdem eine Verknüpfung von fehlerbehafteten Inputdaten (R') von einem verrauschten Kanal (201) mit Helper-Daten (HD) beinhaltet, um das fehlerbehaftete Wort (v'') zu erhalten.Method according to one of the preceding claims, which also includes a linkage of erroneous input data (R ') from a noisy channel ( 201 ) with helper data (HD) to obtain the erroneous word (v ''). Verfahren nach Anspruch 6, bei dem die fehlerbehafteten Inputdaten (R') eine verrauschte PUF-Response (R') sind und von einem verrauschten Kanal (201) gewonnen werden. Method according to Claim 6, in which the erroneous input data (R ') are a noisy PUF response (R') and from a noisy channel ( 201 ) be won. Verfahren nach einem der vorherigen Ansprüche, wobei das Bestimmen der Soft-Information (L) ein Bestimmen von Bit-Fehler-Wahrscheinlichkeiten auf Basis des erhaltenen Wortes und des Wiederholungscode decodierten Wortes umfasst.The method of any one of the preceding claims, wherein determining the soft information (L) comprises determining bit error probabilities based on the obtained word and the repetition code decoded word. Verfahren nach einem der vorherigen Ansprüche, wobei eine Warnfunktion gegeben ist, welche reagiert sobald eine bestimmte Anzahl von Fehlern erreicht wird.Method according to one of the preceding claims, wherein a warning function is given, which responds as soon as a certain number of errors is reached. Verfahren nach einem der vorherigen Ansprüche, wobei Alterungseffekte inhärent behandelt werden.A method according to any one of the preceding claims, wherein aging effects are inherently treated. Computerimplementiertes Verfahren, umfassend: Cortex-Codieren (S301) eines Input-Wortes (w), um ein Cortex-Codewort (c') zu erhalten; Wiederholungscode-Codierung (S302) des Cortex-Codewortes (c'), um ein Cortex-Wiederholungscode-Codewort (c) zu erhalten; und Verknüpfung des Cortex-Wiederholungscode-Codewortes (c) mit einem binären Signal (R), welches von einem verrauschten Kanal (101) erhalten wird, um Helper-Daten (HD) zu erzeugen.A computer-implemented method, comprising: cortex-coding (S301) an input word (w) to obtain a cortex codeword (c '); Repetition code coding (S302) of the cortical codeword (c ') to obtain a cortical repetition code codeword (c); and linking the cortex repeat code codeword (c) with a binary signal (R) received from a noisy channel ( 101 ) to generate helper data (HD). Verfahren nach einem der vorherigen Ansprüche, wobei der verrauschte Kanal (201) ein Static-Random-Access-Memory PUF, SRAM PUF ist.Method according to one of the preceding claims, wherein the noisy channel ( 201 ) is a static random access memory PUF, SRAM PUF. Verfahren nach einem der Ansprüche 4, 6, oder 11, wobei die Verknüpfung eine XOR-Operation umfasst.The method of any one of claims 4, 6, or 11, wherein the association comprises an XOR operation. System, welches dafür ausgelegt ist, eines der Verfahren der Ansprüche 1 bis 13 auszuführen.A system adapted to carry out one of the methods of claims 1 to 13.
DE102014218384.7A 2014-09-12 2014-09-12 Recovery of a binary response pattern from a noisy channel Expired - Fee Related DE102014218384B3 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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