| 
								
	
                             | 
                            
                              
                                
                                  
                                    
                                      
										MSP7-32/MSP7-64 MACsec IP core for FPGA or ASIC
										 | 
                                       
                                        
                                          
                                             
                                                
                                                  
                                                      | 
                                                    
													Introduction | 
                                                   
                                                 
                                                
  |  
										  
										    
                                              
                                                   | 
                                                
												Implementation of the LAN security standard IEEE 802.1ae (MACsec) requires the NIST standard AES cipher in the GCM mode for encryption and message authentication, as well as header parsing and formatting operations on the transmitted and received packets. MACsec Security Processor (MSP) IP cores by IP Cores, Inc. are designed for high data rates and implement complete line-rate packet processing with no per-packet CPU intervention. | 
                                               
												 
                                                   | 
                                                
												MSP7-32 cores are tuned for 6-15 Gbps applications in the FPGA and ASIC technologies that require 256 bit AES keys. | 
                                               
												 
                                                   | 
                                                
												The MSP7-64/256 cores are tuned for 10-25 Gbps applications in the FPGA and ASIC technologies that require 256 bit AES keys. | 
                                               
                                              
                                                   | 
                                                
												The design is fully synchronous and available as RTL source code. | 
                                               
                                              | 
										   
										  
										    
                                              
                                                
                                                    
                                                        | 
                                                       
													  Applications | 
                                                     
                                                  | 
                                               
                                              
                                                
                                                    
                                                         | 
                                                      
													  IEEE 802.1ae MACsec | 
                                                     
                                                   
                                                    
                                                      | 
                                                    
													Features  | 
                                                   
                                                 
                                                
  |  
										  
										    
                                              
                                                   | 
                                                
												 MSP7-32:  - Small size combined with high performance:
													
 
													
														- 5 Gbps performance at the 15+ MHz clock rate 
														
 
														- 12.5 Gbs performance at the 390+MHz clock rate
 
													 
													- Flow-through design with back-to-back packet processing
 - 41-byte-long shortest input packet on encryption 
 - 56-byte-long shortest input packet on decryption at full data rate
 - 16,000 bytes maximum packet size
 
													 
													- Low latency, for the 10 Gbps configuration
 
													- 34 clocks input-to output on encryption(start-to-start of the packet), 36-37 clocks(last-to-last word of the packet
 
													- 39 clocks for decryption(start-to-start), 37 clocks(last-to-last)
  
													- 32-bit wide aligned AXI-S data interface with flow control
 - The MSP7 contains two datapaths, one for Tx(encryption), one for Rx(decryption).The Tx datapath presents a sink(slave) interface to the unecrypted side, source(master) interface on the encrypted side. Rx datapath presents a sink to the encrypted, source to the unecrypted side
  
													- Core utilizes three clocks: one for the Tx datapath, one for Rx and one for control
  
												  | 
                                               
												 
                                                   | 
                                                
												MSP7-64: 
													- Small size combined with high performance:
 
													- 10 Gbps performance at the 15+ MHz clock rate 
														
 
														- 25 Gbs performance at the 390+MHz clock rate
 
													 
													- Flow-through design with back-to-back packet processing
 - 64 bytes shortest input packet at full data rate    
 
													  - 16,000 bytes maximum packet size
 
													 
												
												  | 
                                               
												 
                                              | 
										   
                                                  | 
                                               
                                              
                                              
                                                
                                                  
                                                      | 
                                                    Symbol | 
                                                   
                                                  | 
                                               
                                              
                                                 | 
                                               
                                              | 
 
                                              | 
										   
                                            | 
                                          
                                       
                                        
                                          
                                            
                                              
                                                  | 
                                                Pin 
												Description  | 
                                               
                                             
                                             | 
                                           
                                          
                                            
                                              
                                                
                                                
                                                
                                               
                                               
                                              | Generic |  
                                              
                                                | 
												Clk | 
                                                
												Input | 
                                                
												  Core clock signal | 
                                               
                                              
                                                | 
												Rst | 
                                                
												Input | 
                                                
												  Core reset signal | 
                                               
                                              
                                                | 
												Eclk | 
                                                
												Input | 
                                                
												 Encryption (Tx) datapath clock | 
                                               
                                              
                                                | 
												Dclk | 
                                                
												Input | 
                                                
												  Decryption (Rx) datapath clock  | 
                                               
                                              
                                              | Configuration. The signals in this group typically have constant values during the core operation |  
                                              
                                                | 
											  E_Derror[2:0] | 
                                                
												Input | 
                                                
												 
												 | 
                                               
                                              
                                                | 
												E_Qerror[31:0] | 
                                                
												Output | 
                                                
												 Error signal.  
												
												   | 
                                               
                                              
                                                | 
												E_secen | 
                                                
												Input | 
                                                
												  Enable encryption for this packet. | 
                                               
                                              
                                                | 
												E_scid[ ] | 
                                                
												Input | 
                                                
												  Secure channel selection for the packet. | 
                                               
                                              
                                                | 
												E_Dtagvalid | 
                                                
												Input | 
                                                
												 PTP tag | 
                                               
                                              
                                                | 
												E_Dtag[15:0] | 
                                                
												Input | 
                                                
												  PTP tag. | 
                                               
                                              
                                                | 
												E_Qtagvalid | 
                                                
												Output | 
                                                
												 PTP tag | 
                                               
                                              
                                                | 
												E_Qtag[15:0] | 
                                                
												Output | 
                                                
												 Bypassed PTP tag. | 
                                               
                                              
                                                | 
												D_Derror[2:0] | 
                                                
												Input | 
                                                
												 Error signal. | 
                                               
                                              
                                              | Packet information. The signals in this group are to be asserted with the first or last word of the packet |  
                                              
                                              
                                                | 
												D_Qerror[31:0] | 
                                                
												Output | 
                                                
												  Error signal. | 
                                               
                                              
                                                | 
												D_Dtime[79:0] | 
                                                
												Input | 
                                                
												  PTP time stamp | 
                                               
                                              
                                                | 
												D_Qtime[79:0] | 
                                                
												Output | 
                                                
												  Bypassed PTP time stamp. | 
                                               
                                             
                                              | 
                                           
                                          
                                          
                                          | 
                                       
                                      
                                     
                                     
                                     
                                      
                                        |   | 
                                       
                                      
                                        
                                          
                                              | 
                                            Function 
											Description  | 
                                           
                                         
                                         | 
                                       
                                      
                                        
                                          
                                            |   | 
                                           
                                          
                                            | 
											 The MSP7 implementation fully supports the 
											IEEE 802.1ae (MACsec) algorithm for 
											128-bit bit keys, including AES 
											support in Galois Counter Mode (GCM) 
											per NIST publication SP800-38D
											
											http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf. 
											The core is designed 
											for flow-through operation. MSP7 supports encryption and decryption 
											modes (encrypt-only and decrypt-only 
											options are available. 
											   | 
                                           
                                          
                                            |   | 
                                           
                                          | 
                                       
                                      
                                        
                                          
                                              | 
                                            Tx Processing  | 
                                           
                                         
                                         | 
                                       
                                      
                                        
                                          
                                            |   | 
                                           
                                          
                                            | 
											  On encryption, for 
											each frame the core: 
											
												- Obtains the SC index from 
												the LLID and looks up the 
												current SA key
 
												- Inserts the SecTag, 
												including the PN and an optional 
												SCI
 
												- Encrypts and authenticates 
												the frame, based on the values 
												on the E and C inputs
 
												- Appends the ICV tag to the 
												packets
 
												- Updates the PN
 
												- Updates the statistics 
												counters
 
											 
											   | 
                                           
                                          
                                            |   | 
                                           
                                          | 
                                       
                                      
                                        
                                          
                                              | 
                                            Rx Processing  | 
                                           
                                         
                                         | 
                                       
                                      
                                        
                                          
                                            |   | 
                                           
                                          
                                            | 
											 On decryption, for 
											each frame the core: 
											
												- Obtains the SC index from 
												the LLID and looks up the 
												current SA key
 
												- Allows pass-through fro KaY 
												frames
 
												- Validates the SecTag and 
												SCI, if present
 
												- Checks that the packet 
												number PN is within the PN 
												window
 
												- Decrypts the frame, if 
												encrypted
 
												- Calculates the ICV tag, if 
												the frame is authenticated, and 
												compares to the one in the frame
 
												- Removes the ICV tag, 
												appended to the frame
 
												- Updates the PN window
 
												- Updates the statistics 
												counters
 
											 
											  
											   | 
                                           
                                          
                                            |   | 
                                           
                                          | 
                                       
                                     
                                      
                                     
                                      
                                     
                                      
									 
									
                                      
                                      
                                      
                                      
                                      
                                        
                                          
                                              | 
                                            
											Export Permits | 
                                           
                                          | 
                                       
                                      
                                        | The core can be a 
										subject of the US export control. It is 
										the customer's responsibility to check 
										with relevant authorities regarding the 
										re-export of equipment containing the 
										AES encryption technology. See the IP 
										Cores, Inc. licensing basics page,
										
										http://ipcores.com/exportinformation.htm, 
										for links to US government sites and 
										more details. | 
                                       
                                      
                                      
                                        
                                          
                                              | 
                                            
											Deliverables | 
                                           
                                          | 
                                       
                                      
                                        
                                          
                                            
                                                
                                                  | 
                                                    HDL Source Licenses | 
                                                 
                                                
                                                  
                                                      
                                                           | 
                                                        
														Synthesizable Verilog 
														RTL source code | 
                                                       
                                                      
                                                          | 
                                                        
														Testbench (self-checking)
                                                       |  
                                                      
                                                          | 
                                                        
														User Documentation | 
                                                       
                                                      
                                                          | 
                                                        
														Optional GCMVS NIST validation | 
                                                       
                                                          | 
                                                        
														Optional UNH validation | 
                                                       
                                                    | 
                                                 
                                               
                                              | 
                                           
                                     
                                       
                                        |   | 
                                       
                                      
                                        
                                          
                                              | 
                                            Contact 
											Information | 
                                           
                                          | 
                                       
                                      
                                        | 
                                         | 
                                       
                                      
                                        |   | 
                                       
                                      | 
                                     
                                  | 
                               
                              
                              | 
                           
                          |