We offer a broad family of microcontroller and microporcessor related cores, from the best-available set of proven 8051s through capable and competitive 32-bit BA22s.

BA22 32-bit Processors
Family Guide
Deeply Embedded
Embedded
Application Processor
Platform
Dev Systems

Other 32-bit Processors
68000 for AHB
80251

Part of our image and video cores family, these compression cores support more codecs than you'll find from any other single provider, all designed to yield the highest quality results.

JPEG 2000
Encoder
J2K Platform

Lossless Compression
LJPEG Encoder
LJPEG Decoder
JPEG-LS Encoder

These functions complement the compression codecs in our image and video cores family, helping you rapidly build efficient SoCs for image or video applications.

Image Scalers
Polynomial
Frequency Domain
• Anisotropic
 

Video Deinterlacers
Basic
Motion Adaptive

Graphics Processors
2D Accelerator

Functions & Converters
Color Space Converter
DCT forward
DCT inverse
DCT forward/inverse

These memory controller cores work alone or with our processors and codecs to complete your demanding SoC.

SDRAM Controllers
Mobile SDRAM
DDR1 & DDR2

Our broad family of interface and interconnect cores includes high-speed PCI Express, common IOs like USB, and cntrollers popular for specific applications such as the CAN bus for automotive systems.

Parallel
ECP slave
ATA/IDE interface

PCI — Target
32-bit
32-bit multi
64-bit
PCI — Master
32-bit
32-bit multi
64-bit
PCI — Host Bridge
32/66

TCP/IP Stacks
UDP/IP stack

Ethernet MAC
Device Controllers

10/100
10/100 lite
Gigabit
Gigabit lite
Gigabit PCS

MAC Platforms
MAC/PCI
Embedded Platform

Customers find these cores to be an excellent solution for preserving existing product board designs when critical chips are no longer available for purchase.

8- and 16-bit Processors
Z80 CPU
6502 replacement
65C02 replacement
68000
80186XL
80186EC
80188EC
80251
387L math

DSPs
32025 16-bit
32025TX 16-bit

 

 

 

 

 

Peripherals
DMA Controllers
8237, 82380
UARTs
16450S
16550S
16750S
Timer/Counter
8254

Cores for integrating security, controlling devices and displays, and more.

Device Controllers
smart card reader

Displays
TV
high-res displays
ultra-res displays

IR Remote Controls
RC5
NEC

Audio Interfaces
I2S-SC
I2S-MC
SPDIF

Standard Parts
synthesis
simulation

PDF datasheets:

ASIC
Altera Xilinx

Related Products

  • DES3 Triple Data Encryption Standard

Related information:

CAST encryption cores overview

White Paper:
AES Encryption and CAST’s AES IP Cores (PDF)

 

Security IP Core DES Data Encryption Standard Core

The DES core implements the Data Encryption Standard (DES) documented in the U.S. Government publication FIPS 46-3.

The DES core is a block cipher, working on 64 bits of data at a time.  The DES core uses a single 64 bit key of which only 56 bits are used. Encoding and decoding operations are performed in 16 clocks per block, in Electronic Codebook (ECB) mode.

The DES core is fully synchronous using only one clock signal and can be implemented in both FPGAs and ASICs.  The DES IP Core is delivered as Verilog RTL Source code.

This DES Core non-pipelined version is implemented to minimize the gate count and FPGA resources. After an initial latency of 16 cycles, it can output encryption/decryption at every cycle. The design does not use any memories such as SRAM. 

The DES core pipelined version is implemented to maximize performance by pipelining the DES transformation algorithm.  The design does not use any memories such as SRAM. 

See representative implementation results (each in a new pop-up window):

ASIC numbersAltera numbersXilinx numbers

Applications

The DES core can be utilized for a variety of encryption applications including:

Features

Non Pipelined version
Pipelined version

Symbol Diagram

DES Symbol

Functional Description

DES Description

The Data Encryption Standard (DES) is a cryptographic algorithm specified in the United States Federal Information Processing Standards Publications (FIPS) 46-3 publication. This publication provides a complete description of a mathematical algorithm for encrypting and decrypting binary coded information.

Encrypting converts the data to an unintelligible form called ciphertext. Decrypting the ciphertext converts the data back to its original form and is called plaintext. The algorithm described in the FIPS 46-3 publication specifies both encrypting and decrypting operations based on a binary number called a key.

A key consists of 64 binary bits of which 56 bits are usually randomly generated and used directly by the algorithm.  The other 8 bits are not used.

Authorized users of the data must have the key that was used to encrypt the data in order to decrypt it.  The unique key chosen for use in a particular application makes the results of encrypting data using the algorithm unique.  Selection of a different key causes the ciphertext that is produced for any given set of inputs to be different. Therefore, the cryptographic security of the data depends on the security provided for the key used to encrypt and decrypt the data.

DES Block Cipher Encryption Operation

During each pass of the DES engine (module), a 64 bit block is subjected to an initial permutation, then to a complex key-dependent computation and finally to a permutation that is the inverse permutation.

The key-dependent computation is implemented as a function called the key schedule and uses the subkeys generated in the key_sel module. The DES engine can be run in two directions - as a forward transformation and as an inverse transformation. The two directions differ only by the order in which the bits of the key are used. The forward transformation is shown in following figure.

DES

DES Electronic Code Book (ECB) Mode

The Electronic Codebook (ECB) mode is a block, encryption/decryption method which transforms 64 bits of input to 64 bits of output. The ECB output block is a complex function of all 64 bits of the input block and all 56 independent bits of the key. 

Since the ECB mode is a 64-bit block cipher, the DES engine encrypts data in multiples of sixty-four bits. Therefore a block input is 64 bits wide (Din [63:0]). See signal definitions.

If a user has less than sixty- four bits to encrypt, then the least significant bits of the unused portion of the input data block must be padded.  These bits are often filled with random or pseudo- random bits, prior to ECB encryption. The corresponding DES decryption discards these padding bits after decryption of the ciphertext block.

The same input block always produces the same output block under a fixed key in ECB mode.

Example of DES Encrypted and Decrypted Data

The following example data may be used when testing the DES encryption and decryption operations.

Key = 0x0123456789abcdef 

PLAINTEXT0 = 0x4e6f772069732074
PLAINTEXT1 = 0x68652074696d6520
PLAINTEXT2 = 0x666f7220616c6c20

CIPHERTEXT0 = 0x3fa40e8a984d4815
CIPHERTEXT1 = 0x6a271787ab8883f9
CIPHERTEXT2 = 0x893d51ec4b563b53

Support

The core as delivered is warranted against defects for ninety days from purchase. Thirty days of phone and email technical support are included, starting with the first interaction. Additional maintenance and support options are available.

Verification

The core has been verified through extensive simulation and rigorous code coverage measurements.

Deliverables

The core is available in ASIC (synthesizable HDL) and FPGA (netlist) forms, and includes everything required for successful implementation:

 

Share this page:

Twitter LinkedIn Add This: more sharing options
Top of Page

Follow CAST:

go to our SlideShare page