STM32/STM8技术论坛
直播中

哈哈哈

10年用户 20经验值
擅长:可编程逻辑 电源/新能源 嵌入式技术 模拟技术 EMC/EMI设计 处理器/DSP 接口/总线/驱动 控制/MCU RF/无线
私信 关注
[经验]

【GoKit试用体验】GoKit无线数据传输加密系统

`` 本帖最后由 sapodillas 于 2015-6-22 17:17 编辑

2015.6.19     
    刚拿GoKit,小巧紧凑,但是快递不给力,把外面的亚格力板外壳磕破了......
IMG_20150619_192146.jpg IMG_20150619_193658.jpg IMG_20150619_193200.jpg
    板子主控是C8T6,上下层的效果图
IMG_20150619_193515.jpg IMG_20150619_193009.jpg
   
    上电测试,以及LAN及WAN下微信平台对GoKit的测试效果
IMG_20150619_194455.jpg Screenshot_2015-06-19-19-42-44.png Screenshot_2015-06-19-19-46-21.png Screenshot_2015-06-19-19-47-00.png
     
    总体来说,将来的市场上类似GoKit的产品会多种多样,越来越贴近人们的生活,但是这也会导致人们对移动终端中信息传输的安全性有着必要的需求。因此,选取一种适合应用在物联网移动终端小数据加密算法尤为重要。
    本帖会在近期针对轻量级加密算法在物联网中的应用进行讨论,并以GoKit作为测试平台进行设计,欢迎大家一起加入,也希望大家多给意见和想法。


----------------------------------------------------------------------------------------

2015.6.20
    GoKit机智云官网部分资料

XPGWifiSDK-Doc_Android_2.zip (76.85 KB)
(下载次数: 9, 2015-6-21 15:27 上传)


智能宠物屋_GoKit.zip (1.56 MB)
(下载次数: 3, 2015-6-21 15:27 上传)


智能宠物屋_GoKit_2_Arduino.zip (656.35 KB)
(下载次数: 3, 2015-6-21 15:27 上传)


智能宠物屋_GoKit_2_STM.zip (4.19 MB)
(下载次数: 5, 2015-6-21 15:28 上传)


----------------------------------------------------------------------------------------

2015.6.21
    二元扩域下椭圆曲线加密算法的基本运算
    在matlab的Command Windows窗口中可以通过输入help指令来查看各函数的属性及用法。
% BinaryConvolution and Polynomial Multiplication
% p = bconv( b, a ) 多项式二进制乘法函数
% c = conv( b, a ) 其中矩阵c是乘积,矩阵从后往前表示从0次项到各高次项的系数。
% Binary Deconvolution andpolynomial division
% [ q, r ] = bdeconv( b, a ) 多项式二进制除法函数
% [ q, r ] = deconv( b, a ) 其中矩阵q和r分别为商和余数,矩阵从后往前表示从0次项到各高次项的系数。
New Image.jpg
    验证二元扩域下乘法运算,取不可约多项式为(100101),(11001)*(10011)=(00111),即计算(x^4+x^3+1)*(x^4+x+1)的多项式二进制乘法。
New Bitmap I.jpg
    得到的结果对不可约多项式进行二进制取余运算,可以验证二元扩域下乘法算法的正确性。
New Bitmap I.jpg
----------------------------------------------------------------------------------------

2015.6.22
    二元扩域下椭圆曲线加密算法域元素基本运算
    1. 元元素加法
  1. // f2m_add.v
  2. // f2m_add: c = a + b, in field F_{2^M}
  3. //`include "inc.v"

  4. `include "../rtl/inc.v"

  5. module f2m_add(
  6.         input        wire         [`WIDTH:0]         pi_a,
  7.         input         wire        [`WIDTH:0]        pi_b,
  8.         output        wire        [`WIDTH:0]        po_c
  9. );

  10. assign         po_c = pi_a ^ pi_b;
  11. endmodule
    2. 域元素乘法
  1. // f2m_mult.v

  2. `include "../rtl/inc.v"

  3. module f2m_mult(
  4.         input        wire        [0:0]                clk,
  5.         input        wire        [0:0]                rst,
  6.         input        wire        [`WIDTH:0]        pi_a,
  7.         input        wire        [`WIDTH:0]        pi_b,
  8.         input        wire        [`M:0]                 pi_fx,
  9.         output        reg                         done,
  10.         output        reg        [`WIDTH:0]        po_c
  11. );

  12. parameter        [1:0]        IDLE        = 2'b00;
  13. parameter        [1:0]         BUSY        = 2'b01;
  14. //parameter        [1:0]         WAIT        = 2'b10;
  15. //parameter        [1:0]         FREE        = 2'b11;

  16. reg        [0:0]                state         = IDLE;
  17. //reg        [0:0]                next         = IDLE;
  18. reg        [`WIDTH:0]        a         = 0;
  19. reg        [`WIDTH:0]        b         = 0;
  20. reg        [`M:0]                fx        = 0;
  21. reg        [`WIDTH:0]        i         = 0;
  22. reg         [`WIDTH:0]        cnt        = 0;

  23. always @(posedge clk)// or negedge rst
  24.         if(rst == 1'b1) begin
  25.                 state <= IDLE;
  26.                 done  <= 1'b0;
  27.                 po_c  <= 0;//5'b10101;
  28.                 cnt   <= 0;        
  29.         end
  30.         
  31.         else if(state == IDLE && done == 1'b0) begin
  32.                 a          <= pi_a;
  33.                 b          <= pi_b;
  34.                 fx         <= pi_fx;
  35.                 //done          <= 1'b0;
  36.                 if(a[0] == 1'b1)
  37.                         po_c  <= pi_b;
  38.                 else
  39.                         po_c  <= 0;
  40.                 state <= BUSY;
  41.         end
  42.         else if(state == BUSY && done == 1'b0) begin
  43.                 if(b[`WIDTH] == 1'b0) begin
  44.                         for(i = `WIDTH; i > 0; i = i - 1)
  45.                                 b[i] <= b[i-1];
  46.                 b[0] <= 1'b0;//b <= (b << 1);
  47.                 end
  48.                
  49.                 else if(b[`WIDTH] == 1'b1) begin
  50.                         for(i = `WIDTH; i > 0; i = i - 1)
  51.                                 b[i] <= b[i-1] ^ fx[i];
  52.                 b[0] <= fx[0];
  53.                 end
  54.                
  55.                 for(i = 0; i < `WIDTH-1; i = i + 1)
  56.                         a[i] <= a[i+1];//a <= (a >> 1);
  57.                 a[`WIDTH] = 1'b0;
  58.                 if(a[0] == 1'b1)
  59.                         po_c <= po_c ^ b;
  60.                 cnt <= cnt + 1;
  61.                 if(cnt == `WIDTH) begin
  62.                         done  <= 1'b1;
  63.                         state <= IDLE;
  64.                 end
  65.         end
  66. endmodule
   分享一些有关加密算法的论文

ECC密码算法的FPGA实现及优化设计.pdf (3.53 MB)
(下载次数: 3, 2015-6-22 17:09 上传)

二进制域上的椭圆曲线加密解密算法建模与验证.pdf (729.79 KB)
(下载次数: 0, 2015-6-22 17:09 上传)

基于GF(2)的椭圆曲线加密算法在FPGA上的设计与实现.pdf (2.31 MB)
(下载次数: 0, 2015-6-22 17:09 上传)

椭圆曲线加密算法的RTL建模与验证.pdf (1.81 MB)
(下载次数: 0, 2015-6-22 17:09 上传)

椭圆曲线加密算法的研究与实现.pdf (2.01 MB)
(下载次数: 0, 2015-6-22 17:09 上传)

椭圆曲线加密系统的FPGA设计与实现.pdf (2.64 MB)
(下载次数: 0, 2015-6-22 17:09 上传)

椭圆曲线密码体制的研究与实现.pdf (1.65 MB)
(下载次数: 0, 2015-6-22 17:10 上传)

椭圆曲线密码体制中标量乘法运算的优化和FPGA实现.pdf (2.02 MB)
(下载次数: 0, 2015-6-22 17:10 上传)
















































`` Screenshot_2015-06-19-19-46-21.png Screenshot_2015-06-19-19-42-44.png IMG_20150619_193009.jpg IMG_20150619_192146.jpg New Bitmap Image.jpg Untitled.jpg New Bitmap Image (2).jpg New Bitmap Image (2).jpg New Bitmap Image.jpg mult .jpg

回帖(4)

小萃米

2015-6-19 20:50:59
顶一个
举报

哈哈哈

2015-6-19 20:56:12

谢谢啊,打算用Cyclone IV做个椭圆曲线加密算法的软核,通过USART接口和GoKit进行数据交互。
举报

Elecfans管家

2015-6-23 10:11:36
楼主建议你后续的试用体验可以分开发帖哈!
举报

sycdada

2015-7-26 16:47:06

Good,不错 Good,不错
举报

更多回帖

发帖
×
20
完善资料,
赚取积分