Code Monkey home page Code Monkey logo

agentencryption's Introduction

AgentEncryption

飞桨模型加密库 - EAP阶段
在分发加密模型时,请务必进行不限于以下的操作方可避免轻易破解

  • 加密深度学习框架以及其相关的Python库,至少为pyd格式
  • 加密AgentEncryption库,至少为pyd格式
  • 限制用户只能使用你提供的Python环境

飞桨推理模型加密可参考从内存中加载加密飞桨推理模型

  1. 加密飞桨模型
  2. 借助PPQI推理加密的飞桨模型
  3. 借助PaddleInference推理加密的飞桨模型

快速使用

  • 如下是几个简单的示例代码:
    • 数据加密:

      # 导入 RSA 加密器
      from agentenc import RSAEncryptor
      
      # 初始化 RSA 加密器
      encryptor = RSAEncryptor(bits=1024)
      
      # 构建原始数据
      pure_data = {
          'int': 100,
          'float': 0.01,
          'str': 'hello',
          'list': [100, 0.01, 'hello']
      }
      
      # 数据加密
      key = encryptor.encode(
          input=pure_data, 
          output='out', 
          format='pkl', 
          keys_saving_path='key'
      )
      
      # 打印随机生成的密钥
      print(key) 
      
      '''
      {
          'private_key': b'-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDQq3mzdfDYjg8ool1Jl5WrmFAkJWarokIQAzq/3wT+cbNUy/zv\nqxHCn7bYsifvx5nLnfCL7cm3BVygnB4clP8p6EAlO8KcocC/6WfCyTW5gw23z5Tc\ntzSzAERtNTGwDst3RAnEDeJ2crNi/xSs2Wa6k1bNkxNFUehEd4ExpYFwLQIDAQAB\nAoGAWmYG9aOBANfeIkzgnBqSyQFVqqsXRQConPZBM9EigTZxqakrfQq/yXBWjp7z\npTFz452bEYukqOimPaAUfW5g8ZYxndN2G1ctWMPg3KrJ++7FYFJJhJ223IOmSmB4\nKf2FyVjBNUTzKchBdxHcLqAQX1DNXnWrJ5cWc2pS0olz+BMCQQDTZ8hqIT1UPclk\noPTX6gC+874D+GNa5r4CsMMiUZNrN7hCXEwZJ+3kR14vcJkDd2QVg8cR6VSxP9Vg\nBg5XuD2jAkEA/K/3mtKMDhX5HjNUfoBzLBSJreAVMOcGGrLCLFob+8t64456SQ8I\nOKABsocpKaRp+s3loi6obGoRwIQ5PBTX7wJBAMp60pfj8kunSidZimjqtYAvEEXZ\nN8Au1Lra9mr+WwYMPi1BHZnShqVoPauOWt/ZEEETEC31n6qNCx+HbWFTE6UCQEfF\n16ezPDLYDO2GGO7hn1Ua9ExeBMbiJ/q3Ya3lXmNz1ZEDLDrKOUSUNkc2WvvIBo5F\no38gj5hTvH0ZUYR+SyMCQEnnTVZXhtU7jtyOfEXsTqUtZIVo01sJ5SoekGrnZ0Ht\n8PxyjyOc5IFWieKGUfZQ3ZdKDm95dvAyKpkDa8tqMCM=\n-----END RSA PRIVATE KEY-----', 
          'public_key': b'-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQq3mzdfDYjg8ool1Jl5WrmFAk\nJWarokIQAzq/3wT+cbNUy/zvqxHCn7bYsifvx5nLnfCL7cm3BVygnB4clP8p6EAl\nO8KcocC/6WfCyTW5gw23z5TctzSzAERtNTGwDst3RAnEDeJ2crNi/xSs2Wa6k1bN\nkxNFUehEd4ExpYFwLQIDAQAB\n-----END PUBLIC KEY-----'
      }
      '''
      
      # 使用解密函数对文件进行解密
      data = RSAEncryptor.decode(
          inp='out.pkl', 
          private_key=key['private_key']
      )
      
      # 输入与输出数据对比
      print(data == pure_data) 
      
      '''
      True
      '''
    • 数据解密:

      # 导入基础加密器
      from agentenc import Encryptor
      
      # 读取私钥
      private_key = open('key.PRIVATE', 'rb').read() 
      
      # 使用解密函数对文件进行解密
      data = Encryptor.decode(
          inp='out.pkl', 
          private_key=private_key
      )
      
      # 输入与输出数据对比
      print(data)
      
      '''
      {
          'int': 100, 
          'float': 0.01, 
          'str': 'hello', 
          'list': [100, 0.01, 'hello']
      }
      '''

Contact us

Email : [email protected]
QQ Group : 1005109853

agentencryption's People

Contributors

c4a15wh avatar gt-zhangacer avatar jm12138 avatar whitefirefox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

agentencryption's Issues

【PaddlePaddle Hackathon 2】101、基于AgentEncryption,完成模型加密模块实现

(此 ISSUE 为 PaddlePaddle Hackathon 第二期活动的任务 ISSUE,更多详见 【PaddlePaddle Hackathon 第二期】任务总览

【任务说明】

  • 任务标题:基于AgentEncryption,完成模型加密模块实现。

  • 技术标签:软件加密、PaddlePaddle、GitHub Action

  • 任务难度:中等

  • 详细描述: 在部分商业化桌面部署操作中,我们可能需要一个模型加密工具或加密方案来保证模型不会被轻易窃取,开发者可提供一个特殊版本的PaddleInference来负责推理加密的飞桨模型,以增加模型的破解成本。

【提交内容】

  • 设计文档,并提 PR 至 PaddlePaddle/community 的 rfcs/AgentMaker 目录
  • 相关模块源代码、开发文档、Benchmark。

【合入标准】

  • 用户可根据该工具快速编译出特殊版本的PaddleInference,并支持使用GitHub Action进行构建。

【技术要求】

了解基本的软件加密内容。

https://github.com/AgentMaker/AgentEncryption

【答疑交流】

  • 如果在开发中对于上述任务有任何问题,欢迎在本 ISSUE 下留言交流。
  • 对于开发中的共性问题,在活动过程中,会定期组织答疑,请大家关注官网&QQ群的通知,及时参与。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.