Jump to content

Wikipedia:Reference desk/Computing: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 281: Line 281:


:If the "library" uses the strongest known encryption ([[one-time pad]]) the attacker will only access a bunch of apparently random garbage. There is no way to ever read the data, even theoretically and even with an infinitely powerful computer and an infinite amount of time. If the "library" uses [[Strong cryptography#Cryptographically strong algorithms|Strong cryptography]] and we ignore the possibility of a future technological breakthrough that "breaks" the encryption (in the case of [[Advanced Encryption Standard]] many many people have looked very hard indeed and failed to find one) decoding even a tiny part of the "library" will take far longer than the age of the universe using a computer larger than the solar system and as fast as it is possible for any computer to be. --[[User:Guy Macon|Guy Macon]] ([[User talk:Guy Macon|talk]]) 00:20, 26 June 2019 (UTC)
:If the "library" uses the strongest known encryption ([[one-time pad]]) the attacker will only access a bunch of apparently random garbage. There is no way to ever read the data, even theoretically and even with an infinitely powerful computer and an infinite amount of time. If the "library" uses [[Strong cryptography#Cryptographically strong algorithms|Strong cryptography]] and we ignore the possibility of a future technological breakthrough that "breaks" the encryption (in the case of [[Advanced Encryption Standard]] many many people have looked very hard indeed and failed to find one) decoding even a tiny part of the "library" will take far longer than the age of the universe using a computer larger than the solar system and as fast as it is possible for any computer to be. --[[User:Guy Macon|Guy Macon]] ([[User talk:Guy Macon|talk]]) 00:20, 26 June 2019 (UTC)

::However, the "if" is important. The original poster did not specify that encryption was used. --[[Special:Contributions/76.69.117.113|76.69.117.113]] ([[User talk:76.69.117.113|talk]]) 00:34, 26 June 2019 (UTC)

Revision as of 00:34, 26 June 2019

Welcome to the computing section
of the Wikipedia reference desk.
Select a section:
Want a faster answer?

Main page: Help searching Wikipedia

   

How can I get my question answered?

  • Select the section of the desk that best fits the general topic of your question (see the navigation column to the right).
  • Post your question to only one section, providing a short header that gives the topic of your question.
  • Type '~~~~' (that is, four tilde characters) at the end – this signs and dates your contribution so we know who wrote what and when.
  • Don't post personal contact information – it will be removed. Any answers will be provided here.
  • Please be as specific as possible, and include all relevant context – the usefulness of answers may depend on the context.
  • Note:
    • We don't answer (and may remove) questions that require medical diagnosis or legal advice.
    • We don't answer requests for opinions, predictions or debate.
    • We don't do your homework for you, though we'll help you past the stuck point.
    • We don't conduct original research or provide a free source of ideas, but we'll help you find information you need.



How do I answer a question?

Main page: Wikipedia:Reference desk/Guidelines

  • The best answers address the question directly, and back up facts with wikilinks and links to sources. Do not edit others' comments and do not give any medical or legal advice.
See also:


June 17

Z3 and Turing completeness

The Z3 didn't have a conditional branch instruction, but the article says that it Turing complete in a sense - it could execute all possible branches. If there were a large number of branches, would this result in a huge amount of output and the correct result would be in there somewhere? Bubba73 You talkin' to me? 01:56, 17 June 2019 (UTC)[reply]

Basically it uses a programming trick to simulate an n-way case statement with n blocks of straight-line code followed by using arithmetic to select which result to use. So it's a polynomial-time blowup of degree depending on the depth of nested case statements, I think. It's explained in the Rojas paper cited in the article but I only looked at it briefly. 67.164.113.165 (talk) 09:53, 17 June 2019 (UTC)[reply]
My point is that it executes all branches, so I assume there is output for each branch. How can you look at the output and tell which part of it is for the correct branch(es)? Bubba73 You talkin' to me? 01:58, 18 June 2019 (UTC)[reply]
Would a link to case statement help ? SinisterLefty (talk) 02:16, 18 June 2019 (UTC)[reply]
No. Bubba73 You talkin' to me? 03:36, 18 June 2019 (UTC)[reply]
Here's a thing I wrote in 2008, doing a branchless strlen in C. It does indeed evaluate all possible "branches", and then uses arithmetic to report only the "successful" one. It's been 11 years since I thought about this, so I'm rusty on the minutea of the discriminator, but here goes:
here be dragons
#include <stdio.h>
#include <string.h>

// implements the followng logic:
//  if CONDITION return VALUE else return 0
#define CONDFUNC1(CONDITION,VALUE) ((VALUE)&(0xFFFFFFFFU+(!(CONDITION))))

// a branchless strlen, which reports the length of strings, as long as it's <= 5
int branchless_strlen5(const char * str){
  return 
    CONDFUNC1(str[0]==0,0)+
    CONDFUNC1(str[0]!=0,
	      (CONDFUNC1(str[1]==0,1)+
	       CONDFUNC1(str[1]!=0, 
			 (CONDFUNC1(str[2]==0, 2)+
			  CONDFUNC1(str[2]!=0, 
				    CONDFUNC1(str[3]==0, 3)+
				    CONDFUNC1(str[3]!=0, 
					      CONDFUNC1(str[4]==0,4)+
					      CONDFUNC1(str[4]!=0,
							CONDFUNC1(str[5]==0,5)+
							CONDFUNC1(str[5]!=0, 99999) // OVERFLOW
							)
					      )
				    )
			  
			  )
			 )
	       )
	      )
    ;
}

int main() {
  const char basicstr[]="abcde";
  char teststr[]="----------------";

  for(int x=0;x<7;x++){
    strcpy(teststr,basicstr);
    teststr[x]=0;
    teststr[x+2]=0;
    printf("for x=%d, naive_strlen=%ld, branchless_strlen5=%d\n", 
	       x, 
           strlen(teststr),
           branchless_strlen5(teststr)
          );
  }

  return 0;
}
The meat of the thing is the CONDFUNC. I produced three variants, none of which are exactly fun to read:
#define CONDFUNC1(CONDITION,VALUE) ((VALUE)&(0xFFFFFFFFU+(!(CONDITION))))
#define CONDFUNC1(CONDITION,VALUE) ((VALUE)&((!(CONDITION))-1))
#define CONDFUNC1(CONDITION,VALUE) ((VALUE)&((~(CONDITION)&1)-1))
Does that amount to Turing completeness? I dunno. Bletchley Park's later computery things had "looping" because the "program" was actually on a physical paper loop, I don't know about the Z3.
A tiny aside: this horrid species of "deciding without branching" isn't quite a thing of the past. Check out OpenBSD's timingsafe_memcmp, which aims to take the same amount of time comparing two strings, regardless of the position in which they differ (which is used to help resist a timing attack). -- Finlay McWalter··–·Talk 10:38, 18 June 2019 (UTC)[reply]

Let me clarify. The Z3 had no conditional branch instruction. The paper said that it could simulate a Turing machine by executing all branches. Suppose that a program has one branch, depending on whether a variable, x, is odd or even when it gets to that point. Now, considering executing all branches. It executes the code if x is odd and the code if x is even. It produces output for each of those branches. But how do you know what part of the output is the correct output? And if there are many branches, there will be a huge amount of output and only a tiny part of it will be correct, and how do you know where that is? Bubba73 You talkin' to me? 19:32, 18 June 2019 (UTC)[reply]

I understand what you mean fine. But it doesn't "produce output for each of those branches"; it calculates the result of each branches, and then calculates which of those to report as a final result based on a tricksy piece of bitwise arithmetic. Here's the simplest C example I can think of (which uses effectively the second CONDFUNC1 definition above) - here branching_f is ordinary branching code (with an if statement, that only works on a conventional computer, and branchless_f is the equivalent code, which produces the same result, but has no if or other branching instruction (the main() is a simple test harness to show the two are equivalent). branchless_f would (notionally) work on a machine like the Z3 with no branch instruction, because it only uses arithmetic and bitwise operations, and the control flow is entirely linear.
another dragon
#include <stdio.h>

#define IS_EVEN(Z)((Z)%2==0)

int branching_f(int x){
  int y;
  if(IS_EVEN(x)) {
    y = x*x;
  }
  else {
    y = x*x*x;
  }
  
  return y;
}

// effectively, EXPAND(0) returns 0 and EXPAND(1) returns 0xFFFFFFFF
#define EXPAND(V) ((!(V))-1)

int nonbranching_f(int x){
  // calculate both paths
  int a = x*x;
  int b = x*x*x;

  // calculate which result we want
  int disc = IS_EVEN(x);

  // and discriminate between them, producing the result we care about
  int result = (EXPAND(disc)&a) | (EXPAND(!disc)&b);

  return result;
}

int main(){
  for(int x=0; x<10; x++){
    int y,z;

    y = branching_f(x);
    z = nonbranching_f(x);
    
    printf ("%d,%d,%d\n", x, y, z);
  }
  
  return 0;
}
If there were many paths, that is inefficient, and the discriminator logic at the end is concomitantly complex. But eventually there is still a single output, z. -- Finlay McWalter··–·Talk 21:03, 18 June 2019 (UTC)[reply]
OK, I didn't know that it then goes back and figures out which results to output. That answers my concern. Bubba73 You talkin' to me? 21:25, 18 June 2019 (UTC) [reply]
Resolved
How does a machine with no branch instruction manage loops such as for(int x=0;x<7;x++){...} and for(int x=0; x<10; x++){...}  ? 
DroneB (talk) 21:34, 18 June 2019 (UTC)
[reply]
It doesn't, really. Those loops in my examples are for the test harnesses; only the code in nonbranching_f is what you'd actually run on the branchless computer. The rest is just to help me illustrate that it does actually do a de facto if without actually branching.
On the branchless computer, you'd have to unroll the loop:
     printf("%d\n",  nonbranching_f(0));
     printf("%d\n",  nonbranching_f(1));
     printf("%d\n",  nonbranching_f(2));
     printf("%d\n",  nonbranching_f(3));
     // etc.
... which is effectively what branchless_strlen5 above does.
That said, there's one wrinkle left. If you can persuade the hardware to perform what's effectively a computed_goto (i.e. JMP X, where X is the contents of a register), you can use a similar mechanism to the above to jump to one path or the other, and effectively implement a real(ish) if without an explicit branch instruction. Scarier still, on a primitive machine where the linear program is stored on a looping medium like the Colossus computer's paper tape loops, or a drum memory, then a computed goto is effectively a wait (N) operation. So if the hardware were to support that (or could be tortured in some way to effectively do so), then you'd tell the CPU to hang for (precisely!) long enough for the desired instruction to loop around and then start running again. It's terrible, but if your PC is just the current position of a physical object that the computer itself doesn't control, you're stuck doing terrible things. -- Finlay McWalter··–·Talk 21:59, 18 June 2019 (UTC)[reply]
I forgot to say - with that computed goto, you could actually implement a real loop. -- Finlay McWalter··–·Talk 22:11, 18 June 2019 (UTC)[reply]
Thank you for all of your help in understanding it. Bubba73 You talkin' to me? 01:43, 19 June 2019 (UTC)[reply]
Programming in assembler you would modify directly the address in some unconditional branching instruction in order to jump to the right line in a table. Here for example if x is even its last bit must be 0 and if it is odd its last bit must be 1, so:
add +1, (x and 1) * 2
jmp +1
mov y, x*x
jmp +2
mov y, x*x*x
...
That means: (x and 1) returns the last bit of x which is added to the next instruction, resulting in "jmp +1" or "jump +3" dependig on (x and 1) being zero or one. So you execute the instruction "mov y, x*x" or the instruction "mov y, x*x*x" as intended, without implementing explicitly a test on the value of x and importantly without executing all possible branches. The point is, you need to think of a form of your test such that you can use the result of an operation as an index in a table. By the way, a conditional branch in this case would look like "jmpnz +3", i.e. "jump to the third instruction from here if the accumulator is not zero (and to the next one if it is)". I wonder why Zuse didn't implement this. It would be interesting to see some original source code. 2003:F5:6F04:3400:C50F:E088:B2D:224E (talk) 17:08, 22 June 2019 (UTC) Marco Pagliero Berlin.[reply]

What is a guccounter?

I've seen this in URLs, especially when signing in to email, but I saw it several times today. I did a Wikipedia search and it only seemed to be in URLs in references. So it probably needs to be added to Wikipedia, but where?— Vchimpanzee • talk • contributions • 20:27, 17 June 2019 (UTC)[reply]

The only reference I've seen is this. Martin of Sheffield (talk) 21:35, 17 June 2019 (UTC)[reply]
That's not going to be helpful. Anyway, I have more than one AOL account because I didn't know AIM mail and AOL mail were the same thing. That's where I first saw it.— Vchimpanzee • talk • contributions • 21:42, 17 June 2019 (UTC)[reply]
<redacted>?folderType=INBOX&guccounter=2&showImages=true&offset=0 is a URL (minus personal information) for an email I just sent myself.— Vchimpanzee • talk • contributions • 21:53, 17 June 2019 (UTC)[reply]
Everything after ? is a query string. It is a set of variable names and values. A programmer can use any variable name he or she wants to use. So, the developer for that website decided to use a variable name called "guccounter". For you, the value was set to 2. If you want to know exactly what it means, you absolutely must contact the developer. It is absolutely impossible for anyone else to know exactly what it means. We can only guess at what the developer meant. 68.115.219.130 (talk) 12:40, 18 June 2019 (UTC)[reply]
Well, if every time you do a certain thing on the web site, that counter goes up by 1, then you would have a good indication what it's counting. You could also try the "View Page Source" option (CTRL U in Chrome), although there's no guarantee that you could decipher the meaning from that. SinisterLefty (talk) 14:27, 18 June 2019 (UTC)[reply]
Today, with the email address I use most, I saw some URLs with the guccounter at 1, and some at 2.— Vchimpanzee • talk • contributions • 13:54, 19 June 2019 (UTC)[reply]
Today, I have a variable named ahti. Sometimes it is 0. Sometimes it is 1. Sometimes it is 2. I've seen it get up to 3 before. But, what does that mean? I know what ahti means because I named that variable. If you ask 100 people, you will get 100 guesses. If you ask me, I can tell you exactly what it means. That is the point here. You can ask 100 people what guccounter means. You will get 100 guesses - and those are nothing more than guesses. If you ask the developer, you can get an answer. Absolutely nobody here is a developer for AOL. So, absolutely nobody here can give you the answer that you want. 209.149.113.5 (talk) 11:21, 19 June 2019 (UTC)[reply]

Forgot to sign yesterday. I was just pointing out that I got different values for the same email address at different times.— Vchimpanzee • talk • contributions • 13:54, 19 June 2019 (UTC)[reply]

I was trying to point out that the values are meaningless if you don't know what the values represent. If this is a concern for you, you need to contact AOL's support staff. It is readily available at help.aol.com. I am not claiming that they will actually help you. I am claiming that if anyone could help, it would be a developer at AOL. In the end, this is a reference desk. There are no public references that explain the meaning of every variable in every program used by AOL. So, your request for a reference can only be answered by telling you to ask AOL. If the value is 99 tomorrow. The answer is still the same. Ask AOL. If the variable vanishes the next day, the answer is still the same. Ask AOL. 12.207.168.3 (talk) 16:14, 19 June 2019 (UTC)[reply]
I'm not asking anyone. I'm just saying what people think is true isn't true. And AOL is not the email service I was using at the time. That was the first email service where I saw it.— Vchimpanzee • talk • contributions • 18:37, 20 June 2019 (UTC)[reply]

June 19

Old PC programs

I'm running a Windows 10 system, and would like to install some old DOS-based programs, and of course that doesn't work. I'm assuming there are some 32-bit or DOS emulators out there which could be added-on. Does anyone have any suggestions of what to use, or just as importantly what not to use? Offhand I'm not seeing an answer in the archives. Thank you! ←Baseball Bugs What's up, Doc? carrots01:50, 19 June 2019 (UTC)[reply]

DOSBox (official website) does full system emulation - it is a virtual machine that runs a DOS-like operating system. Many old software programs that were designed to run on DOS - rather specifically, on IBM PC compatible systems running MS-DOS - will be compatible with DOSBox, "out-of-the-box."
Whether this will meet your needs largely depends on which specific DOS- or DOS-like programs you plan to run.
For what it's worth, MS-DOS was not designed to run in 32-bit mode... (see, e.g., DOS memory management, for a technical overview).
Nimur (talk) 02:19, 19 June 2019 (UTC)[reply]
I need to be more specific. A number of these programs use DOS to install Windows 3.1 applications. For example, an old "Jeopardy!" game which can't install as-is within Windows 10. ←Baseball Bugs What's up, Doc? carrots02:32, 19 June 2019 (UTC)[reply]
Windows 3.1 applications will also not work on Windows 10.
You could install Windows 3.1 in DOSBox, though. ApLundell (talk) 02:43, 19 June 2019 (UTC)[reply]
Ah, that could work. And as far as you know, there are no risks with DOSBox, such as viruses or spyware? ←Baseball Bugs What's up, Doc? carrots02:53, 19 June 2019 (UTC)[reply]
DOSBox is a well respected tool. Some older commercial games now come pre-packaged with it.
I suppose it's theoretically possible that the software you're trying to run is infected with an old, long-dorment DOS virus, but even so, programs running in DOSBox only have access to the folders you specifically "mount". ApLundell (talk) 03:02, 19 June 2019 (UTC)[reply]
For example, when I start up DOSBOX, I type "mount C C:\OldGames", and then, when DOS programs think they're writing to C:\ they're really writing to C:\OldGames\.
ApLundell (talk) 03:05, 19 June 2019 (UTC)[reply]
To assuage the concerns about DOSBox itself: it is technically and theoretically possible that DOSBox could be a piece of trojan horse malware; or its developers might be malicious; or you might get an unofficial version from somewhere that was maliciously modified to be harmful; but in practice, provided that you download it from its official distributors, DOSBox is not more risky than any other piece of software, and it is widely used by many enthusiasts for recreational and other purposes.
I do not worry that DOSBox will cause serious harm to my general-purpose personal machines; but I wouldn't install any software on the computers for which I must mandate and enforce very strong security guarantees. Most general-purpose personal-computer users can probably accept the low-but-non-zero risk associated with software like DOSBox.
Nimur (talk) 05:00, 19 June 2019 (UTC)[reply]
Thank you all for your help. I'll give it a try. ←Baseball Bugs What's up, Doc? carrots12:10, 19 June 2019 (UTC)[reply]
It works like a charm. Thank you! ←Baseball Bugs What's up, Doc? carrots02:30, 21 June 2019 (UTC)[reply]
Resolved

Are you sure about that? My impression is that Windows 10 is not that different from any version of Windows going back to XP except that NTVDM is probably disabled by default. [1] [2] [3] If you are running the 64 bit version, NTVDM is not supported and so you cannot run 16 bit applications. Probably in part due to significantly added complexity of either running in virtual 8086 mode while in x86-64 long mode or supporting a NTVDM which fully emulates 8086 mode as done with earlier non x86-32 versions of Windows when it mattered more.

If you are running the 32 bit version, NTVDM is supported albeit disabled by default on Windows 10. And so you can run 16 bit applications including many 3.1 ones simply by enabling NTVDM. The advances of hardware and software and the OS and the fact that I doubt NTVDM has had much work other than stuff like the security fix a few years back for a long time may mean things are more likely to break than they were before.

NB Windows XP x86-64 is based on Windows 2003 and was released well after the original XP. Still it was branded as XP by Microsoft and so as with Vista, 7, 8, 8.1 and now 10, XP was no different in that NTVDM is provided on 32 bit versions of the OS but not 64 bit versions. (I'm not sure whether some of the Starter and similar versions might have intentionally disabled NTVDM.)

I'm not sure by now whether it makes sense to run Windows 10 x86-32 except in very specific circumstances. But then again I ran Windows XP x86-64 and was never convinced by all the nay-sayers. (Which is not to say there were never problems although many of these were dumb problems simply because some application decided it wasn't allowed to work on Windows 2003 or people still using 16 bit installers in 2005.) Ultimately though, the main point stands that AFAIK there is currently nothing about Windows 10 which means 16 bit applications are not supported other than NTVDM maybe being disabled by default. It's just the classic x86-32 vs x86-64 issue the same for all versions of Windows since XP.

Nil Einne (talk) 05:54, 21 June 2019 (UTC)[reply]

I had forgotten that there even was a 32-bit version of Windows 10.
I believe you're correct that if Bugs is running such a rare beast he may be able to do what he wants without DOSBox. ApLundell (talk) 03:00, 25 June 2019 (UTC)[reply]
This PC is less than six months old, and if it's running Windows 10 in 32-bit mode, then they pulled a shenanigan on me. ←Baseball Bugs What's up, Doc? carrots15:20, 25 June 2019 (UTC)[reply]

June 21

Blurry background

Most search results are about how to obtain a blurry background in photos and it seems to be something people actually want, which I really don't understand. I then found out front cameras of modern smartphones apparently can't focus on both your face and the background due to technical limitations. I simply don't get it. What's the point of taking a selfie when you can barely make out where you actually are? After all, you want to show your friends the places you've been to. While the rear camera is a little bit better, finding passersby that take photos to your liking is actually quite rare. What's the obsession with the trend of blurring out the background and why don't companies improve the front camera besides from adding more megapixels? --94.134.89.230 (talk) 21:58, 21 June 2019 (UTC)[reply]

The article Depth of field may help. Bubba73 You talkin' to me? 22:18, 21 June 2019 (UTC)[reply]
A pinhole camera may be of interest to you, as everything is in focus in one. Then why don't we all use those, you might ask. Well, since very little light makes it past the pinhole, you either need a very long exposure, which leads to motion blur, or you need very sensitive photoreceptors. If you have a 20 Mpixel camera, then each pixel only receives at most 1/20 millionth of the light that makes it through the pinhole (probably less, because a circle of light makes it to the photreceptors, but they are normally in a rectangular array). A very bright scene helps somewhat. But, until we get those ultra-sensitive photoreceptors, the best a single lens camera can do is autofocus on whatever is in the center, and blur out everything at different depths. Or, using multiple lenses, it may be possible to create a composite photo by combining images taken at different focus depths.
As for why you would intentionally blur things, that can be done because those items are not of interest. For example, if you and your significant other are at a party, and don't know anybody else there, you might blur them all out, so you don't waste time looking at them and trying to remember who they are, when you look at the pic years from now. It's basically the reverse of circling the object(s) of interest.
As for front cameras versus rear cameras on cell phones, the front camera is for selfies, with the focal length set short so the user is in focus, while the rear camera allows a wide range of focal lengths, depending on if the subject is near or far. This means it may occasionally auto-focus on the wrong subject, and it takes time to allow it to settle into the proper focal distance. SinisterLefty (talk) 22:54, 21 June 2019 (UTC)[reply]
As to why blurring is desirable, see bokeh. 85.76.66.99 (talk) 10:25, 22 June 2019 (UTC)[reply]

June 24

neural net question

Hi. I wonder if anyone can point me in the direction of a good resource that will help me understand how to implement back propagation in the simple neural net simulator that I am trying to write.

I have an arbitrary number of layers in my net, with n input layers, m output layers, and nm connections between them. The input of one layer is the same as the output of the previous. (sigmoid activation function) I'm having a bit of trouble figuring out how to calculate the delta for each of the weights in the hidden layer. Do I have this correct :

In the output layer, a weight is increased by the corresponding input * learning rate * (expected - actual output)^2 *deriv of sigmoid (meaning output * (1-output)

In the hidden layer, the (expected-actual) is replaced by the sum of each error terms in the previous layer.

Am I in the neighborhood of the correct answer to that?

Thanks!!

Duomillia (talk) 00:40, 24 June 2019 (UTC)[reply]

If you're taking a class, I would ask the instructor, as that's a rather specific Q to be likely to find an answer here. There may even be multiple answers/techniques, in which case you will want to use the one your instructor recommends. SinisterLefty (talk) 17:58, 24 June 2019 (UTC)[reply]
The article Artificial neural network has sections about Hebbian learning and Backpropagation. The main article Backpropagation explains training methods using the derivatives of activation functions that are known at design time. DroneB (talk) 18:05, 24 June 2019 (UTC)[reply]

June 25

Intel Run Sure Technology

The Intel Xeon 6244 processor[4][5] has "Run Sure Technology". The Intel Xeon 4208 processor[6][7] does not. But what, exactly, is "Run Sure Technology"?

The pages above say

"Intel Run Sure Technology, includes advanced RAS (reliability, availability and serviceability) features that deliver high reliability and platform resiliency, to maximize uptime of servers running mission-critical workloads." Not very specific.

[8] says things like

"Intel Run Sure Technology features Resilient System Technology that integrates processor, firmware, and software layers to help diagnose fatal errors, contain faults, and automatically recover to keep the server operating" That's nice, but it tells me nothing about whatever secret sauce the Xeon 6244 has and the Xeon 4208 lacks. If I compare the two what difference will I see? Additional instructions? Additional registers? Something different in the error reporting?

Can anyone find a source that explains what is special about a processor with Intel Run Sure Technology and/or Intel Resilient System Technology? Does it have anything to do with Machine Check Architecture? --Guy Macon (talk) 18:32, 25 June 2019 (UTC)[reply]

Password-protected data

Imagine that in a library there is a restricted section and the rules say that you need permission to access it. In such a section, one who doesn't have permission but breaks through or gets around the security will reach the books, because they are objectively there.

What if some digital data is password-protected? Again, it is objectively there, encoded in the form of bytes or whatever. Can one get it despite not having the password, at least theoretically? --Qnowledge (talk) 23:00, 25 June 2019 (UTC)[reply]

If the "library" uses the strongest known encryption (one-time pad) the attacker will only access a bunch of apparently random garbage. There is no way to ever read the data, even theoretically and even with an infinitely powerful computer and an infinite amount of time. If the "library" uses Strong cryptography and we ignore the possibility of a future technological breakthrough that "breaks" the encryption (in the case of Advanced Encryption Standard many many people have looked very hard indeed and failed to find one) decoding even a tiny part of the "library" will take far longer than the age of the universe using a computer larger than the solar system and as fast as it is possible for any computer to be. --Guy Macon (talk) 00:20, 26 June 2019 (UTC)[reply]
However, the "if" is important. The original poster did not specify that encryption was used. --76.69.117.113 (talk) 00:34, 26 June 2019 (UTC)[reply]