KR20020087823A - Variable length CRC-32 computation and verification block circuits using input parameter. - Google Patents

Variable length CRC-32 computation and verification block circuits using input parameter. Download PDF

Info

Publication number
KR20020087823A
KR20020087823A KR1020010028186A KR20010028186A KR20020087823A KR 20020087823 A KR20020087823 A KR 20020087823A KR 1020010028186 A KR1020010028186 A KR 1020010028186A KR 20010028186 A KR20010028186 A KR 20010028186A KR 20020087823 A KR20020087823 A KR 20020087823A
Authority
KR
South Korea
Prior art keywords
crc
input
calculation
verification
result
Prior art date
Application number
KR1020010028186A
Other languages
Korean (ko)
Inventor
손승일
Original Assignee
손승일
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 손승일 filed Critical 손승일
Priority to KR1020010028186A priority Critical patent/KR20020087823A/en
Publication of KR20020087823A publication Critical patent/KR20020087823A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

PURPOSE: A block circuit for calculating and verifying the CRC(Cyclic Redundency Check)-32 having a variable length using an input parameter is provided to perform the calculation and the verification of the CRC-32 with a single clock cycle for the input bit number fit to a changed interface size even if carries out the data transaction with any external interface. CONSTITUTION: A CRC-32 C/L part calculates and verifies the CRC-32 by receiving the input of the external variable data. An input selection part(11) selects the input from an initial value and the input from the CRC-32 C/L part by receiving a necessary control signal. A CRC-32 REG part is a register temporally storing a CRC-32 calculation result. An inverter part(13) inverts a final CRC-32 syndrome in order to support a recommendation of the ITU-T(International Telecommunications Union - Telecommunication Standardization Sector) 1.363. A CRC-32 result selection part(14) selects a final calculation result or an inverted result of the CRC-32 calculation. A prediction part(15) stores the prediction value of the syndrome generated by completing a CRC-32 verification logic. A CRC-32 comparison part distinguishes between the true or the false of a CRC-32 verification result.

Description

입력 파라미터를 이용한 가변 길이의 CRC-32 계산 및 검증 블록 회로{Variable length CRC-32 computation and verification block circuits using input parameter.}Variable length CRC-32 computation and verification block circuits using input parameter.

본 발명은 통신, 보안, 네트웍 분야에서 정보 보호를 위해 사용할 수 있는 기술로서 하드웨어 구현시 입력되는 비트의 수에 상관없이 사용자가 지정한 입력 비트 수를 전달받아 단일 클럭에 연산할 수 있는 특징이 있다. 따라서 클럭당 단일 입력 비트의 처리에서 수백 비트의 입력에 대한 처리를 개별적인 하드웨어 기술을 사용하지 않고 입력 비트 수에 대한 파라미터만을 전달하면 전달된 입력 비트에 대한 CRC 계산을 단일 클럭 사이클에 수행할 수 있는 CRC 계산 및 검증에 대한 블록에 대한 것이다.The present invention is a technology that can be used for information protection in the fields of communication, security, and network, and has a feature that a user can input a number of input bits designated by a user and operate on a single clock regardless of the number of bits input when the hardware is implemented. Therefore, in the processing of a single input bit per clock, the processing of hundreds of bits of input can be accomplished by passing only the parameters for the number of input bits, without using separate hardware techniques, to perform CRC calculations on the transmitted input bits in a single clock cycle. For blocks for CRC calculation and verification.

종래 방식의 CRC-32 계산 및 검증에 관한 하드웨어 구현 방식은 일반적으로 특정 비트의 입력에 대해 처리하는 방법으로 입력 비트 수가 변경될 때마다 새롭게 모델링을 수행하여 구현해야 하는 문제가 있다.The hardware implementation of the CRC-32 calculation and verification in the conventional method is generally a method of processing a specific bit of input, and there is a problem in that a new modeling is implemented every time the number of input bits is changed.

기존의 CRC-32 계산시 외부 인터페이스가 어떠한 방식으로 구현되느냐에 따라 이에 맞는 CRC 계산 및 검증 블록을 설계하여야 했다.In the existing CRC-32 calculation, the CRC calculation and verification block had to be designed according to how the external interface was implemented.

이에 본 발명에서는 종래 방식의 이러한 문제점을 해결하기 위해 어떠한 외부 인터페이스와 데이터 트랜잭션을 하더라도 인터페이스 사이즈만을 변경해 주면 이에 맞게 입력되는 비트 수에 대해 단일 클럭 사이클에 CRC-32를 계산하고 검증을 수행할 수 있는 하드웨어적 구현 기법을 제시코자 한다.Therefore, in the present invention, to solve this problem of the conventional method, even if any external interface and data transaction is changed, CRC-32 can be calculated and verified in a single clock cycle with respect to the number of bits inputted accordingly. We will present a hardware implementation technique.

도 1은 본 발명의 전체 시스템의 구조를 나타내는 블록도1 is a block diagram showing the structure of the entire system of the present invention.

도 2는 CRC-32의 계산 HDL 엔터디 블록도Figure 2 is a calculated HDL ENTRY block diagram of CRC-32

도 3은 CRC-32의 검증 HDL 엔터티 블록도3 is a block diagram of a verified HDL entity in CRC-32.

도 4는 비트 단위의 CRC-32 계산 회로도4 is a CRC-32 calculation circuit diagram in bits

도 5는 CRC-32의 핵심 처리부5 is a core processing unit of the CRC-32

■도면의 주요부분에 사용된 부호의 설명 ■Explanation of symbols used in main part of drawing

10 : CRC-32 계산 및 검증에 공통적으로 SYNDROME 계산에 사용되는 CRC-32 C/L부10: CRC-32 C / L part used for SYNDROME calculation common to CRC-32 calculation and verification

11 : 초기값과 중간 계산/검증 결과를 선택하기 위한 입력 선택부11: input selector for selecting initial value and intermediate calculation / verification result

12 : 중간 계산 및 검증 결과를 저장하는 레지스터 CRC32_REG 부12: CRC32_REG part of the register that stores the intermediate calculation and verification results

13 : 최종 CRC-32 계산 결과를 반전하는 반전부13: inverting part to invert the final CRC-32 calculation result

14 : 본래의 CRC-32 계산 결과와 반전된 결과를 선택하는 CRC32 결과 선택부14: CRC32 result selection section for selecting the original CRC-32 calculation result and the inverted result

15 : 입력 데이터에 대해 검증한 결과에 대해 예측되는 값은 저장하는 예측값부15: The predicted value part to store the predicted value for the result of verifying the input

16 : CRC-32 검증이 성공적으로 이루어졌는지를 판단하는 CRC32 비교부16: CRC32 comparison unit to determine whether the CRC-32 verification was successful

20 : CRC-32 계산 블록의 HDL 엔터티 블록도20: HDL entity block diagram of CRC-32 calculation block

30 : CRC-32 검증 블록의 HDL 엔터티 블록도30: HDL entity block diagram of CRC-32 verification block

40 : 단일 비트 CRC-32를 계산하는 회도 블록도40: block diagram for calculating single bit CRC-32

50 : CRC-32 C/L 부의 구현 블록도50: implementation block diagram of the CRC-32 C / L unit

이하에서 상기 목적을 달성하기 위한 본 발명의 CRC-32 계산 및 검증 회로의 구성 및 작용에 대해서 첨부된 도면을 참고하여 상세히 설명한다.Hereinafter, the configuration and operation of the CRC-32 calculation and verification circuit of the present invention for achieving the above object will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 의한 CRC-32 계산 및 검증 회로에 대한 전체 블록 구성도이다.1 is an overall block diagram of a CRC-32 calculation and verification circuit according to the present invention.

도 1을 참조하여 설명하면, 전체 CRC-32 계산 및 검증 회로는 외부 가변 데이터를 입력으로 받아 CRC-32를 계산하고 검증(계산/검증시 동일한 로직사용)하는 CRC-32 C/L 부, 필요한 제어신호를 받아서 초기값과 CRC-32 C/L 부로부터 입력을 선택하는 입력 선택부(11), CRC-32의 계산 결과를 일시적으로 저장하는 레지스터인 CRC32_REG 부, ITU-T 1.363 권고안을 지원하기 위해 최종 CRC-32 신드롬을 반전하는 반전부(13), CRC-32의 최종 계산 결과와 반전된 결과를 선택하는 CRC32 결과 선택부(14), CRC-32 검증 로직을 완료시 생성되는 신드롬의 예측되는 값을 저장하고 있는 예측부(15) 및 CRC-32 검증 결과가 참인지 거짓인지를 판별하기 위한 CRC32 비교부로 구성되어 있다.Referring to FIG. 1, the entire CRC-32 calculation and verification circuit receives an external variable data as an input and calculates and verifies the CRC-32 (using the same logic for calculation / verification). Supporting input selection section 11 for receiving input of control signal and selecting input from CRC-32 C / L section, CRC32_REG section, register that temporarily stores CRC-32 calculation result, and ITU-T 1.363 Recommendation The inverting unit 13 for inverting the final CRC-32 syndrome, the CRC32 result selecting unit 14 for selecting the final calculation result and the inverted result of the CRC-32, and the prediction of the syndrome generated when the CRC-32 verification logic is completed. And a prediction unit 15 storing a value to be calculated and a CRC32 comparison unit for determining whether the CRC-32 verification result is true or false.

도 2는 CRC-32 계산 블록의 HDL 엔터티 블록도를 나타내고 있다.2 shows an HDL entity block diagram of a CRC-32 calculation block.

도 2를 참조하여 설명하면, 입력을 파라미터 N을 통해서 넘겨받아 이에 맞는 CRC-32 계산 로직을 구성하도록 하는 역할을 수행한다. 이는 generic 문장을 통해서 이루어지며, 이 때 넘겨받은 N 값은 가변 입력 VAR_INPUT의 비트 수를 결정하는 데 사용된다. 그리고, INIT_VALID 신호가 활성되어 있을 때, INIT_VECTOR를 CRC32_REG 레지스터에 담게되며, DATA_VALID 신호가 활성화되어 있을 때, CRC-32 C/L 부에서 계산된 출력 결과를 CRC32_REG 레지스터에 담게된다. 그리고 최종적으로 계산된 CRC-32 신드롬 값을 CRC32_RES 벡터를 통해서 외부로 전달하게 된다.Referring to FIG. 2, an input is passed through the parameter N to configure a CRC-32 calculation logic according to the input. This is done through generic statements, where the N value passed in is used to determine the number of bits of the variable input VAR_INPUT. When the INIT_VALID signal is activated, the INIT_VECTOR is stored in the CRC32_REG register. When the DATA_VALID signal is activated, the output result calculated by the CRC-32 C / L unit is stored in the CRC32_REG register. Finally, the calculated CRC-32 syndrome value is transmitted to the outside through the CRC32_RES vector.

도 3은 CRC-32 검증 블록의 HDL 엔터티 블록도 이다.3 is an HDL entity block diagram of a CRC-32 verification block.

여기에서도 가변 입력을 GENERIC 문에 나타나는 파라미터 N 값을 사용하여 결정하고, 이에 알맞은 CRC-32 C/L 부를 구성하게 된다. 도 3에서의 INIT_VECTOR, INIT_VALID, VAR_INPUT, DATA_VALID 신호의 기능은 도 2의 기능과 동일하다. 그리고 최종적으로 검증된 결과의 참과 거짓의 유무는 GOOD FAIL 신호를 통해서 외부 블록에 전달하게 된다.Again, the variable input is determined using the parameter N value shown in the GENERIC statement, and the appropriate CRC-32 C / L part is configured. The functions of the INIT_VECTOR, INIT_VALID, VAR_INPUT, and DATA_VALID signals in FIG. 3 are the same as those in FIG. Finally, the true and false of the verified result is transmitted to the outer block through the GOOD FAIL signal.

도 4는 비트 단위의 CRC-32 계산 회로 블록도이다.4 is a block diagram of a CRC-32 calculation circuit in bits.

생성 다항식의 계산 결과 값을 저장하고 있는 D 타입 레지스터(40), XOR 연산을 수행하는 심볼 기호(41) 그리고 시리얼로 입력되는 데이터와 이에 대한 인에이블 신호의 조합에 의해 AND 게이트(42)로 구성되어 있다. 이러한 회로에서는 단일 클럭에 단일 비트 데이터만을 처리할 수 있는 구조이다.It consists of an AND gate 42 by a combination of a D-type register 40, which stores the calculated result of the generation polynomial, a symbol symbol 41 for performing XOR operations, and a data inputted serially and an enable signal thereof. It is. In such a circuit, only a single bit of data can be processed in a single clock.

도 5는 CRC-32 C/L 부의 구현 블록도이다.5 is an implementation block diagram of a CRC-32 C / L unit.

구현 과정을 설명하면, 비트 단위의 CRC-32를 계산하는 기본 회로를 바탕으로 가변 비트 데이터를 단일 사이클에 처리할 수 있는 구조로 로직을 유도하는 과정을 보여주고 있다. 여기서 XOR 연산을 의미하는 심볼은 (53)과 같으며, xin0, xin1·은 외부에서 입력되는 데이터(51)를 의미하며, k0, k1, k2,·는 입력 데이터와 최상위 레지스터 래치값 x32의 xor값(50)을 의미한다.그리고 xj i,로 표현된 수식(52)에서 아래 첨자 i는 비트 CRC 계산 로직의 비트 가중치를 의미하며 윗 첨자 j는 기준 시점으로부터의 클럭 사이클 수를 의미한다. 예를 들어, X5 7의 경우 5 클럭 사이클 경과 후의 7번째 레지스터의 출력을 의미한다. 수식을 보면 알수 있듯이 32개의 레지스터와 간단한 조합 회로만을 사용하여 가변 입력 비트의 CRC를 계산할 수 있으므로 면적 및 속도 측면에서 유리함을 알 수 있다. 이러한 메카니즘을 HDL의 GENERATE 문을 사용하여 구현함으로서 가변 길이의 입력에 대해 CRC-32를 계산할 수 있는 메카니즘을 구현하였다.The implementation process shows the process of deriving logic into a structure that can process variable bit data in a single cycle based on the basic circuitry for calculating CRC-32 in bits. Here, the symbol for XOR operation is the same as (53), where x in0 and x in1 are the data 51 inputted from the outside, and k0, k1, k2, are the input data and the highest register latch value x32. In the equation (52) represented by x j i , the subscript i denotes the bit weight of the bit CRC calculation logic and the superscript j denotes the number of clock cycles from the reference time point. do. For example, X 5 7 means the output of the 7th register after 5 clock cycles. As can be seen from the formula, the CRC of the variable input bits can be calculated using only 32 registers and a simple combination circuit, which is advantageous in terms of area and speed. By implementing this mechanism using the GENERATE statement of HDL, we implemented a mechanism that can calculate CRC-32 for variable-length input.

이상에서 상세히 설명한 바와 같이 본 발명은 통신, 보안, 네트웍 장비를 개발함에 있어 가변 길이의 입력에 대해 입력되는 비트에 대해 단일 사이클에 CRC-32를 계산할 수 있는 구조이다. 따라서 입력되는 비트 수가 변경되더라도 제시된 모델의 파라미터만을 변경함으로 개발 시간과 비용의 단축이 가능하고, 병렬 처리가 가능하므로 빠른 CRC-32 계산에 응용할 수 있는 장점이 있다. 특히 단일 비트의 CRC-32 계산부터 64 비트 이상의 CRC-32 계산 및 검증을 파라미터 값만을 변경하여입력해 줌으로서 단일 클럭에 계산 및 검증이 가능한 회로로 앞으로 그 응용이 기대된다.As described in detail above, the present invention is a structure capable of calculating CRC-32 in a single cycle for bits input for a variable length input in developing communication, security, and network equipment. Therefore, even if the number of input bits is changed, it is possible to reduce development time and cost by changing only the parameters of the presented model, and it is possible to apply to the fast CRC-32 calculation because parallel processing is possible. Especially, it is expected to be applied to the circuit that can be calculated and verified in a single clock by inputting only the parameter value from CRC-32 calculation of single bit to CRC-32 calculation and verification of 64 bits or more.

Claims (2)

입력 파라미터만을 변경함으로서 원하는 비트에 대해 단일 클럭 사이클에 CRC-32 계산 가능한 VHDL 모델링 기법VHDL modeling technique can calculate CRC-32 in a single clock cycle for the desired bits by changing only the input parameters 입력 파라미터만을 변경함으로서 원하는 비트에 대해 단일 클럭 사이클에 CRC-32 검증이 가능한 VHDL 모델링 기법VHDL modeling technique allows CRC-32 verification in a single clock cycle for the desired bits by changing only the input parameters
KR1020010028186A 2001-05-16 2001-05-16 Variable length CRC-32 computation and verification block circuits using input parameter. KR20020087823A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010028186A KR20020087823A (en) 2001-05-16 2001-05-16 Variable length CRC-32 computation and verification block circuits using input parameter.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010028186A KR20020087823A (en) 2001-05-16 2001-05-16 Variable length CRC-32 computation and verification block circuits using input parameter.

Publications (1)

Publication Number Publication Date
KR20020087823A true KR20020087823A (en) 2002-11-23

Family

ID=27705997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010028186A KR20020087823A (en) 2001-05-16 2001-05-16 Variable length CRC-32 computation and verification block circuits using input parameter.

Country Status (1)

Country Link
KR (1) KR20020087823A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117220833A (en) * 2023-11-09 2023-12-12 新华三网络信息安全软件有限公司 CRC (cyclic redundancy check) calculation circuit, chip, message processing method and network security equipment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117220833A (en) * 2023-11-09 2023-12-12 新华三网络信息安全软件有限公司 CRC (cyclic redundancy check) calculation circuit, chip, message processing method and network security equipment
CN117220833B (en) * 2023-11-09 2024-01-26 新华三网络信息安全软件有限公司 CRC (cyclic redundancy check) calculation circuit, chip, message processing method and network security equipment

Similar Documents

Publication Publication Date Title
KR101370231B1 (en) Bit sequence generation device and bit sequence generation method
Ayinala et al. High-speed parallel architectures for linear feedback shift registers
JP2008293034A (en) Method and device for executing decrypting mechanism through calculating standardized modular exponentiation for thwarting timing attack
US5828752A (en) Pseudo-random number generator and communication system employing the same
JPH10107650A (en) Error detection circuit and error correction circuit
Nair et al. A symbol based algorithm for hardware implementation of cyclic redundancy check (CRC)
Rashidi High-throughput and lightweight hardware structures of HIGHT and PRESENT block ciphers
Wang et al. Reliable and secure memories based on algebraic manipulation correction codes
CN109286471B (en) CRC (Cyclic redundancy check) method and device for SRIO (serial peripheral input/output) controller
US20120324319A1 (en) High throughput frame check sequence module architecture
JP2000004169A (en) Crc operating method and crc arithmetic circuit
KR20020087823A (en) Variable length CRC-32 computation and verification block circuits using input parameter.
Fernández-Gómez et al. Concurrent error detection in block ciphers
CN117081751A (en) High-reliability quantitative response arbiter type PUF structure
US6442747B1 (en) Method of synthesizing a cycle redundancy code generator circuit using hardware description language
Chi et al. Exploring various levels of parallelism in high-performance CRC algorithms
CN101361278A (en) Parity check bit generating circuit, counting circuit and counting method
KR20020087822A (en) Variable length CRC-10 computation and verification block circuits using input parameter.
Juan et al. Utilization of DSP algorithms for Cyclic Redundancy Checking (CRC) in Controller Area Network (CAN) controller
Bale et al. An Intelligent 64-bit parallel CRC for high-speed communication system applications
US20180131388A1 (en) Method of arrangement of an algorithm in cyclic redundancy check
JP2822928B2 (en) CRC code calculation method and circuit
KR930008682B1 (en) Error correcting circuit of digital device
Parimaladevi et al. Analysis of Power Efficient Modulo 2n+ 1 Adder Architectures
KR0176809B1 (en) Error correction device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
E601 Decision to refuse application