zoukankan      html  css  js  c++  java
  • 简易数据加密传输电路(VHDL)(原创)

     1 LIBRARY IEEE;
     2 USE IEEE.STD_LOGIC_1164.ALL;
     3 USE IEEE.std_logic_unsigned.ALL;
     4 
     5 ENTITY KEKE IS  --定义实体wsj1
     6     GENERIC(n : positive := 16);
     7     
     8     PORT(CLK:IN STD_LOGIC;--时钟信号
     9         CTL:IN STD_LOGIC;--控制信号      
    10         V1:BUFFER STD_LOGIC;--假设伪随机序列1作为待价密数据
    11          V2:BUFFER STD_LOGIC;--伪随机序列二作为密钥数据流v2
    12           V3:BUFFER STD_LOGIC;--V3为异或后生成的加密数据串行输出
    13           V4:BUFFER STD_LOGIC;--解密数据流应该和密钥数据流v2相同
    14           V5:BUFFER STD_LOGIC--v3和v4异或解密得到结果v5
    15         ); 
    16 END KEKE;
    17 
    18 ARCHITECTURE BEHAV OF KEKE IS
    19 
    20 SIGNAL C0,C1,C2,C3,C4,C5,C6,C7:STD_LOGIC;--伪随机序列1作为待价密数据
    21 SIGNAL A0,A1,A2,A3,A4,A5,A6,A7:STD_LOGIC;--伪随机序列二作为密钥数据流v2 和解密数据流v4
    22 
    23 BEGIN
    24   ----伪随机序列1作为待价密数据
    25     PROCESS(CLK, CTL) 
    26         BEGIN
    27             IF CLK'EVENT AND CLK='1' THEN
    28                 IF ( CTL='1') THEN
    29                     C7<='0';C6<='0';C5<='0';C4<='0';C3<='0';C2<='0';C1<='0';C0<='1';V1<=C7;
    30                 ELSE
    31                     C1<=C0;C2<=C1; C3<=C2;C4<=C3;C5<=C4;C6<=C5;C7<=C6;
    32                     C0<=C7 XOR C4 XOR C3 XOR C2  ;  
    33                     V1<=C7;
    34                 END IF;
    35             END IF;    
    36     END PROCESS;
    37     ----伪随机序列二作为密钥数据流v2 和解密数据流v4
    38     PROCESS(CLK, CTL)     --设置敏感量
    39         BEGIN
    40             IF CLK'EVENT AND CLK='1' THEN
    41                 IF ( CTL='1') THEN
    42                     A7<='0';A6<='0';A5<='0';A4<='0';A3<='0';A2<='0';A1<='0';A0<='1';V2<=A7;V4<=A7;
    43                 ELSE
    44                     A1<=A0;A2<=A1; A3<=A2;A4<=A3;A5<=A4;A6<=A5;A7<=A6;
    45                     A0<=A7 XOR A1; 
    46                     V2<=A7;
    47                    V4<=A7;
    48                 END IF;
    49             END IF;    
    50     END PROCESS;
    51     ----v3密文数据为v1v2异或得到
    52    V3<=V1 xor V2;    
    53     ----v5密文数据为v3v4异或得到明文数据应该和v1一样
    54     V5<=V3 xor V4;
    55 END BEHAV;
    Smartkeke
  • 相关阅读:
    linux启动流程
    树-二叉平衡树AVL
    算法导论第六章 堆排序
    算法导论基础(第一~五章)
    树-二叉查找树
    Java:基础
    【转】为什么C++编译器不能支持对模板的分离式编译
    压缩和解压缩命令
    Makefile编程
    1.什么是Mybatis?
  • 原文地址:https://www.cnblogs.com/smartkeke/p/6821487.html
Copyright © 2011-2022 走看看