ABY库基础介绍--(1)_aby8映射

  • aes.h: 这个文件定义了aes算法所需要的常量和函数。

  • aes.cpp: 这个文件实现了aes算法的具体逻辑,包括密钥扩展、加密和解密等。

  • aes\_lib.cpp: 这个文件提供了一些与aes算法相关的库函数,例如随机数生成和缓冲区清空等。

这些文件提供了一个简单的、可移植的加密技术,可以在实现安全多方计算(SMC)算法时进行数据加密和解密。ABY库中实现的AES算法支持多种密钥长度(128位、192位和256位),可以根据实际需要进行选择。除了AES算法,ABY库也提供了其他加密算法的实现,例如TripleDES和SHA等,以满足不同场景下的加密需求。
2. ABY 中的bench_operations文件夹
在ABY库的src/bench\_operations目录中,有一些用于性能测试和基准测试的源代码。具体来说,这个目录中包含了以下文件和子目录:

  • aes: 这个子目录包含了对AES加密算法进行基准测试的脚本和结果。可以使用这些脚本来评估ABY库中AES算法的性能和吞吐量。

  • circuit: 这个子目录包含了对SMC电路运行时间和内存占用进行基准测试的脚本和结果。可以使用这些脚本来评估ABY库在不同计算场景下的性能和资源占用情况。

  • hamming\_weight: 这个子目录包含了对汉明重量算法进行基准测试的脚本和结果。可以使用这些脚本来评估ABY库中汉明重量算法的性能和吞吐量。

  • matrix: 这个子目录包含了对矩阵乘法算法进行基准测试的脚本和结果。可以使用这些脚本来评估ABY库中矩阵乘法算法的性能和吞吐量。

  • sorting: 这个子目录包含了对排序算法进行基准测试的脚本和结果。可以使用这些脚本来评估ABY库中排序算法的性能和吞吐量。

  • test\_common: 这个子目录包含了对公共输入和输出(CIO)机制进行基准测试的脚本和结果。可以使用这些脚本来评估ABY库中CIO机制的性能和吞吐量。

这些基准测试文件和脚本可以帮助用户了解ABY库在不同场景下的性能表现,同时也可以用于优化和改进ABY库的实现。如果你想了解ABY库的性能和资源占用情况,你可以使用这些基准测试脚本进行测试和分析。
3. ABY 中的euclidean_distance文件夹
在ABY库的src/euclidean\_distance目录中,包含了计算欧几里得距离的源代码。这个目录中包含了以下文件:

  • euclidean\_distance.h:这个文件定义了用于计算欧几里得距离的函数接口。

  • euclidean\_distance.cpp:这个文件实现了计算欧几里得距离的算法,包括对向量的点积、减法、平方等操作。

这些文件提供一个计算欧几里得距离的函数,可以用于在安全多方计算(SMC)场景中对输入数据进行加密和保护。例如,在一个SMC算法中,不同参与者拥有各自的输入数据,他们可以分别使用这个函数计算自己的输入数据的欧几里得距离并进行互相比较,而不需要暴露各自的原始输入数据。这个目录中的代码展示了ABY库的使用方法,帮助用户了解如何在ABY中使用这个函数。
4. ABY 中的float文件夹
在ABY库的src/float目录中,包含了一些浮点数运算的源代码。具体来说,这个目录中包含了以下文件和子目录:

  • float.h: 这个文件定义了用于实现浮点数运算的函数和数据结构。它包含了浮点数的表示方法,以及对浮点数进行加、减、乘、除等操作的函数。

  • float.cpp: 这个文件实现了在ABY库中进行浮点数运算时所需的具体逻辑,并提供了与浮点数相关的通用函数和常量定义。

  • float\_lib: 这个子目录包含了一些用于执行浮点数运算的库函数和工具,例如随机数生成、异常检查、比较等。

这些文件提供了在安全多方计算(SMC)场景下进行浮点数运算的一些基础工具和函数,可以用于在多方计算环境中对敏感数据进行计算和存储。在使用这些工具时,需要注意浮点数的精度问题和一些特殊情况的处理,例如除零操作和无限数字等。因此,这个目录中的代码仅作为了解ABY库的使用方法和功能,建议用户在实际开发时仔细考虑数据精度和异常处理等问题。
5. ABY 中的innerproduct文件夹
在ABY库的src/innerproduct目录中,包含了用于计算内积的源代码。具体来说,这个目录中包含了以下文件:

  • innerproduct.h: 这个文件定义了用于计算内积的函数接口、数据结构和常量。

  • innerproduct.cpp: 这个文件实现了计算内积的算法,包括向量的点积、每个向量元素的乘积之和等。

这些文件提供了计算内积的函数,可以用于在安全多方计算(SMC)环境中对输入向量进行加密和保护。例如,在一个SMC算法中,不同参与者拥有各自的输入向量,他们可以分别使用这个函数计算自己的向量内积并进行互相比较,而不需要暴露各自的原始输入向量。这个目录中的代码展示了ABY库的使用方法,帮助用户了解如何在ABY中使用这个函数。
6. ABY 中的lowmc文件夹
在ABY库的src/lowmc目录中,包含了使用LowMC块密码算法进行安全多方计算(SMC)的源代码。LowMC是一种基于置换的块密码算法,它被广泛用于实现密码协议的安全计算。LowMC算法具有轻量级、高效性、安全等特点,是当前被广泛关注的密码保护技术之一。

具体来说,这个目录中包含了以下文件和子目录:

  • lowmc.h: 这个文件定义了用于实现LowMC算法的函数和数据结构,包括对LowMC加解密、初始化、状态切换等操作的函数。

  • lowmc.cpp: 这个文件实现了在ABY库中使用LowMC算法进行安全计算所需的具体逻辑,例如使用置换矩阵进行块加密等操作。

  • correctness: 这个子目录包含了用于验证LowMC加解密算法正确性的脚本和测试数据。

  • performance: 这个子目录包含了对LowMC加解密算法进行基准测试的脚本和结果。可以使用这些脚本来评估ABY库中LowMC算法的性能和吞吐量。

这些文件提供了在ABY库中使用LowMC算法进行安全计算的基础工具和函数,帮助用户实现安全的密码保护和计算功能。在使用这些工具时,需要注意LowMC算法的密钥长度和块大小等参数,以及对输入输出数据的加密和保护。因此,这个目录中的代码仅作为了解ABY库的使用方法和功能,建议用户在实际开发中仔细考虑安全和性能等问题。
7. ABY 中的millionaire_prob文件夹
在ABY库的src/millionaire\_prob目录中,包含了实现百万富翁问题的源代码。百万富翁问题是一种广泛使用的安全多方计算(SMC)问题,具体来说,它模拟了两个富豪比较财产的场景,但又不想公开各自财产的具体值。通过使用安全多方计算的技术,两位参与者可以同时比较自己的财产,而不需要公开各自的具体财产数值。

具体来说,这个目录中包含了以下文件:

  • millionaire\_prob.h: 这个文件定义了用于解决百万富翁问题的函数接口和数据结构。

  • millionaire\_prob.cpp: 这个文件实现了在ABY库中使用SMC技术解决百万富翁问题的具体逻辑,包括参与方的输入、输出、计算逻辑等。

这些文件提供了在ABY库中使用SMC技术解决百万富翁问题的基础工具和函数,可以用于实现一些高度保密的数据比较场景。在使用这些工具时,需要注意各方输入数据的精度和保护,以及结果的正确性和百万富翁问题本身的安全性。因此,这个目录中的代码仅作为了解ABY库的使用方法和功能,建议用户在实际开发中仔细考虑安全和保密等问题。
8. ABY 中的min-euclidean-dist文件夹
在ABY库的src/min-euclidean-dist目录中,包含了使用安全多方计算(SMC)技术计算欧几里得距离的源代码。欧几里得距离是一个经典的测量空间中两点之间距离的度量方式,它在数据分析、机器学习等领域得到广泛应用。在使用欧几里得距离进行计算时,往往需要保护数据的隐私和安全。

具体来说,这个目录中包含了以下文件和子目录:

  • min-euclidean-dist.h: 这个文件定义了计算欧几里得距离所需的函数接口和数据结构,包括输入数据的格式、距离的计算方法等。

  • min-euclidean-dist.cpp: 这个文件实现了在ABY库中使用SMC技术计算欧几里得距离的具体逻辑,包括将输入数据加密、计算距离、进行计算和输出结果等过程。

  • data: 这个子目录包含了用于测试计算欧几里得距离算法的数据文件,包括各个数据点的坐标和真实的距离值。

这些文件提供了在ABY库中使用SMC技术计算欧几里得距离的基础工具和函数,可以用于解决一些需要计算距离的问题,例如相似性分析、聚类等。在使用这些工具时,需要注意输入数据的格式和准确性,以及结果的精度和保密性。因此,这个目录中的代码仅作为了解ABY库的使用方法和功能,建议用户在实际开发中仔细考虑数据特点和计算要求。
9. ABY 中的psi_2D_CH文件夹
在ABY库的src/psi\_2D\_CH目录中,包含了使用安全多方计算(SMC)技术计算二维取值不同的集合之间的交集大小的源代码。这个基本问题在许多领域中都有应用,例如医学、数据分析等,通常需要保护多方数据的隐私和保密性。

具体来说,这个目录中包含了以下文件:

  • psi\_2D\_CH.h: 这个文件定义了用于在安全多方计算中计算二维集合交集大小的函数接口和数据结构。这些函数包括初始化、输入、加密、计算、输出等步骤。

  • psi\_2D\_CH.cpp: 这个文件实现了在ABY库中使用SMC技术计算二维集合交集大小的具体算法,包括计算集合间的哈希函数、使用置换进行比较等逻辑。

这些文件提供了在ABY库中使用SMC技术计算二维集合交集大小的基础工具和函数,可以用于解决一些需要计算集合交集的问题,例如关联性分析、数据匹配等。在使用这些工具时,需要注意输入数据的精度和保护,以及输出结果的正确性和保密性。因此,这个目录中的代码仅作为了解ABY库的使用方法和功能,建议用户在实际开发中仔细考虑数据特点和计算要求。
10. ABY 中的psi_phasing文件夹

学习路线:

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 18
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值