实现SP800-90B重新启动测试的两款C++程序

需积分: 30 7 下载量 42 浏览量 更新于2024-12-28 1 收藏 38KB ZIP 举报
资源摘要信息:"restart_test_sp800-90b是两个C++程序,用于执行SP800-90B重新启动测试。SP800-90B是一份关于随机数生成器(Random Number Generators, RNGs)的指南,它提供了对物理和非物理随机数生成器的评估和测试方法。这个指南是由美国国家标准与技术研究院(National Institute of Standards and Technology, NIST)发布的,其全称为《Recommendation for the Entropy Sources Used for Random Bit Generation》。本指南主要涉及随机数生成器在计算机安全和密码学中的应用。 第一个程序名为restart_slicer,它的主要功能是根据SP800-90B重新启动测试的要求来获取1000个二进制文件。这个程序会对数据进行格式化处理,使其适合NIST SP800-90B熵评估套件的输入格式,以及用于本存储库中的restart_sanity_check程序所使用的矩阵格式。它支持通过命令行参数进行配置,例如"-l"或"--length"参数可以指定每个符号的比特位数(bits per symbol),而"-o"参数可以指定输出文件的名称和位置。 第二个程序是restart_sanity_checker,其目的是执行SP800-90B重新启动健全性检查(Sanity Check)。这个检查是确保随机数生成器(RNG)所产生的数据在经过重新启动或重置之后依然保持其随机性和不可预测性。restart_sanity_checker接收由restart_slicer程序生成的矩阵文件作为输入,然后进行一系列的测试来验证数据的随机性。 在描述中提及的命令行使用说明"-h"表示帮助信息的输出。当在命令行中加入"-h"参数时,程序会显示其使用说明和参数列表,帮助用户理解如何使用该程序。例如,在restart_slicer中,使用"-h"参数会展示该程序支持的参数列表和功能描述,例如"-l"用于指定每个符号的比特位数,"-B"或"-L"可能用于指定输出格式,"-v"用于显示程序运行过程中的详细信息,以及"-o"用于指定输出文件的具体名称。 最后,压缩包子文件的文件名称列表中只有一个文件名为restart_test_sp800-90b-main,这表明这是包含两个程序源代码和/或编译后的可执行文件的压缩包。对于C++开发者来说,这意味着可以下载该压缩包,解压后获取源代码或直接使用预编译的程序进行重新启动测试。" 这些知识点涵盖了两个程序的基本功能、使用方法、以及它们在SP800-90B指南框架下的应用。理解这些信息对于确保随机数生成器的可靠性和安全性至关重要,尤其是在需要高质量随机数的密码学应用中。

我想将frontend 也是用volumes,将其映射到/app/frontend目录,在/app/frontend下install以及build,如何实现 docker-compose.yml文件: version: '3' services: frontend: build: context: ./frontend dockerfile: Dockerfile ports: - 8010:80 restart: always backend: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: python manage.py runserver 0.0.0.0:8000 ports: - 8011:8000 restart: always celery-worker: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server worker -l info --pool=solo --concurrency=1 depends_on: - redis - backend restart: always celery-beat: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler depends_on: - redis - backend restart: always redis: image: redis:latest ports: - 6379:6379 restart: always mysql: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=sacfxSql258147@ ports: - 8016:3306 volumes: - ./mysql:/var/lib/mysql restart: always frontend:dockerfile文件 FROM node:16.18.1 WORKDIR /app/frontend COPY package*.json ./ RUN npm install COPY . . RUN npm run build:prod FROM nginx:latest COPY --from=0 /app/frontend/dist/ /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]

238 浏览量

我的代码跟docker-compose.yml文件放在/app目录下 /app/frontend存放前端代码 /app/backend存放后端代码 我想直接在/app/frontend直接install跟build再拷贝到容器内,如何实现 docker-compose.yml文件: version: '3' services: frontend: build: context: ./frontend dockerfile: Dockerfile ports: - 8010:80 restart: always backend: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: python manage.py runserver 0.0.0.0:8000 ports: - 8011:8000 restart: always celery-worker: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server worker -l info --pool=solo --concurrency=1 depends_on: - redis - backend restart: always celery-beat: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler depends_on: - redis - backend restart: always redis: image: redis:latest ports: - 6379:6379 restart: always mysql: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=sacfxSql258147@ ports: - 8016:3306 volumes: - ./mysql:/var/lib/mysql restart: always frontend:dockerfile文件: FROM node:16.18.1 WORKDIR /app/frontend COPY package*.json ./ RUN npm install COPY . . RUN npm run build:prod FROM nginx:latest COPY --from=0 /app/frontend/dist/ /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]

229 浏览量