技术

本体技术视点 | 长安望楼?这只是中国古代密码学应用的一角

注:本文部分图片及文字来源于网络,仅供交流学习使用,不具有任何商业用途。 封面图来源:https://107cine.com/stream/112883 01 引言 天保三载,元月十四日,巳正。长安城一百零八坊沐浴在上午灿烂的阳光中。西市署署吏站在望楼上宣布西市开市,长安城暂停宵禁,全城沸腾。在这盛事背景下,长安城中暗藏的杀机开始显现,突厥狼卫伺机而动,一场惊心动魄的反恐行动就此展开。 图 | 网络 张小敬能够在追击狼卫的过程中处处取得先机得益于望楼及其通信系统。长安城中每一坊都设有二到三栋耸立的望楼,实时监视着城中异样,并用紫白色方格加以不同的组合,将消息快速传递给张小敬以及情报中心靖安司,以便他们快速作出决策。 图 | 网络 望楼上的武侯掌握着一套密码通信系统,这是消息能较为安全传送的保证。简单来说,经过精心训练的坊间望楼武侯首先将要传递的消息按照既定的密码本将消息编码成算筹表示的数字,再用紫白色方格将数字表示并传递出去。接收到消息的靖安司大望楼武侯把颜色方格再转回数字,并将消息解码出来。 图 | 中国科学技术馆所展示的算筹 值得一提的是,中国古代在春秋战国时期就开始采用算筹计数法,在数学史上留下了一个个辉煌的记录,古代大将更是“运筹帷幄”,决胜千里之外。 02 中国古代的密码应用 今天,密码被广泛应用在生活中,银行卡刷卡、社交通信以及区块链交易等生活的方方面面都无时不刻在使用密码学保护金融安全和通信安全等。而在古代以及近代,无论是中国还是外国,密码一般都用于军事活动中。古罗马军事统帅凯撒在军队中使用替换加密技术来传递消息,而 Enigma 密码机的破译则加速了二战的结束,中国古代也有很多关于密码应用的记载。 2.1 阴符阴书通密语 公元前一千多年,姜子牙凭着满腹韬略辅佐周武王兴周灭商,为中国历史上存在时间最长朝代的建立创下了坚实的基础。据传为姜子牙所著的《六韬》更被被誉为是兵家权谋类的始祖。在这其中,姜子牙提出了采用阴符和阴书来进行保密通信。 姜子牙以八种不同长短的阴符分别表示八种战局结果,如长一尺的阴符表示大获全胜。只有君王和主将才明白这八种阴符代表的意义,这样敌人就较难识破它。可以看到,阴符可以传递的消息比较少,如果两军要配合出军作战,则可以使用阴书来进行联络军机要情。两军联络时,军情被拆分成三份,三个传令兵各持一份传递,只有合起来才能了解整个军情。阴书可以看作是较为典型的秘密分享方案原型。 2.2 虎符相合令千军 1973年,西安出土了一枚秦朝虎形兵符——秦杜虎符。作为国宝级的珍贵文物,该虎符现存于陕西历史博物馆中。虎符分为两半,右半符掌握在国君手中,左半符在将军手中。平时,将军持左半符可以命令五十人以下的士兵采取军事措施。凡要调动五十人以上的士兵,就要求左符和右符相合才能行动。但在紧急情况下,如狼烟起,将军亦可持半符便宜行事。 图 | 陕历史博物馆的秦杜虎符 我们可以看到,现代在密码学中的认证也继承着这种精神,并把“我拥有什么”这样的认证进一步发展成“我知道什么”以及“天然的属性是什么”等多样化的认证方式。 2.3青鹅字拆宰相亡 公元684年,武则天废唐中宗李哲,开启则天朝的时代。徐敬业在扬州起兵反对武则天,同时由骆宾王主笔著名的《为徐敬业讨武曌檄》以号召天下勤王救国。此时,时任宰相裴炎和徐敬业的一封信被武则天获得,这封书信上并没有其它东西,只是上书“青鵝”两字。武则天破译了其中的密码规律,即把“青鵝”两字拆开,就变成“十二月,我自与”,这是相约时间做内应的意思。于是,裴炎被武则天当场拿下。 值得一提的是,在《资治通鉴》和《唐史》等正史均未有记载该青鹅事件。另外,骆宾王正是初唐四杰之一,于七岁成五言古诗《咏鹅》的唐代著名诗人。 2.4 太子梦破矾书显 白矾,是由明矾石经加工提炼而成。将白矾溶于水中,毛笔蘸着白矾水写字晾干后字迹会消失,重新浸于水中字迹就会重现。白矾水是中国古代军事和政治活动中应用较为广泛的一种隐写术。严格意义来说,隐写书并不属于密码学,但常用来进行秘密通信。 清康熙晚年,西北战事起。废太子胤礽想出征并领大将军的职务,并以此复出。于是胤礽托人用矾书代为传信,请人保举自己作为领兵大将。后来他人发现了该矾书,并向康熙告发。至此,胤礽恢复皇太子身份的计划彻底失败。 03 后记 古典密码学在古代和近代军事等活动中发挥了重大作用。如今,现代密码学在日常生活中展示着它的强大魅力,更是区块链技术的一个重要组成部分。本体技术团队将对相关密码学技术,如门限技术、零知识证明以及聚合签名等进行研究分析,为区块链安全以及区块链的广泛应用提供重要技术支撑。 本文的完成参考了包括国家密码管理局网站以及陕西历史博物馆网站等大量资料,受篇幅所限,并不一一列出,在此一并感谢。

Python爬虫-代理篇-TOR

Tor介绍 TOR是全球有名的匿名网络,具有很高的匿名性,简单点说,Tor网络利用流量转发的方式,达到隐藏真实请求端(客户端)的目的,是目前比较受欢迎也比较有名气的的匿名工具。其原理图如下 由于出口IP随机轮换,且具有很强的匿名性,因此我们可以使用Tor网络作为爬虫代理,用来解决一些网站的IP封禁问题。 Tor的安装和使用 Tor安装 sudo apt-get install tor 重启 sudo /etc/init.d/tor restart 生成密码 tor –hash-password mypassword 这个操作会生成一个Hash串 修改配置文件 命令 vim /etc/tor/torrc ControlPort 9051 HashedControlPassword 16:872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C Python使用Tor Python2 sudo pip install requests sudo pip install requesocks #!/usr/bin/python #coding:utf-8 import os import requesocks import socks import socket import requests import time import sys reload(sys) sys.setdefaultencoding('utf-8') url = 'http://api.ipify.org?format=json' def getip_requests(url): print "(+) Sending request with plain requests..." r = requests.get(url) print "

【基础篇】————23、隐匿攻击之Tor Fronting

0x01 简介 学习完Domain Fronting之后,又从@vysecurity的文章里学会了一个新的姿势–Tor Fronting,使用Tor Fronting 同样能在攻击中隐藏自己,并且更加容易实现,此文就来介绍一下这个新的姿势。 0x02 Tor Hidden Services Tor是互联网上用于保护您隐私最有力的工具之一,而Tor Hidden Services则是为了隐藏自己的网站或者其他服务的一个服务。通过此服务,我们可以获取到一个通过Tor Browser来访问的Hostname,此Hostname唯一且匿名,所以我们完全可以使用这个Hostname来为我们转发流量从而达到隐匿的目的。 怎样搭建Tor Hidden Services可以参考此wiki,下面介绍一下我测试环境的搭建过程。 环境为:Ubuntu 12.04 搭建过程如下: 查看系统信息: lsb_release -a 可以看到Codename为precise,所以在这里选择deb类型如下: 之后按照官方wiki修改更新源,我的源路径为/etc/apt/sources.list,有的系统更新源路径可能在/etc/apt/sources.list.d/,在源中添加以下条目: deb http://deb.torproject.org/torproject.org precise main deb-src http://deb.torproject.org/torproject.org precise main 之后执行以下命令: gpg –keyserver keys.gnupg.net –recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 gpg –export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add – 安装: $ sudo apt-get update $ sudo apt-get install tor deb.torproject.org-keyring 执行完成以后,就成功安装了,如果出现问题,可以查看一下wiki。 之后要对tor进行一下配置,编辑配置文件/etc/tor/torrc,将以下两个参数前的注释去掉。 HiddenServiceDir /var/lib/tor/hidden_service/ HiddenServicePort 80 127.0.0.1:8080 HiddenServicePort为代理的端口,将本地的8080端口服务转发到80端口。 配置完成以后对Tor服务进行重启: sudo service tor restart 查看获取到的hostname:

centos7.x搭建Tor私人网桥

1. 下载并安装 Tor yum install tor -y 2. 安装 obfs4 通过python进行编译安装: (1)安装 所需依赖软件模块: yum install make automake gcc python-pip python-devel libyaml-devel (2)安装 obfs4proxy: pip install obfsproxy 通过go进行编译安装: (1)下载go的obfs4项目: git clone http://www.github.com/Yawning/obfs4 (2)进入obfs4目录进行编译: go build -o obfs4proxy/obfs4proxy ./obfs4proxy (3)复制bofs4proxy到系统工作目录下: cp ./obfs4proxy/obfs4proxy /usr/bin/obfs4proxy 3. 配置 Tor Bridges 编辑 /etc/tor/torrc: vim /etc/tor/torrc 定义一个 ORPort,不作为出口节点,设置成 Bridge: Log notice file /var/log/tor/notices.log RunAsDaemon 1 ORPort 4443 Exitpolicy reject *:* BridgeRelay 1 ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy ExtORPort auto PublishServerDescriptor 0 重启tor服务: systemctl restart tor 查看tor服务状态

惠普暗影精灵2 Mojave(几乎完美黑苹果)

惠普暗影精灵2 Mojave 新的改变 已知BUG Bug修复 1. 电池修复 2. 亮度调节修复正常 **Mac os(Mojave)的镜像百度即可!** Github开源地址 ====传送地址: [Mojave 暗影精灵2](https://github.com/Arecall/-Mac-os).==== 新的改变 2018年6月5日,在2018苹果全球开发者大会上,苹果发布了mac OS Mojave系统。 夜间模式 ,MacOS Mojave的夜间模式,不仅使UI变暗, 还切换壁纸,窗口边框和窗口内容,此外,XCode同样也支持夜间模式。用户可以自行设置夜晚模式,也可以由系统决定随时间自动启动。 桌面堆积,可以通过类型、日期、标签等进行分类,侧栏底部的新快速操作,可快速执行旋转图像等操作。几乎可以在任何文件视图中使用侧边栏。如果选择多个文件,它可以对所有文件执行操作,例如将它们组装成PDF。 画廊视图(Gallery View),可预览图片、视频、PPT、表格、PDF等,侧边栏支持完整元数据,右下角增加快捷工具栏可执行旋转等操作,侧边栏可以在几乎任何文件视图中使用,选择多个文件后可以执行整体操作如生成PDF。 截屏,功能非常丰富,就像在iOS上截图时角落里会出现大拇指图标,点击就会出现快速标记工具。 iOS应用登陆桌面 ,Apple News苹果新闻、Stock股票、Voice Memos语音备忘录、Home家庭都会来到macOS,基本上可以视为iPad版本,为此苹果从iOS上移植过来了一些关键框架。 HomeKit,可以在Mac上添加和管理HomeKit设备,依然支持Siri语音控制。 Quick Look,加入Markup,可以直接把签名拖拽到文档内。 Continuity Camera,可以直接将iPhone里已有或者拍摄的照片直接导入桌面文档,还可以扫描手机上的文档并发送结果。 安全和隐私,任何应用都默认受到保护。Safari减少对用户数据的追踪。网页信息追踪保护默认关闭。加强硬件指纹识别安全等级(iOS 12/macOS Mojave同步)。 应用商店,界面重新设计像iOS商店看齐,增加新的分类包括发现、创建、工作、游戏、开发、分类、更新,增加关于应用的故事(Stories)。 已知BUG WIFI模块不可用 2. 电池DDST有问题,未修复 3. 亮度调节需要外接键盘,使用Fn+亮度调节经行第一次矫正,以后直接使用后电脑键盘deFn+亮度调节。 Bug修复 1. 电池修复 2. 亮度调节修复正常 Mac os(Mojave)的镜像百度即可! Github开源地址 传送地址: Mojave 暗影精灵2.

比特币配置洋葱tor服务

注意权限问题,我就是在本地很快成功(root用户),在服务其上用的其它用户(权限问题),因为权限问题折腾了好几个小时╭( T □ T )╮ 我是在服务器和我本地环境都做了验证 1、下载tor(2),目前比特币不支持tor3 sudo apt-get install tor 2、配置/etc/tor/torrc ControlPort 9051 CookieAuthentication 1 CookieAuthFileGroupReadable 1 3 查看bitcoind运行的用户和组信息 ps -eo user,group,comm | grep bitcoind 这个就可以了 4 添加bitcoind的用户到组中 sudo usermod -a -G BITCOIN_GROUP BITCOIN_USER 5、配置bitcoin.conf proxy=127.0.0.1:9050 listen=1 bind=127.0.0.1 onlynet=onion #设置比特币节点只连接到tor hidden services 6、重新启动tor /etc/ini.d/tor restart 7、重新启动bitcoind 成功标志: debug.log 中: tor: Got service ID XXXXXXXXXXX, advertising service XXXXXXXXXXX.onion:8333 或testnet3/regtest下有此文件(此文件删除会自动生成) onion_private_key 参照: https://en.bitcoin.it/wiki/Setting_up_a_Tor_hidden_service

高频交易(二)浅谈高频交易中比较成熟的一些交易策略

今天我们谈谈高频交易中比较成熟的一些交易策略,应用于数字货币市场。 引言: 高频交易是自动化交易的一种形式,以速度见长,利用计算机系统加入人工智能算法,以智能化方式,快速,稳健的短线持仓执行交易。其中,国际金融领域比较流行的交易策略有: 1、市场微观结构交易策略; 2、统计套利策略; 3、事件交易策略; 4、流动性交易策略。 高频交易是量化投资领域,金融市场一颗璀璨的明星,是金融科技发展到一定程度的产物。更是国际金融炒家常用的金融工具。欧洲证券监管委员会给出这样的定义:高频交易是自动化交易的一种形式,以速度见长,它利用复杂的计算机技术和系统,以毫秒级的速度执行交易,并且日内短暂持仓。现在再加入人工智能方式,来创建合理的高频交易模型。 高频交易都有哪些关键特征: 1、处理分笔交易数据和算法交易 处理分笔交易数据和算法交易是高频交易的重要流程,高频交易通过对市场分笔交易数据进行采集、处理,分析市场在微观上潜在的交易机会,一旦确认交易机会,通过算法交易及时下单进场,获利后快速平仓离场的一种交易策略。 2、高资金周转率和日内交易 高资金周转率和日内交易也是高频交易的特点,交易过程中,资金快速进场出场,一秒钟内可以发生多次下单、撤单的动作。资金在整个交易过程中高速流转,提高了市场流动性。同时,日内交易也回避了隔夜风险。 国际金融市场有以下几种比较成熟的交易策略: 1、市场微观结构交易策略 市场微观结构交易策略主要是通过分析市场中即时的盘口数据,在短时间内,对选定的交易对,根据交易对买卖订单流不平衡原理进行短暂交易的策略。比如EOS当天涨幅12%,ETH涨幅3%,这样的策略在短时间就产生较大的套利空间。市场中即时的买卖订单流中潜藏着很多交易机会,通过系统统计可见的交易订单及其他参数变化,分析未来极短时间内是卖单流主导还是买单流主导。在卖单流主导的市场中,价格将下跌;在买单流主导的市场中,价格将上涨。根据市场变化进行操作。 利用市场微观结构交易策略,系统通过对比分析交易订单中买卖单量,抢先交易,并快速平仓。前提条件是需要获取真实的交易订单数据,防止干扰数据。因此这种交易策略还需要配合其他交易策略,交易参数一起分析,做出正确的分析判断。 这种交易策略应用比较广泛应用在期货交易市场,通过观察盘口信息,寻找机会,快速下单,快速平仓,高频交易,获利不小。 这种交易方式以速度见长,人工操作几乎很少,都是通过系统分析,快速操作完成。 2、统计套利策略 统计套利策略是寻找具有长期统计关系的交易对,根据长期的数据统计结果,在交易对价差发生偏差时进行套利的一种交易策略。这种交易策略也非常适合于数字货币交易市场。 3、事件交易策略 事件交易策略是指利用市场对事件的反应进行交易的策略。事件可以是影响广泛的经济事件,也可以是行业相关事件。每个事件对市场产生影响的时间差异很大,高频事件交易策略就是利用事件在极短时间内的影响自动进行交易,赚取利润。 该策略中有两个环节比较关键。 1)确定什么时间可以产生影响的事件。这就需要信息搜集部门配合,挖掘最近事件,及事件对市场的影响。快速反应。快速交易。 2)确定事件的影响时间和方向。这需要不断地对历史数据进行统计挖掘。 4、流动性交易策略 流动性交易策略是为市场提供流动性来获取利润的交易策略。做市商们为市场提供不同价位层次的订单,为头寸接受者提供流动性,因此被称为流动性交易策略。做市商为市场的流动性做出了贡献,很多非活跃市场由于做市商的存在,流动性显著提高,交易成本大为降低。 做市商策略的理论基础是存货模型与信息模型 1)买卖价差实际上是有组织的市场为交易的即时性提供的补偿。 2)买卖价差是由于市场信息不对称性造成的。 做市商们通过对订单统计分析、对波动性等市场微结构进行研究,提高了市场流动性,同时也从市场中获利。 总结: 不是一种交易策略都是万能的,往往在实际操作过程中,几种策略同时运用,取长补短,综合分析,在合适的时间点,选取合适的策略组合进行操作。这就需要计算机系统与人工智能综合运用起来。对统计数据不断分析,根据模型预警为操作者建议合适的交易策略。操作者再根据自己的经验,参考模型分析,理性的做出合理的判断。 2019年12月19日整理于深圳

隐藏网,怎么进入深网

an网(不可见网,隐藏网)是指那些储存在网络数据库里、不能通过超链接访问而需要通过动态网页技术访问的资源集合,不属于那些可以被标准搜索引擎索引的表面网络。最近没啥事,对暗网一直是久闻其名,这不正好好奇进去看看,毕竟有的时候越是朦胧越好奇,真正进去了才发现也就那样。 我总结了下,进入暗网首先要三步: 1.首先要有VPN,国内的墙厉害,不翻墙是进不去暗网的,我这边用的一个叫魔法集中营的翻墙软件,20块钱一个月,其实这种翻墙的VPN自己搭建也行,只需要有墙外的服务器资源,比方说阿里云,能够翻墙之后,连接youtube。 2.其次要有Tor Browser浏览器,国内称洋葱浏览器,是为了无痕处理,毕竟法外之境,需要无痕处理等,打开Tor Browser 点击连接,进入此页面。 连接成功后和正常浏览器一般使用即可 3.第三步,你需要了解暗网的地址,暗网中的大部分网站都是以onion为后缀名的网站,当然也有些像not Evil的搜索网站,但不太会用,暗网毕竟是法外之地,色情暴力血腥都是赤裸裸的,这边只是介绍一下让人知道,能不进去还是别进了,心向大海,春暖花开。 完成以上三步就可以进入暗网了

dom节点生成图片

1,业务要求将dom节点生成图片,注意点,移动端dom节点不可以使用%,rem等布局。要是用px来布局,并且使用640的设计稿,适配320px的手机屏幕。要在服务器上才可以,我是用node+express搭建的服务器环境。如果有自己的环境可以直接引用下面代码 2依赖的js:html2canvas.js和canvas2image.js,为了省事我引入jq。 1dom绘制成为canvas————–html2canvas /* html2canvas 0.5.0-beta3 Copyright (c) 2016 Niklas von Hertzen Released under License */ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.html2canvas=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0x80 (not a basic code point)', 'invalid-input': 'Invalid input' }, /** Convenience shortcuts */ baseMinusTMin = base - tMin, floor = Math.floor, stringFromCharCode = String.

webview夜间模式适配小结

做webview的夜间模式,来来回回折腾了好几天,基本上都是copy网上的各种css代码。 1. 一般实现webview夜间模式,要么就是内核自己实现了这个功能,一个api就能搞定(像uc内核:目前没有实现真正的开放;腾讯x5内核:开放,不知道能不能自定义夜间模式的颜色值之类的); 2. 要么就是自定义一个html模板,从后台获取json数据,把数据解析出来,把各个节点的数据通过js写入到这个模板中,相当于自己在本地组装了一个新的html,丢到webview里面,这样web加载起来也比较快,因为都是一些本地的数据; 3. 再者就是像我这样很无奈的,需要通过js代码向原来的web中注入css代码来改变网页的风格了,说白了就是从后台拿到一个url网页地址,把这个url丢给webview,然后在webview加载完成后注入css代码来改变网页的风格。 用3这种方式最主要的问题就是这个css代码都有些啥,世界上的网页多种多样,要尽可能的适配各种标签,但是也未必能覆盖得全面。对于一个从来没有接触过html,js, css的我来说,着实着急了一把。但是最终还是勉勉强强的实现了这个功能。在这里记录一下新路历程。 首先,去网上搜罗了一堆css代码: Android webview设置字体大小,适配屏幕,夜间模式 这篇文章,对主要的标签节点都配置了背景色,这里贴出具体的css代码,注入方法且看原文: html,body,header,div,a,span,table,tr,td,th,tbody,p,form,input,ul,ol,li,dl,dt,dd,section,footer,nav,h1,h2,h3,h4,h5,h6,em,pre { background: #333 !important; color: #616161!important; border-color: #454530!important; text-shadow: 0!important; -webkit-text-fill-color: none!important; } html a,html a * { color: #5a8498!important; text-decoration: underline!important; } html a:visited,html a:visited *,html a:active,html a:active * { color: #505f64!important; } html a:hover,html a:hover * { color: #cef!important; } html input,html select,html button,html textarea { background: #4d4c40!important; border: 1px solid #5c5a46!important; border-top-color: #494533!