엔트로피 풀 수준을 낮추는 프로그램은 무엇입니까? [복사]

엔트로피 풀 수준을 낮추는 프로그램은 무엇입니까? [복사]

/dev/random에서 엔트로피 풀 수준을 확인하기 위해 간단한 bash 스크립트를 만들었습니다. 제가 이렇게 하고 있는 방식은 확인할 때마다 (cat /proc/sys/kernel/random/entropy_avail) 조금씩 낮추고 있었는데, 2초에 한 번씩 레벨을 확인하고 있었기 때문에, 완전한 회복과 증가를 위한 충분한 시간입니다. 1시간 40분을 측정했습니다. 동시에 나는 엔트로피를 줄일 것이라고 생각되는 작업(예: SSH 키 생성 등)을 수행하지 않았습니다. 하지만 (IRC에서) 인터넷에 연결되어 있다는 단순한 사실만으로도 엔트로피가 낮아질 수 있다는 말을 듣고 네트워크에서 완전히 연결이 끊긴 노트북에서 실험을 반복했는데 똑같은 결과가 나타났습니다.

풀의 엔트로피를 줄이는 프로그램이 무엇인지 모르겠습니다. 연결이 끊긴 노트북에 아주 작은 규모의 아치 리눅스를 설치했는데(총 646개의 패키지 설치), 측정 기간 동안 메인 노트북은 인터넷에 연결되어 있었고 약 800개의 패키지가 설치된 상태로 젠투를 실행하고 있었습니다. 패키지는 특정 실행되지 않습니다. 백그라운드를 제외하고 "기본적으로" 프로그램. 두 컴퓨터 모두에 DE(xfce)가 설치되어 있습니다. 이것은 데이터 그래프입니다. 엔트로피 풀 수준 및 시간

편집하다:인터넷이 없는 노트북의 데이터는 다음과 같습니다. 노트북의 엔트로피 풀 수준

편집 2:ASLR을 비활성화해도(grub으로 부팅할 때 norandmaps 커널 매개변수 추가) 여전히 동일한 동작이 발생하므로 ASLR이 범인이 아닙니다. 또 다른 그래프는 ASLR이 비활성화된 데이터를 보여줍니다. norandmaps 커널 매개변수를 사용한 동일한 동작

편집 3:내 질문이 중복된 것 같습니다.이 문제. 나는 허용된 대답에 주어진 명령을 따랐 sudo perf record -e random:\* -g -a -D 1000 -T sleep 60습니다 perf script. 출력 파일은 대용량(4.4MB의 텍스트 데이터)입니다. 처음 몇 줄은 다음과 같습니다.

스위치 0 [000] 3491.433002: 무작위: mix_pool_bytes_nolock: ffffffff8173e956 풀: 바이트 16 호출자 add_interrupt_randomness
              5ea5d9 __mix_pool_bytes(/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              5ec601 add_interrupt_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              2d5729handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              2d8e2f handler_fasteoi_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              2bd9fa call_cpuidle(/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              d0cff0 start_kernel ([kernel.vmlinux].init.text)
              d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text)
              d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)

교환기 0 [000] 3491.433025: 무작위: Credit_entropy_bits: ffffffff8173e956 풀: 비트 1 entropy_count 871 entropy_total 141 호출자 add_interrupt_randomness 5eaab6 Credit_entropy_bits(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5ec644 add_interrupt_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d5729handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8e2f handler_fasteoi_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)

exchange0[000] 3491.876901: 무작위: mix_pool_bytes: ffffffff8173e956 풀: 바이트 16 호출자 add_timer_randomness 5ea6a3 mix_pool_bytes (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eac36 add_timer_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event ([숨김]) 2506 화 27bb hid_input_report ([숨김]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usb코어]) 9ddf usb_hcd_giveback_urb ([USB코어]) 126efxhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handler_edge_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)

교환기 0 [000] 3491.876931: 무작위: Credit_entropy_bits: ffffffff8173e956 풀: 비트 9 entropy_count 876 entropy_total 150 호출자 add_timer_randomness 5eaab6 Credit_entropy_bits(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eacbd add_timer_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event ([숨김]) 2506 화 27bb hid_input_report ([숨김]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usb코어]) 9ddf usb_hcd_giveback_urb ([USB코어]) 126efxhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handler_edge_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)

스위치 0 [000] 3491.876945: 무작위: add_input_randomness: input_pool_bits 876 5eb4c7 add_input_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event ([숨김]) 2506 화 27bb hid_input_report ([숨김]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usb코어]) 9ddf usb_hcd_giveback_urb ([USB코어]) 126efxhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handler_edge_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)

교환기 0 [000] 3491.884903: 무작위: mix_pool_bytes: ffffffff8173e956 풀: 바이트 16 호출자 add_timer_randomness 5ea6a3 mix_pool_bytes (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eac36 add_timer_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event ([숨김]) 2506 화 27bb hid_input_report ([숨김]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usb코어]) 9ddf usb_hcd_giveback_urb ([USB코어]) 126efxhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handler_edge_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)

교환기 0 [000] 3491.884933: 무작위: Credit_entropy_bits: ffffffff8173e956 풀: 비트 1 entropy_count 876 entropy_total 151 호출자 add_timer_randomness 5eaab6 Credit_entropy_bits(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eacbd add_timer_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event ([숨김]) 2506 화 27bb hid_input_report ([숨김]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usb코어]) 9ddf usb_hcd_giveback_urb ([USB코어]) 126efxhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handler_edge_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)

(...)

스위치 0[000] 3491.916850:random:add_input_randomness:input_pool_bits 876 5eb4c7 add_input_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event ([숨김]) 2506 화 27bb hid_input_report ([숨김]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usb코어]) 9ddf usb_hcd_giveback_urb ([USB코어]) 126efxhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handler_edge_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)

교환기 0 [000] 3491.924973: 무작위: mix_pool_bytes: ffffffff8173e956 풀: 바이트 16 호출자 add_timer_randomness 5ea6a3 mix_pool_bytes (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eac36 add_timer_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event ([숨김]) 2506 화 27bb hid_input_report ([숨김]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usb코어]) 9ddf usb_hcd_giveback_urb ([USB코어]) 126efxhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handler_edge_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)

스위치 0[000] 3491.925003:random:add_input_randomness:input_pool_bits 876 5eb4c7 add_input_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event ([숨김]) 2506 화 27bb hid_input_report ([숨김]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usb코어]) 9ddf usb_hcd_giveback_urb ([USB코어]) 126efxhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handler_edge_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)

firefox 827[000] 3491.932654: 무작위: mix_pool_bytes: ffffffff8173e956 풀: 바이트 16 호출자 add_timer_randomness 5ea6a3 mix_pool_bytes (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eac36 add_timer_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event ([숨김]) 2506 화 27bb hid_input_report ([숨김]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usb코어]) 9ddf usb_hcd_giveback_urb ([USB코어]) 126efxhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handler_edge_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 1f6fd81 [알 수 없음] (/usr/lib/firefox/libxul.so) 100000001 [알 수 없음] ([알 수 없음])

내 문제는 출력을 잘 이해할 수 없다는 것입니다. 어떤 프로그램이 엔트로피를 소비하는지 알 수 없습니다. 누구든지 이 출력을 설명할 수 있습니까? (추신: 백그라운드에서 실행되는 Firefox에서 마지막 명령을 실행했기 때문에 엔트로피가 약간 소모되었을 수 있으며 다른 프로세스에 더 관심이 있습니다.)

답변1

push_to_pool함수의 주석은 다음 /drivers/char/random.c과 같습니다.

/*
 * Used as a workqueue function so that when the input pool is getting
 * full, we can "spill over" some entropy to the output pools.  That
 * way the output pools can store some of the excess entropy instead
 * of letting it go to waste.
 */

내가 올바르게 이해했다면 엔트로피 풀이 가득 차면 커널 자체가 엔트로피 풀에서 오래된 엔트로피를 지웁니다.

답변2

누군가 설명하는 데 도움이 될 수 있는 아이디어가 있습니다.

이것을 테스트하거나 확인하는 방법을 잘 모르겠지만(그래프를 어떻게 생성하는지 잘 모르기 때문에) 일부 그래프를 보면 "비트 주파수" 현상이 있을 수 있습니다. 그렇다면 비트주파수는 일반적으로 측정되는 주파수와 측정되는 주파수가 약간 다른 증상입니다. 원한다면 "별칭"이라고 부르세요.

음, 이는 엔트로피 수준에 주기적으로 측정된 변화가 있을 수도 있음을 의미합니다. 더 나쁜 것은 이것이 귀하의 쿼리에 대답하지 않는다는 것을 알았습니다. 변경의 원인은 무엇입니까? 실제로 쿼리를 복잡하게 만듭니다.

엔트로피 수준을 측정하는 루틴을 시작하는 데 사용되는 시계 틱/사이클과 비교하여 엔트로피 생성을 트리거하는 데 사용되는 시계 틱 또는 특정 배수는 측정 시 비트 주파수로 나타나는 앨리어싱의 원인일 수 있습니다.

내가 말했듯이, 이것은 단지 아이디어일 뿐입니다.

관련 정보