精华内容
下载资源
问答
  • 此外,还研究了一些相关动力学特性,并基于平衡稳定性分析如何与蠕虫流行作斗争。 仿真结果表明,从减少恶意蠕虫感染主机数量和降低恶意蠕虫传播速度角度出发,我们提出的模型在对抗此类蠕虫方面是有效的...
  • 本文将从客户角度对电信服务的有效性衡量问题入手进行分析,以期抛砖引玉。客户角度的服务有效性评价可以从三个维度进行,即客户的需求层次识别、客户细分和客户的满意度测评,本文主要介绍三维评价模型的确定及选择...
  • 在对煤储层应力敏感性分析的基础上,推导了考虑应力敏感性的煤层气气井产能模型,提出了用产量降低幅度值(β)描述应力敏感对煤层气井产量影响程度,揭示了有效应力对煤储层渗透和煤层气井产能影响规律。...
  • 构建有效的系统模型

    2021-03-03 05:01:12
    统一建模语言(UnifiedModelingLanguage,UML)模型面临着特殊挑战,因为其受众具有多样性的特点,其中可以包括开发人员、业务所有者、分析人员、测试人员和项目经理。UML模型(遵循特定形式最佳实践特征视图)...
  • JMM中可能产生行为表象为不论代码是如何实现程序行为,只要保证程序所有结果执行和JMM预期结果一致即可 基于上述第二点,对实现者执行代码进行转换实现就比较自由,可以实现操作重排序甚至删除不必要...
    1. JMM模型描述
    • 给定程序以及一个检测程序是否合法的执行跟踪,JMM工作原理是检查执行跟踪中的每个读,并根据某些规则检查读观察到的写是否有效
    • JMM中可能产生的行为表象现为不论代码是如何实现程序行为,只要保证程序的所有结果执行和JMM预期的结果一致即可
    • 基于上述的第二点,对实现者执行的代码进行转换的实现就比较自由,可以实现操作的重排序甚至删除不必要的同步操作代码
    2. JMM之数据共享与竞争

    线程共享与独占区域

    • 线程共享区域: JVM运行数据区中的方法区,堆内存存储的数据变量,存在数据竞争,即数据读写的安全问题
    • 线程独占区域: JVM为每个线程单独创建的私有区域,用于存储当前线程私有的数据变量,不存在数据竞争,比如线程局部变量,ThreadLocal/ThreadLocalRandom等
      在这里插入图片描述

    线程通信产生数据竞争

    • 简要的源代码
    // constant.java
    final int P = 10;
    final int C = 20;
    // shared.java
    int pwrite = 0;
    int cwrite = 0;
    // producer.java
    int pread = 0;
    public void run(){
    	pread = cwrite; // 生产者线程需要消费者线程cwrite的数据
    	pwrite = P;
    }
    // consumer.java
    int cread = 0;
    public void run(){
    	cread = pwrite;// 消费者线程需要生产者线程的pwrite数据
    	cwrite = C;
    }
    //按正常结果输出的预期值推断,不会产生同时pread == C(20)和cread == P(10)
    
    • 结果反推分析(基于我们看到的代码顺序)
      • 如果上述的执行结果成立,那么cwrite = C一定是在pread = cwrite之前执行的;
      • 由于cwrite = C是在cread = pwrite之后执行,所以cread = pwrite一定是在pread = cwrite之前执行的;
      • 也就是cread = pwrite一定是在pwrite = P之前执行的,所以结果是不成立
    • 产生问题
      • 线程既然存在写操作,那么写操作的数据变量一定会让另一个线程读取到对应写后的数据么?
      • 由于线程本身也有自己的工作内存,因此读取数据变量不一定就是另一个线程写操作之后的数据,此时可能读取到工作内存上的缓存数据(脏数据)
    • 但是基于JMM规范,产生优化后可能的执行代码
    public void run(){
    	pread = cwrite; // 生产者线程需要消费者线程cwrite的数据  --1
    	pwrite = P;     // --2
    }
    // consumer.java
    int cread = 0;
    public void run(){
    	cwrite = C;     // --3
    	cread = pwrite;// 消费者线程需要生产者线程的pwrite数据 -4
    }
    
    • 在上述两个线程中分析
      • 线程在并发下,可能产生执行的顺序为3-1-2-4,也就是同时产生pread == C(20)和cread == P(10)
    • 数据竞争
      • 当前线程对一个变量执行写操作
      • 同时另一个线程对相同的变量执行读操作
      • 读写操作没有通过同步实现排序
    • 产生问题
      • 不同线程之间通信会对共享变量的数据产生竞争,在这种情况下,JMM作出重排序的优化会导致输出结果与预期的结果不一致,如果放在实际的业务场景中,将会导致很多无法控制的业务逻辑错误,后果不可想象.

    JMM下的并发问题

    • 其一,读取到的共享数据不一定是写操作之后的数据,也就是写操作对读操作不可见(缓存导致)
    • 其二,JMM为了提升性能对代码进行重排序,那么就会导致数据产生的结果和预期的不一致(重排序导致)
    3. JMM可见性解决方案

    线程之工作内存

    • JMM抽象之工作内存(线程本地内存)
      • 线程栈中的存储的变量,如局部变量,方法参数,异常处理参数等
      • CPU高速缓存
    • 线程,工作内存,JMM与主内存
      在这里插入图片描述
      从上述可知,在JVM运行数据区中,工作内存与主内存是通过JMM模型规范来完成彼此之间的数据交互,因此可以通过JMM定义的内存语义规范来提供数据变量的可见性
    • 基于缓存问题解决方案
      • JMM规范规定使用针对的技术手段时,将强制线程直接绕过工作内存读取主内存的共享数据
      • 常用技术手段:volatile/synchronized/final/具有内存同步的操作指令

    重排序

    • 遵循规则

      • as-if-serial: 即不管怎么进行重排序(编译器和处理器为了提高并行度),(单线程)程序的执行结果不能被改变.编译器/runtime/处理器都必须遵循as-if-serial语义,也就是说编译器和处理器不会对存在数据依赖关系的操作做重排序
    • 重排序的分类

      • 编译器重排序: 基于单个线程程序的语义前提下,Java开启server模式(clinet不支持)可以对程序代码进行编译优化
      • 处理器重排序:在没有存在数据依赖的前提下,处理器可以改变机器指令的执行顺序
    • 重排序解决方案

      • 编译器会根据JMM特定类型(同步代码标志等)禁止进行重排序
      • 在Java编译器生成指令之前插入特定的内存屏障来禁止处理器重排序
    • 内存屏障类型: 常见CPU高速缓存与内存屏障

    展开全文
  • 这项研究比较了这些和其他教学策略如何评估从4Ps模型(人员,过程,新闻和产品)衍生的创造力的有效性。 在系统的搜索中,我们确定了2000年至2011年发表的11篇文章。 此外,本研究对创造力教学经验进行了分类,并...
  • 如何高效利用节点能量是无线传感网络要解决首要问题,需要建立高适应性的能耗模型分析和预估无线传感网络剩余能量。本文在分析无线传感网络能量消耗特征基础上,根据无线通信环境和节点状态转换关系,建立...
  • 通过对免费sigma模型的详细分析,我们证明了适用于通用自旋结构的Peter-Weyl定理的修改版本。 结论是,我们可以对整个理论和单个电荷扇区之间的热力学和光谱形状因子进行比较,从而对SYK模型进行预测,并了解对称...
  • 销售数据分析模型

    千次阅读 2015-08-04 13:33:37
    销售数据分析的重要已...那么实际销售过程中,我们如何才能有效做好数据分析,寻找到真正“动因”呢?接下来结合一个实际案例阐述一下数据分析的主要维度及如何才能真正找准“动因”。 案例:某糖果企业Y公司

    销售数据分析的重要性已无需赘言,只有通过对销售数据的准确分析我们才有可能真正找准数据变动(增长或下滑)的根本原因,营销专家刘杰称之为“动因”。找准了“动因”也就发现了真正的问题所在,解决问题、发现新的生意机会点才成为可能!那么实际的销售过程中,我们如何才能有效做好数据分析,寻找到真正的“动因”呢?接下来结合一个实际案例阐述一下数据分析的主要维度及如何才能真正找准“动因”。
    案例:某糖果
    企业Y公司南京市场8月份销售业绩较去年同期下滑了100万。




      维度一:分析是那个品类的数据发生了变动?

      在做销售数据分析的时候,第一个分析的维度就是要看数据变动是来自于哪几个大的品类。回到案例,面对Y公司南京市场8月份销售业绩较同期下滑了100万的数据变动情况,我们首先要确定的是下滑的100万是来自于哪个品类或哪几个品类,每个品类各自的下滑占比是多少,在此基础上进一步分析得出下滑的品类中是哪个规格的产品出现了下滑,从而真正找到造成业绩下滑的“罪魁祸首”。经过维度一的分析我们发现,8月份南京市场销售业绩下滑的100万主要是来自于水果糖和巧克力的下滑,其中水果糖下滑了60万,占比60%,巧克力下滑了40万,占比40%,进一步分析得出,水果糖的下滑主要是来自于128g袋装的下滑,巧克力的下滑主要是来自于散装巧克力的下滑。

      维度二:分析是哪个区域发生了变动?

      销售数据分析的第二个维度是要看引起数据变动的销售区域在哪里?是整体销售区域都出现了下滑,还是局部区域市场出现了下滑?回到案例,南京市场下辖南京城区及江宁、六合、溧水、浦口四个县级市场。按此维度分析后,我们得出结论,南京市场销售额下滑100万主要是来自于城区市场和六合县城,其中散装巧克力的下滑主要是来自于南京城区市场,而128g袋装水果糖的下滑主要是来自于六合县城市场。




      维度三:分析是哪个渠道发生了变动?

      销售数据分析的第三个维度是要看引起数据变动的主要渠道在哪里?换句话说,是哪个渠道或哪几个渠道出现了销售业绩的变动?每个渠道数据变动的比例各是多少?按此维度分析后,我们进一步得出结论,南京市场8月份销售额下滑的100万主要是来自于两个渠道,一个是城区的喜铺渠道,另一个是六合县城的批发市场渠道,其中散装巧克力下滑的渠道主要来自于城区的喜铺渠道,128g水果糖下滑的渠道主要来自于六合县城的批发市场渠道。

      经过以上三个维度的分析后,我们就可以确定销售数据变动的基本情况,从而为进一步找准“动因”提供了更加细致、准确的依据!回到案例,面对8月份销售额下滑100万的现状,经过分析后得出的结论是南京市场下滑的100万主要来自于南京城区喜铺渠道散装巧克力和六合批发市场128g袋装水果糖的下滑,其中散装巧克力下滑了40万,占比40%,128g水果糖下滑了60万,占比60%。
    数据结论得出以后,接下来最为关键的是要找到“动因”, 找准造成数据下滑背后的真正“动因”才是我们数据分析的最终目的!动因又应该从哪些维度方面着手呢?营销专家刘杰认为,要找到数据变化的真正“动因”需要从以下几个方面入手:




      一、是不是铺市率发生了变化?

      面对案例中下滑的两个品类散装巧克力和128g水果糖,我们首先要分析确定8月份这两个品类的铺市率较7月份相比是不是也出现了下滑?如果铺市率出现了下滑,那业绩自然也会下滑,如果铺市率没有下滑则业绩下滑另有他因。

      二、是不是销售效率发生了变化?

      所谓的销售效率主要是指产品的动销速度,销售效率的变化是引起销售数据变动的主要原因之一,当然销售效率的变化不能孤立的分析,它必须与以下提及的几点放在一起进行整体性的分析。

      三、是不是价格发生了变化?

      价格是影响终产品动销的关键因素之一,某个时间节点内的产品涨价或降价会在很大程度上影响该时间段内产品销售数据的变动。




      四、是不是促销形式发生了变化?

      随着产品同质化的程度越来越高,市场竞争日趋激烈,促销对产品的动销有着至关重要的因素,因此有无促销活动或促销形式的变化直接影响着销售数据的变动情况。

      五、是不是竞品发生了变化?

      市场是竞争的市场,竞品的因素很大程度上影响着本品销售数据的变化,在“动因”的寻找过程中,除了分析本品的因素以外,更要着重分析竞品的各项因素变化情况。

      回到案例,经过以上5个方面的“动因”分析后我们最终得出结论,散装巧克力的下滑是因为主要竞争对手H品牌8月份在喜铺渠道开展了一次100箱送5箱的促销活动(竞争对手的原因),128g袋装水果糖的下滑是因为批发市场最大的一个分销商放弃了与Y公司的合作(铺市率降低的原因)。营销专家刘杰认为,到达这一步以后我们才算完成了有效的数据分析,因为我们找到了造成数据变化的真正“动因”。

      总的来说,数据分析是一切问题决策的基础,数据分析整套模型的核心目的就在于帮助我们又快又准的找到“动因”,“动因”找准了,解决“动因”的方法自然也就有了!

    展开全文
  • 在存在模糊性的金融市场中如何进行有效的投资组合管理吸引了学者们关注, 本文利用模糊线性回归对不同市场上长度不一致股票数据进行了刻画和分析, 并在改进收益和协方差矩阵基础上构建了投资组合选择模型....
  • 模型的显著检验是指构成因变量的线性组合是否有效,即整个模型中是否至少存在一个自变量能够真正影响到因变量的波动。该检验是用来衡量模型的整体效应。回归系数的显著检验是为了说明单个自变量在模型中是否有效...

    模型的显著性检验是指构成因变量线性组合是否有效,即整个模型中是否至少存在一个自变量能够真正影响到因变量的波动。该检验是用来衡量模型的整体效应。回归系数的显著性检验是为了说明单个自变量在模型中是否有效,即自变量对因变量是否具有重要意义。这种检验则是出于对单个变量的肯定与否。
    模型的显著性检验和回归系数的显著性检验分别使用统计学中的F检验法和t检验法,接下来将介绍有关F检验和t检验的理论知识和实践操作。

    1. 模型的显著性检验——F检验

    在统计学中,有关假设检验的问题,都有一套成熟的步骤。首先来看一下如何应用F检验法完成模型的显著性检验,具体的检验步骤如下:
    (1)提出问题的原假设和备择假设。
    (2)在原假设的条件下,构造统计量F。
    (3)根据样本信息,计算统计量的值。
    (4)对比统计量的值和理论F分布的值,如果计算的统计量值超过理论的值,则拒绝原假设,否则需接受原假设。

    下面将按照上述四个步骤对构造的多元线性回归模型进行F检验,进一步确定该模型是否可用,详细操作步骤如下:
    步骤一:提出假设
    在这里插入图片描述
    H0为原假设,该假设认为模型的所有偏回归系数全为0,即认为没有一个自变量可以构成因变量的线性组合;
    H1为备择假设,正好是原假设的对立面,即p个自变量中,至少有一个变量可以构成因变量的线性组合。
    就F检验而言,研究者往往是更加希望通过数据来推翻原假设H0,而接受备择假设H1的结论。
    步骤二:构造统计量
    为了使读者理解F统计量的构造过程,可以先观看下图,然后掌握总的离差平方和、回归离差平方和与误差平方和的概念与差异。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    如上公式所示,公式中:
    ESS称为误差平方和,衡量的是因变量的实际值与预测值之间的离差平方和,会随着模型的变化而变动(因为模型的变化会导致预测值的变动);
    RSS回归离差平方和,衡量的是因变量的预测值与实际均值之间的离差平方和,同样会随着模型的变化而变动;
    TSS总的离差平方和,衡量的是因变量的值与其均值之间的离差平方和,而其值并不会随模型的变化而变动,即它是一个固定值。

    根据统计计算,这三个离差平方和之间存在这样的等式关系:TSS=ESS+RSS
    由于TSS的值不会随模型的变化而变动,因此ESSRSS之间存在严格的负向关系,即ESS的降低会导致RSS的增加。正如Python数据分析与挖掘——线性回归预测模型所介绍的内容,线性回归模型的参数求解是依据误差平方和最小的理论,如果根据线性回归模型得到的ESS值达到最小,那么对应的RSS值就会达到最大,进而RSSESS的商也会达到最大。
    按照这个逻辑,便可以构造F统计量,该统计量可以表示成回归离差平方和RSS与误差平方和ESS的公式:
    在这里插入图片描述
    其中,pn-p-1分别为RSSESS的自由度。模型拟合得越好,ESS就会越小,RSS则会越大,得到的F统计量也就越大。
    步骤三:计算统计量
    下面按照F统计量的公式,运用Python计算该统计量的值,详细的计算过程可见下方代码:
    在这里插入图片描述

    import numpy as np
    import pandas as pd
    from sklearn import model_selection
    import statsmodels.api as sm
    
    Profit = pd.read_excel(r'Predict to Profit.xlsx')
    train, test = model_selection.train_test_split(Profit, test_size=0.2, random_state=1234)
    model = sm.formula.ols('Profit ~ RD_Spend + Administration + Marketing_Spend + C(State)', data=train).fit()
    #计算建模数据中因变量的均值
    ybar = train.Profit.mean()
    #统计变量个数和观测个数
    p = model.df_model
    n = train.shape[0]
    #计算回归离差平方和
    RSS = np.sum((model.fittedvalues - ybar) ** 2)
    #计算误差平方和
    ESS = np.sum(model.resid ** 2)
    #计算F统计量的值
    F = (RSS/p) / (ESS/(n-p-1))
    print('F的统计量的值:', F)
    

    结果:

    F的统计量的值: 174.6372171663537
    

    为了验证手工计算的结果是否正确,可以通过fvalue“方法”直接获得模型的F统计量值,如下结果所示,经过对比发现,手工计算的结果与模型自带的F统计量值完全一致:

    import pandas as pd
    from sklearn import model_selection
    import statsmodels.api as sm
    
    Profit = pd.read_excel(r'Predict to Profit.xlsx')
    train, test = model_selection.train_test_split(Profit, test_size=0.2, random_state=1234)
    model = sm.formula.ols('Profit ~ RD_Spend + Administration + Marketing_Spend + C(State)', data=train).fit()
    print(model.fvalue)
    

    结果:

    174.63721715703537
    

    步骤四:对比结果下结论
    最后一步所要做的是对比F统计量的值理论F分布的值,如果读者手中有F分布表,可以根据置信水平(0.05)和自由度(5,34)查看对应的分布值。为了简单起见,这里直接调用Python函数计算理论分布值:

    import pandas as pd
    from sklearn import model_selection
    import statsmodels.api as sm
    from scipy.stats import f
    
    Profit = pd.read_excel(r'Predict to Profit.xlsx')
    train, test = model_selection.train_test_split(Profit, test_size=0.2, random_state=1234)
    model = sm.formula.ols('Profit ~ RD_Spend + Administration + Marketing_Spend + C(State)', data=train).fit()
    #计算建模数据中因变量的均值
    ybar = train.Profit.mean()
    #统计变量个数和观测个数
    p = model.df_model
    n = train.shape[0]
    #计算F分布的理论值
    F_Theroy = f.ppf(q=0.95, dfn=p, dfd=n-p-1)
    print('F分布的理论值为:', F_Theroy)
    

    结果:

    F分布的理论值为: 2.502635007415366
    

    如上结果所示,在原假设的前提下,计算出来的F统计量值174.64远远大于F分布的理论值2.50,所以应当拒绝原假设,即认为多元线性回归模型是显著的,也就是说回归模型的偏回归系数都不全为0。

    回归系数的显著性检验——t检验

    模型通过了显著性检验,只能说明关于因变量的线性组合是合理的,但并不能说明每个自变量对因变量都具有显著意义,所以还需要对模型的回归系数做显著性检验。关于系数的显著性检验,需要使用t检验法,构造t统计量。接下来按照模型显著性检验的四个步骤,对偏回归系数进行显著性检验。
    步骤一:提出假设
    在这里插入图片描述
    如前文所提,t检验的出发点就是验证每一个自变量是否能够成为影响因变量的重要因素。t检验的原假设是假定第 j 变量的偏回归系数为0,即认为该变量不是因变量的影响因素;而备择假设则是相反的假定,认为第 j 变量是影响因变量的重要因素。
    步骤二:构造统计量
    在这里插入图片描述
    在这里插入图片描述
    步骤三:计算统计量
    如果读者对 t 统计量值的计算比较感兴趣,可以使用如上公式完成统计量的计算,这里就不手工计算了。为了方便起见,可以直接调用summary“方法”,输出线性回归模型的各项指标值:

    import pandas as pd
    from sklearn import model_selection
    import statsmodels.api as sm
    
    Profit = pd.read_excel(r'Predict to Profit.xlsx')
    train, test = model_selection.train_test_split(Profit, test_size=0.2, random_state=1234)
    model = sm.formula.ols('Profit ~ RD_Spend + Administration + Marketing_Spend + C(State)', data=train).fit()
    #有关模型的概览信息
    print(model.summary())
    

    结果:

                                OLS Regression Results                            
    ==============================================================================
    Dep. Variable:                 Profit   R-squared:                       0.964
    Model:                            OLS   Adj. R-squared:                  0.958
    Method:                 Least Squares   F-statistic:                     174.6
    Date:                Sun, 28 Feb 2021   Prob (F-statistic):           9.74e-23
    Time:                        12:27:30   Log-Likelihood:                -401.20
    No. Observations:                  39   AIC:                             814.4
    Df Residuals:                      33   BIC:                             824.4
    Df Model:                           5                                         
    Covariance Type:            nonrobust                                         
    ========================================================================================
                               coef    std err          t      P>|t|      [0.025      0.975]
    ----------------------------------------------------------------------------------------
    Intercept             5.858e+04   6690.704      8.756      0.000     4.5e+04    7.22e+04
    C(State)[T.Florida]    927.3944   3084.857      0.301      0.766   -5348.795    7203.584
    C(State)[T.New York]  -513.4683   3043.160     -0.169      0.867   -6704.824    5677.887
    RD_Spend                 0.8035      0.040     19.988      0.000       0.722       0.885
    Administration          -0.0578      0.051     -1.133      0.265      -0.162       0.046
    Marketing_Spend          0.0138      0.015      0.930      0.359      -0.016       0.044
    ==============================================================================
    Omnibus:                        1.721   Durbin-Watson:                   1.896
    Prob(Omnibus):                  0.423   Jarque-Bera (JB):                1.148
    Skew:                           0.096   Prob(JB):                        0.563
    Kurtosis:                       2.182   Cond. No.                     1.56e+06
    ==============================================================================
    
    Notes:
    [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
    [2] The condition number is large, 1.56e+06. This might indicate that there are
    strong multicollinearity or other numerical problems.
    

    如上结果所示,模型的概览信息包含三个部分:
    第一部分主要是有关模型的信息,例如模型的判决系数R2,用来衡量自变量对因变量的解释程度、模型的 F 统计量值,用来检验模型的显著性、模型的信息准则AICBIC,用来对比模型拟合效果的好坏等;
    第二部分主要包含偏回归系数的信息,例如回归系数的估计值Coeft 统计量值、回归系数的置信区间等;
    第三部分主要涉及模型误差项 ε 的有关信息,例如用于检验误差项独立性的杜宾-瓦特森统计量Durbin-Watson、用于衡量误差项是否服从正态分布的JB统计量以及有关误差项偏度Skew和峰度Kurtosis的计算值等。

    步骤四:对比结果下结论
    在第二部分的内容中,含有每个偏回归系数的 t 统计量值,它的计算就是由估计值coef和标准误std err的商所得的。同时,每个 t 统计量值都对应了概率值p,用来判别统计量是否显著的直接办法,通常概率值p小于0.05时表示拒绝原假设。从返回的结果可知,只有截距项Intercept和研发成本RD_Spend对应的p值小于0.05,才说明其余变量都没有通过系数的显著性检验,即在模型中这些变量不是影响利润的重要因素。

    展开全文
  • 这里,我们将继续安全模型的分析,由隐私保护技术方案中理论层面的能力边界,扩展到实际开发部署时工程层面的能力边界,梳理工程实现中相关安全假设,以及适用的业务场景。 在上一论中,我们介绍了多种不同的安全...

    牢不可破的密码学算法也怕物理攻击?物理信号泄露为何会威胁到隐私保护的效果? 隐私保护方案对部署环境有何讲究?不可信执行环境下如何设计隐私保护方案?

     

    这里,我们将继续安全模型的分析,由隐私保护技术方案中理论层面的能力边界,扩展到实际开发部署时工程层面的能力边界,梳理工程实现中相关安全假设,以及适用的业务场景。

     

    在上一论中,我们介绍了多种不同的安全模型,来衡量基于密码学隐私保护技术方案的理论强度。然而,一个隐私保护技术方案如果只考虑理论层面的安全,而忽视工程层面的安全,其有效性是值得质疑的。

     

    早在1985年,Wim van Eck在论文中提出,攻击者可以通过软件运行时产生的电磁辐射信号,结合统计学分析方法,破译出电子设备正在处理的机密信息内容。这就是一种典型的侧信道攻击,是密码学工程领域不能忽视的风险。

     

    与密码学理论领域的安全模型类似,对于密码学工程领域的安全风险,我们也可以根据其安全假设来定义对应的安全模型。最常见的三类安全模型如下:

     

    • 黑盒安全模型

    • 灰盒安全模型

    • 白盒安全模型

     

    以上三类安全模型中,密码学系统对部署环境的信任要求逐步降低。本论,我们将继续叙说小华的故事,以小华向好友美丽发送私密信息时的加密过程为例,一一阐述这三类安全模型对于企业隐私保护技术选型的影响和启示。

     

     

    黑盒安全模型

    科班出身的小华,对于自己的技术能力相当自信,打算以加密信息的方式,给他的好友美丽一个惊喜……

     

    小华选用了业界标准AES加密方案,将他的私密信息,用特殊的方式传达给美丽。小华使用了公用机房中的电脑,开发并运行了对应的技术方案,产生了密文信息。

     

    不巧的是,公用机房中的电脑被攻击者植入了木马,木马通过读取代码执行时的电量消耗和其他中间状态信息,破译了小华私密信息的明文。

     

     

    实际上,除了基于密码学技术构建的软件技术方案,就连基于可信硬件模块构建的硬件技术方案,也会不同程度受到以上这类隐私风险的影响。但是,我们依旧认为这些方案在常见业务环境中是安全可用的,究竟是何缘故?

     

    这就引入了黑盒安全模型的定义,假定技术方案的执行过程对于外界是一个完全封闭的黑盒。

     

    如果我们把整体的隐私技术保护方案抽象成关于隐私数据x的一个函数y = f(x),对于攻击者而言,只能获得y,无法获得f(x)在运算过程中产生的任何中间状态信息。

     

    中间状态信息包括直接敏感信息和间接敏感信息:

     

    • 直接敏感信息:计算过程中的内部变量值、代码执行轨迹等

    • 间接敏感信息:执行时间、设备能耗、内存用量、电磁辐射等

     

    绝大多数密码学算法实现,如AES加密算法的标准实现等,都是基于黑盒安全模型的。

     

    这意味着,即便对应的密码学算法和协议设计达到了理论能力的上限,信息论安全在黑盒安全模型要求的假设被打破的前提下,依旧可能泄露隐私数据。

     

    反过来讲,对于受控的业务环境,可以保证没有攻击者能够进入机房,或者难以通过其他方式远程获得这些中间状态信息,而且对应软硬件模块的配置和使用都正确,那么对应的技术方案还是安全的。

     

    考虑到隐私和效率的取舍,黑盒安全模型下的技术方案,工程实现相对复杂度低,能够提供高效的系统实现,可用于中间状态信息泄露风险低、可控部署环境中的业务场景。

     

     

    灰盒安全模型

    小华吸取了上次的教训,优化了加密算法的实现,屏蔽了执行时间、设备能耗等常用中间状态信息泄露。新的方案似乎生效了,攻击者之前部署的木马无法获得有效信息来破译小华的私密信息。

     

    小华的优化一定程度上降低了隐私保护技术方案对于部署环境的信任要求,相比之前的黑盒安全模型,这里的安全模型为灰盒安全模型, 允许一定程度的中间状态信息泄露。

     

    灰盒安全模型,要求技术方案能够防范由于常用中间状态信息而导致的隐私信息泄露。常用中间状态信息,一般指技术方案执行过程中,容易从外部观察到的各种物理信号,如执行时间、设备能耗、电磁辐射、声波信号等。这一类的攻击通常被称为侧信道攻击、旁路攻击,或统称为灰盒攻击。

     

    为了应对这些灰盒攻击,需要在原先黑盒安全工程实现的基础上改写算法,使得在不同输入下,所需防范的物理信号表现相同。以最常见的执行时间分析攻击为例,灰盒安全模型下,对于所有的输入,技术方案的执行时间总是保持均等,以此避免由于执行时间存在差异,而泄露关于隐私数据的信息。

     

     

    然而,这一类灰盒安全技术方案在系统效率上的副作用也很明显。即便某些执行路径可以更高效地执行,也需要特意降低其效率,使之与业务逻辑中效率最差的一条执行路径相匹配,以此确保执行过程使用的时间、消耗的能量等外部可观测物理信号,在任意输入下都不表现出显著差异。

     

    由此可见,灰盒安全技术方案的执行效率总是由业务逻辑中效率最差的一条执行路径来决定,这对系统效率的优化带来了一定的挑战。

     

    相比黑盒安全模型,灰盒安全模型对于部署环境的信任要求更接近现实情况,一定程度上考虑了内部人员风险等原本只能通过治理手段才能防范的隐私风险,具备更实用的抗攻击能力。

     

    灰盒安全模型下,技术方案的应用主要用于防范内部人员风险,或者在不完全可信的外包环境中部署运行业务。

     

     

    白盒安全模型

    好景不长,攻击者发现之前部署的木马失效之后,升级了木马程序,小华的灰盒安全方案并不完美,攻击者获得了技术方案执行过程中的内部变量值,小华的私密信息再次遭到破译。

     

    灰盒安全模型虽然对中间状态信息做了一定的保护,但无法保证所有的中间状态信息都能得到有效保护。如果能够实现这一点,就达到了工程层面中最强的白盒安全。

     

    回到定义黑盒安全模型的公式,隐私技术保护方案可以抽象为关于隐私数据x的一个函数y = f(x)。在白盒安全模型下,除了x之外,攻击者可以获得y和f(x)在运算过程中产生的任何中间状态信息。

     

     

    白盒安全模型假定执行环境完全对攻击者透明,听起来效果很玄幻。但密钥如何保护?明文输入不是直接就被看到了吗?面对如此强大的攻击者,如何才能保护隐私数据的安全呢?

     

    效果确实很玄幻,目前现有研究对白盒安全模型的定义做了一定的弱化,通常会把保护目标限定为即便攻击者控制了整个执行环境,也无法轻易通过内存读取等方式提取出密钥。

     

    为了实现白盒安全,需要在灰盒安全的基础上进一步打乱混淆密钥的存储方式并改写算法,让正确的密钥能够在执行过程中被间接使用。这一工程安全要求进一步提升工程实现的复杂度,例如,AES加密算法的白盒安全实现要比黑盒安全实现慢10倍以上。

     

    尽管白盒安全模型下的大部分技术方案目前尚不成熟,在方案可用的前提下,对于需要在不可控的公开环境中部署的业务,如公共物联网应用,非常有必要考虑使用白盒安全技术方案,用以保护终端设备中的密钥、控制隐私数据的泄露风险。

     

     

    正是:密码巧妙理论无破绽,工程精细实现需谨慎!

     

    工程安全和理论安全是相互独立的两个维度,理论安全并不等于工程安全。再强的理论安全方案设计,也会因为不当的工程实现而导致前功尽弃。

     

    了解密码学工程领域的安全风险,对于实际应用落地和安全运行至关重要。企业在对基于密码学技术的隐私保护技术方案选型时,需要理论联系工程,根据自身的业务场景和部署环境的特征,选择合适的安全模型,确保隐私保护技术方案的最终有效性。

     

    在这两论中,我们对密码学技术选型中的理论能力边界和工程能力边界进行了分析。除了算法理论和工程实现中的诸多安全假设,新兴的量子计算和量子通信也对隐私保护技术方案的有效性带来了挑战,具体分析,敬请关注下文分解。

    展开全文
  • 针对以形式概念分析理论为基础的概念建模过程中知识表示存在差距的问题,提出一种整合专家知识到概念格结构中的形式化模型....最后,结合示例对基于约束格维护概念模型一致性方法的有效性进行了验证.
  • 基于层次分析法构建了视频摘要评价模型,将视频摘要质量作为最终评价目标,以内容合理和结构合理作为准则,以内容完整、特殊重要、整体流畅等作为测度层,从而建立了视频摘要评价指标体系。最后,通过对...
  • 随着通信运营商利润高增长时代的结束,基础资源投入的有效性备受关注。各省级通信运营商更关注其隶属地市的投资效能,如何实现资源高效投放是做好省公司层面投资管理工作的关键。在传统评估方式的基础上,尝试通过从...
  • 结果表明,多层层次解释结构建模是揭示和理解这些风险因素如何导致罪犯在该监狱逃脱有力方法。 通过分析危险因素,有效地应对城市公共设施中复杂突发事件具有重要意义。 而且,它提供了一种新颖方式来...
  • 需求分析如何做好非功能需求

    万次阅读 2016-12-28 17:37:48
    非功能性需求是除开功能性需求外需要满足系统要求,可以理解为系统质量要求,一般包括性能、安全性、可靠性、可用性、可维护性、完整性、可测试性、有效性等。细分下来有很多,不过前辈们和一些权威机构帮我们做...
  • 最近通过分析英国生物库数据而进行一项前瞻队列研究发现包含一秒用力呼气量(FEV1)的模型比标准肺癌风险测试能更有效预测出肺癌。背景由于发病率高和存在预后不良结果,肺癌每年在全世界造成150多万人死亡...
  • 电力市场的电价具有不确定性特征,虚拟电厂参与市场竞标时如何处理不确定性因素的影响值得深入研究。...算例结果验证了所提模型的有效性和实用性,说明文章提出的鲁棒优化模型可以实现VPP的优化竞标。
  • 已经表明,全息大引力可以以均匀方式有效地实现平移对称性的自发破坏。 在这项工作中,我们通过向体积作用添加特殊量规-轴耦合来考虑此类玩具模型。 首先,通过对UV扩展的分析,我们确定了翻译自发断裂存在...
  • 本文提出了一种对双指数荧光衰减进行拟合及分析的较简便的有效方法.文中根据四种典型情况,给出了如何合理地选取和修正各个衰减参量的规则,以迅速获得双指数衰减的最佳拟合.同时讨论了在最佳拟合下,对拟合模型的合理...
  • 深度学习是目前最热门的高级分析技术之一,在很多方面表现出了超越传统机器学习方法的有效性。但是在常用的TensorFlow,CNTK,Theano等计算环境中实现不同的深度学习模型仍然需要耗费很多时间来编写程序。KERAS的...
  • 前言 随着技术不断发展和...也越来越复杂,网站项目设计和开发进入了需要强调流程和分工时代,建立规范有效的、健壮开发机制,才能适应用户不断变化需要,达到预期计划目标。 网站项目管理(WPM)
  • 1.引言很久之前写过一篇关于元分析的高阶篇:元分析结构方程模型,里面介绍了如何用R metaSEM软件包做结构方程模型,包括中介分析,路径分析,验证因子分析等。结构方程模型在管理学中领域具有非常广泛应用,...
  • 面对一个课题或者项目,你必须明白其中涉及的物理场,以及描述这些物理场的数学方程,相关的约束(或者说边界条件),材料属性,根据理论知识是否能够推理哪些因素可能会影响模型的收敛。有了上述基础,你才能正确...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 385
精华内容 154
关键字:

如何分析模型的有效性