目录
前言
项目背景
数据集
设计思路
区块链
隐私加密
实验环境
实验结果分析
更多帮助
前言
大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
对毕设有任何疑问都可以问学长哦!
大家好,这里是海浪学长计算机毕设专题,本次分享的课题是
基于区块链的图像版权保护系统
项目背景
随着数字时代的到来,图像版权保护成为了一个日益突出的问题。传统的版权保护方法在面对大规模在线图像时存在难以追踪和保护的问题。区块链技术作为一种去中心化、不可篡改的分布式账本技术,具有天生的安全性和平等性,因此,基于区块链的图像版权保护系统成为了解决这一问题的有效途径。此课题的研究对于推动区块链技术在版权保护领域的应用,保护图像创作者的合法权益,具有重要意义。
数据集
由于网络上没有现有的合适的数据集,我决定自己去摄影工作室进行拍摄,收集图片并制作了一个全新的数据集。这个数据集包含了各种摄影作品的照片,其中包括人物、风景、艺术创作等。通过现场拍摄,我能够捕捉到真实的创作场景和多样的摄影风格,这将为我的研究提供更准确、可靠的数据。我相信这个自制的数据集将为基于区块链的图像版权保护系统研究提供有力的支持,并为该领域的发展做出积极贡献。
数据扩充是提高模型鲁棒性和泛化能力的重要手段。在本研究中,我们对收集到的摄影作品照片数据进行了多样化的数据扩充。包括使用图像处理技术生成新的训练样本,如旋转、缩放、裁剪等。这些扩充后的数据能够帮助模型更好地学习和理解摄影作品的多样性和复杂性,提高模型在实际应用中的表现力。同时,数据扩充还可以增加模型的泛化能力,使其在面对未见过的数据时仍能保持良好的性能。
设计思路
区块链
区块链是一个分布式的共享账本和数据库,依赖于P2P网络实现分布式存储,并能够永久存储交易记录。其基本数据单元是区块,包含区块头和区块体,其中区块头包含了生成时间、父哈希值和根哈希值等信息,而区块体包含了交易数据的Merkle树。区块链的设计基于去中心化、透明性和不可篡改性的特点,通过分布式节点来存储和维护数据,实现了数据的高透明性和安全性,同时防止数据被篡改和删除。
Hyperledger是由Linux基金会发起的开源项目,旨在推动跨行业应用的区块链技术。该项目支持可插拔的共识协议,以适应不同的信任模型,并通过授权机制方便节点的加入和治理,同时无需发行加密货币来激励记账。Hyperledger具有高度模块化和可配置性的体系结构,其中Fabric是其主流框架,适用于复杂的企业内和企业间联盟链部署。Fabric具有功能模块化、可插拔、可扩展以及高度的数据隐私保护等特点。其逻辑架构由成员身份管理、共识服务和智能合约三个服务模块构成,并通过不同角色的服务节点提供服务。Fabric实现了从交易发起到共识上链的典型交易流程,并支持权限网络和隐私保护,适合用于实现高效安全的版权保护。
哈希算法将任意长度的输入数据映射为固定长度的输出,通过生成的哈希值来代表输入数据。传统的密码学哈希算法(如MD5和SHA-256)简单易用,但对于图像处理并不适用,因为即使微小的图像变化也会导致哈希值的剧烈变化,影响侵权检测效果。图像哈希算法则是将图像特征映射为对应的哈希值,以降低存储和计算复杂度,并实现高效的图像处理。通常,图像哈希算法包括预处理、特征提取和特征压缩三个阶段。首先对输入图像进行数字操作,获取规范化图像以避免大小差异影响哈希值。然后从规范化图像中提取稳健的特征,并最终压缩生成图像哈希。在数字图像版权保护中,通常使用图像哈希算法对图像数据进行处理,并与数据库中的图像数据进行比较,以判断是否存在侵权行为。感知哈希算法是常用的图像哈希算法之一,能够有效检测对图像进行细微篡改的情况,通过计算哈希值的相似性来进行侵权判定。
隐私加密
Logistic混沌系统是一种经典的非线性动力学系统,用于描述人口增长、生态系统行为、金融市场波动等现象。Logistic混沌系统的特点是具有对初始条件和参数敏感性、周期倍增和混沌行为。当r的取值在某个范围内时,系统会呈现周期性的行为,而在另一些范围内则会展现出混沌行为,即呈现出长期的无规律、不可预测的状态。
Logistic混沌系统的吸引子可以是一个周期轨道,也可以是一个吸引分岔图,具体取决于参数r的取值。其混沌行为使得系统具有灵敏的依赖于初始条件的特性,微小的变化可能会导致系统轨迹的巨大差异,这也被称为蝴蝶效应。
椭圆曲线加密是一种基于椭圆曲线数学理论的公钥加密机制。它利用椭圆曲线上的离散对数难题来提供安全性。与传统的RSA和DSA等公钥密码系统相比,ECC可以在使用更短的密钥长度的情况下提供相同的安全级别,这使得它在资源受限环境下更加适用。椭圆曲线加密机制的关键在于选择适当的椭圆曲线和基于该曲线的加密算法。通过选择合适的参数,可以确保椭圆曲线加密的离散对数问题难以破解,从而提供安全性。ECC广泛用于保护敏感数据的传输和存储,如网络通信、数字签名、密钥协商等领域。
基于ECC算法的多关键词模糊可搜索加密(Searchable Encryption)是一种用于保护用户隐私的加密技术。它允许用户在加密状态下将多个关键词存储在云服务器上,并且仍然能够进行模糊搜索,从而找到与关键词相关的加密数据。在这种方案中,使用椭圆曲线加密算法对用户的关键词进行加密,并将加密后的关键词存储在云服务器上。当用户想要搜索某个关键词时,他们将该关键词进行加密,并将加密后的搜索请求发送给云服务器。云服务器使用相同的椭圆曲线加密算法对加密的搜索请求进行匹配,并返回与匹配的加密关键词相关的加密数据给用户。
实验环境
该实验在CentOS7环境中搭建了基于Hyperledger Fabric 2.3的区块链网络,使用Typescript编写链码并完成了部署。同时,利用Python实现了图像哈希生成和图像混沌序列加密的功能,并在一个20GB大小的自制数据集上进行了测试。这些实验工作为提出的方法提供了验证和评估基础。
实验结果分析
为了实现数据完整性判定和身份验证,首先需要对使用ECC算法加密后的版权信息进行解密,然后 根据发送方的公钥、解密后的版权信息中的图像版权所有者名称以及签名进行验签。为了增强数据传输和访问过程中的安全性,将签名及部分版权信息进行加密,使数据以密文形式进行传输。完成版权信息注册后,将密文版权信息和加密后的图像存储到IPFS中。消费者申请交易并完成支付后,根据IPFS哈希值下载所需的版权信息,并进行解密。最后,对改进后的ECC算法进行性能分析,评估其在密钥空间、密钥敏感性以及抗攻击能力方面的表现。
相关代码示例:
// 读取智能合约的ABI和字节码const contractABI = JSON.parse(fs.readFileSync('contractABI.json', 'utf8'));const contractBytecode = '0x' + fs.readFileSync('contractBytecode.txt', 'utf8');// 部署智能合约const deployContract = async () => {const accounts = await web3.eth.getAccounts();// 创建合约实例const contract = new web3.eth.Contract(contractABI);// 部署合约const deployedContract = await contract.deploy({data: contractBytecode,arguments: [] // 如果有构造函数参数,可以在这里传递}).send({from: accounts[0],gas: '5000000' // 根据需求设置适当的gas上限});console.log('Contract deployed at address:', deployedContract.options.address);};// 调用智能合约的方法进行版权保护const protectImageCopyright = async (imageData, ownerAddress) => {const accounts = await web3.eth.getAccounts();// 创建合约实例const contract = new web3.eth.Contract(contractABI, 'contractAddress'); // 替换为实际的合约地址// 调用合约方法await contract.methods.protectImage(imageData, ownerAddress).send({from: accounts[0],gas: '300000' // 根据需求设置适当的gas上限});console.log('Image copyright protected.');};
海浪学长项目示例: